完成第一步之后,就需要对选取得样本集进行特征抽取,即特征工程。特征工程是一项很重要又很困难得工作,尤其是在推荐系统等领域。不仅需要对算法模型得深入了解,还需要我们又很扎实得专业领域知识。成功得机器学习应用一定是特征工程做的好的,当然特征提取也有很多可以通用的技巧。
我们做特征是为了将特征输入给模型,让模型从中学习出普遍规律。但是模型很多,不同的模型使用天差地别,当我们有一份高质量的数据后,还需要选择一个适合的模型,可以充分的学习到数据中规律,同时还需要在性能和部署方面考虑其实用性。
如上所言,不同的模型会有很大差别,可以从数据中学到的规律也会不同,所以我们经常会使用多种模型来进行学习,然后将不同模型融合,充分利用各模型特点。多种模型可以使用同一份特征,也可以根据需求做多份特征。
评估指标用于反映模型效果。在预测问题中,要评估模型效果,就需要将模型预测结果f(X)和真是结果Y进行比较,评估指标定义为f(X)和Y函数:
score=metric(f(X),Y)
模型的好坏是相对的,使用不同的评估标准往往会导致不同结论,所以在选择评估标准是要结合业务需求。
评估指标根据任务类型可分类为:分类指标、回归指标、聚类指标和排序指标。
精确率和召回率多用于二分类模型,可结合混淆矩阵来看。
表2-1混淆矩阵
TP(真正,TureTositive):真实结果为正,预测结果也为真;
FP(假正,FalseTosotive):真实结果为负,预测结果为正;
FN(假负,FalseNegative):真实结果为正,预测结果为负;
TN(真负,TureNegative):真实结果为负,预测结果也为负。
样本总数=TP+FP+FN+TN
精确率(P)=TP/(TP+FP)
召回率(R)=TP/(TP+FN)
准确率(accuracy)=(TP+TN)/(TP+FP+FN+TN)
错误率(errorrate)=(FN+FP)/(TP+FP+FN+TN)
注:准确率和精确率常混淆,精确率是一个二分类模型指标,准确率可以应用于多分类。
理想情况下,我们希望精确率和召回率两者都越高越好,但一般情况下,精确率越高召回率越低,精确率越低召回率越高。因此需要结合使用场景判断哪个指标更为重要。
我们以召回率R为横轴,精确率P为竖轴画出P-R曲线:
图2-1P-R曲线
据图可看到,P-R曲线越靠近右上角性能越好,曲线下的面积叫AP分数(平均准确率分数),但这个值计算不方便,所以设计了综合考虑精确率和召回率的指标。
F1值就是这样一个指标,F1是精确率和召回率的调和平均值:
2/F1=1/P+1/R
F值可泛化为对精确率和召回率赋不同权重调和:
接收者操作特征(ReceiverOperatingCharacteristic,ROC),纵坐标是真正率,横坐标是假正率,
真正率(TPR)=TP/(TP+FN)
假正率(FPR)=FP/(FP+TN)
图2-2ROC曲线
ROC与P-R曲线很相似,ROC曲线越靠近左上角性能越好,左上角坐标(0,1),TPR=1,FPR=0,根据公式可知,FN=0,FP=0,模型对所有样本分类正确。绘制ROC曲线,首先对所有样本按预测概率排序,以每条样本的预测概率为阈值,计算对应的FPR、TPR,然后连线。数据量小时,曲线不平滑,数据量大时,曲线会趋于平滑。
AUC(AreaUnderRocCurve)ROC曲线下面积,取值越大说明模型越可能将正样本排在负样本前面。AUC特性:AUC等于随机挑选一个正样本和一个负样本时,分类器正样本排前面的概率;AUC和WilcoxonTestofRanks等价;AUC还和基尼系数有联系,Gini+1=2*AUC。
也叫L1范数,
N为样本数,yi为第i条真实值,pi为第i条预测值。
加权平均绝对误差:是基于MAE得变种指标
wi是第i条样本得权重。
均方根对数误差:
样本选择的意义:
数据中噪声是一个不可避免的问题,噪声的存在会降低数据质量,导致模型训练效果不佳。但是在训练集中加入适量噪声能使模型更加健壮。