1、获取数据
机器学习比赛中原始数据都是直接提供的,但是实际问题需要自己获得原始数据。针对具体的应用需求,首先要非常清楚,目标是什么?完成后能达到什么样的效果?因此我们必须分析应用领域,包括应用中的各种知识和应用目标。了解相关领域的有关情况,熟悉背景知识,弄清需求。要想充分发挥数据挖掘的价值,必须要对目标有一个清晰明确的定义,即决定到底想干什么。否则,很难得到正确的结果。“ 数据和特征决定机器学习结果的上限,而算法只是尽可能的逼近这个上限”,由此可见数据在机器学习中的重要性。
2、数据分析、清洗
当我们拿到想要的数据集的时候,首先需要看看它是否符合我们的设计要求,有没有什么没有想到的情况,各个变量之间的相关性等等。包括异常值分析、缺失值分析、相关分析、周期性分析、特征变量分布、目标变量分布、文本数据是否需要进行拼写纠正等。
数据清洗是指对提供的原始数据进行一定的加工,使得其方便后续的特征抽取。经过上面的数据分析之后,我们对得到的数据有了一个初步的理解,可能会发现数据中存在缺失值、异常值等问题需要解决,并根据变量的不同分布特征进行不同的处理,如连续型数据偏正态分布的可以使用均值代替,偏长尾分布的可以使用中位数代替,离散型数据可以使用众数代替。
3、特征工程
“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”特征工程即是最大限度地从原始数据中提取特征以供算法和模型使用。特征工程包括从原始数据中的特征处理、特征选择。深入理解实际业务场景下的问题,丰富的机器学习经验能帮助我们更好的处理特征工程。特征工程做的好能发挥原始数据的最大效力,往往能够使得算法的效果和性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。数据挖掘的大部分时间就花在特征工程上面,是机器学习非常基础而又必备的步骤。
特征处理一般可以从以下几个方面处理原始特征:
1、无量纲化:无量纲化使不同规格的数据转换到同一规格。
2、二值化:设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0。
3、离散化:对连续特征进行分段处理。4、Dummy coding:某些机器学习算法和模型只能接受连续特征的输入,那么需要将离散特征转换为连续特征。
当特征处理完成后,我们需要将有意义的特征输入模型当中进行训练。通常来说特征选择有以下三种方法:
1、Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
2、Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
3、Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。
4、模型训练、验证
在处理好特征后,我们可以进行模型的训练和验证。预测模型是多种多样的,可以适用于不同结构的样本数据。正确选择预测模型是数据挖掘很关键的一步,有时由于模型选择不当,造成预测误差过大,就需要改换模型。必要时,可同时采用几种预测模型进行运算以便对比、选择。通常情况建模是一个反复的过程,根据结果的不同,选择合适的算法以针对性地解决问题。如对分类问题进行预测可选用逻辑回归、决策树、随机森林等,对回归问题可选用线性回归,对一组未知数据按照相似性和差异性分为几个类别可使用K-means聚类算法等,对描述数据之间所存在的关系可使用关联规则等等。
模型训练完毕后,我们往往还需要对模型结果进行评估、验证、优化才能达到最终的效果。一般可以通过K-fold对模型进行交叉验证,将数据按照某种方式划分成训练集和测试集。结果评估一般会通过计算准确率、召回率、精确率来作为评判指标,此外还可以观察ROC曲线、AUC值或MSE等方法。
领取专属 10元无门槛券
私享最新 技术干货