机器学习部分理论基础

一、过拟合和欠拟合

       过拟合(高方差)是指模型对训练集的拟合性很好,但是对新数据的预测性能很差。欠拟合(高偏差)是指模型不能很好地拟合训练样本,并且对测试集的预测准确率也不高。

      

二、成本函数

       成本是针对所有的训练样本,模型拟合出来的值与训练样本真实值的误差平均值。模型训练的过程,就是找出合适的模型参数,使得成本函数的值最小。记为J(θ),其中θ为模型的参数, m为训练样本的个数。

       成本函数最小的模型并不一定是最好的模型,可能存在过拟合。

三、模型准确性

       测试集的成本即Jtest(θ)是评估模型准确性最直观的指标,越小说明预测值与真实值差异越小。注意测试集一定要是训练集外的数据。

       在sklearn中不是使用成本函数而是使用分数来表达模型的性能,这个分数位于[0, 1]之间,数值越大说明模型的准确性越好,通过score(X_test, y_test)得出。模型分数与成本成反比。即模型分数越高,准确性越高,误差越小,成本越低;反之则反。

       更科学的办法是将数据集分为训练集、交叉验证集、测试集,通常为6:2:2。因为测试集最主要的功能是保证测试数据的准确性,需要保证模型“没见过”这些数据,但是如果用测试集来选择模型阶数的话,相当于把模型让测试集提前见过了,这是有问题的。在模型选择时,用训练集训练模型,用交叉验证集选择模型参数,选择使交叉数据集的成本Jcv(θ)最小的多项式作为数据拟合模型。最后再用测试集来测试模型的泛化性。

四、学习曲线

       学习曲线是把Jtrain(θ)、Jcv(θ)作为纵坐标,画出与训练集m大小关系的曲线。学习曲线的绘制流程为:

  • 将数据集分为训练集、交叉验证集和测试集;
  • 取训练集中20%作为训练样本,用来训练模型参数;
  • 用交叉验证集计算训练出的模型的准确性;
  • 以训练集的准确性、交叉验证集的准确性作为纵坐标,训练集数据个数作为横坐标,在坐标轴上画出上述步骤计算出来的准确性;
  • 训练集增加10%,重复上述步骤,直到训练集达到100%为止。

五、过拟合和欠拟合的特征

       过拟合:模型对训练集的准确性比较高,其成本Jtrain(θ)较低;对交叉验证集的准确性比较低,其成本Jcv(θ)较高。

       欠拟合:模型对训练集的准确性比较低,其成本Jtrain(θ)较高;对交叉验证集的准确性比较低,其成本Jcv(θ)也较高。

       一个好的机器学习算法应该是对训练集预测准确性高、成本低,同时对交叉验证集的预测准确率高,成本低,误差小。

六、算法模型性能优化

       过拟合:①获取更多的训练数据,从学习曲线的规律来看,更多的数据有助于改善过拟合问题;②减少特征数量,这样可以大大减少模型计算量,降低模型复杂程度,改善过拟合问题。

       欠拟合:①增加有价值的特征;②增加多项式特征,比如原来只有一次项,现在增加二次、三次等。

七、查准率和查全率(召回率)

       适用于当模型准确性不能用来评价一个算法的好坏时。查准率是指预测的违约借款人中有多少是实际违约人;查全率是指实际违约人中有多少违约人被预测出来了。

预测数据/实际数据

实际违约

实际非违约

预测违约

真正例

假正例

预测非违约

假反例

真反例

查准率(precision)=真正例真正例+假正例 ,召回率(recall)=真正例真正例+假反例

       当查准率和召回率都是0时,说明无法预测出违约事件,即使这个时候总预测精度很高(因为违约事件极少),这个算法也是不好的。Sklearn中评估模型性能好坏的算法都在sklearn.metrics,计算查准率和召回率的API分别为sklearn.metrics.precision_score()和sklearn.metrics.recall_score()。

八、F1 SCORE

       如果一个算法的查准率和查全率为0.5、0.4,而另一个算法为0.02、1.0,这时候就不好判断哪个算法更好一些。通过引入F1 SCORE可以通过一个数值来直接判断哪个算法的性能更好。API位于sklearn.metrics.f1_score()中。

       注:参考《机器学习》——周志华版本,由于在一些应用中,对查准率和查全率的重视程度不一,比如在商品推荐中,为了尽可能的少打扰用户,更希望推荐内容是用户感兴趣的,因此查准率更重要;而在罪犯信息检索系统中,更希望尽可能减少漏掉的罪犯,因此查全率更重要。为此,引入F1更一般的形式——Fβ

       其中β>0度量了查全率对查准率的相对重要性,β=1时退化为标准的F1;β>1时查全率有更大的影响;β<1时查准率有更大的影响。

猜你喜欢

转载自blog.csdn.net/PyDarren/article/details/82454966