1.pipeline 管道利用
pipeline的概念可以从这里抽象出来:将一件需要重复做的事情切割成各个不同的阶段,每一个阶段由独立的单元负责。所有待执行的对象依次进入作业队列。
管道机智在机器学习中得以应用的根源在于参数集在新的数据及上的重复利用。
2.K-折交叉验证评估模型性能
holdout交叉验证
holdout交叉验证是机器学习模型泛化性能的一个经典且常用的方法。
holdout交叉验证能将最初的数据集分为训练集和测试集
模型选择:对模型的的不同参数设置进行调优和比较的过程,也就是针对给定分类问题,调整参数以寻找最优值(超参)的过程。
使用holdout进行模型选择更好的方法:将数据划分为三个部分,训练集,测试集,验证集。
训练集:用于不同模型的拟合,模型在验证集上的性能表现作为模型选择的标准
不使用测试集用于模型训练以及模型选择的优势:
评估模型应用于新数据上能够获得较小偏差
K折交叉验证(k-fold cross-validation)
首先将所有数据分割成K个子样本,不重复的选取其中一个子样本作为测试集,其他K-1个样本用来训练。共重复K次,平均K次的结果或者使用其它指标,最终得到一个单一估测。
这个方法的优势在于,保证每个子样本都参与训练且都被测试,降低泛化误差。其中,10折交叉验证是最常用的。
3.利用网格搜索调参
网格搜索是一种调参手段;穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。
4.学习曲线和验证曲线
学习曲线:
判定偏差和方差的问题
验证曲线:
判定过拟合与欠拟合,通过定位拟合情况,帮助模型提高性能,验证曲线绘制的是准确率与模型参数之间的关系。
5.不同的性能评估指标
准确(分类)率 VS. 误分类率:
准确(分类)率(accuracy) = 正确预测的正反例数 / 总数
- ACC = (TP+TN) / (TP+TN+FP+FN)
- = (A+D) / (A+B+C+D)
误分类率 = 错误预测的正反例数 / 总数
- 误分类率 = (FP+FN) / (TP+TN+FP+FN) = 1 - ACC
- = (B+C) / (A+B+C+D)
召回率 VS.精确率 → F1 Score
召回率(Recall) = 正确预测到的正例数 / 实际正例总数
- Recall (True Positive Rate or Sensitivity) = TP / (TP+FN)
- = D / (C+D)
精确率(Precision) = 正确预测到的正例数 / 预测正例总数
- Precision (Positive Predicted Value,PV+) = TP / (TP+FP)
- = D /(B+D)
F1 Score
F1 Score为精准率和召回率的<u>调和均值</u>
- 2 / F1 = 1 / P + 1 / R
- F1 Score = 2TP / (2TP + FP + FN)
- 准确率(accuracy)和精确率(precision)都高的情况下,F1 Score也会显得很高。
参考资料:
1.机器学习性能评估指标汇总 https://www.jianshu.com/p/b960305718f1
2.初识pipeline https://blog.csdn.net/midhillzhou/article/details/52122354
3.【机器学习】学习曲线和验证曲线 https://blog.csdn.net/ChenVast/article/details/79257387
4.【机器学习】K折交叉验证评估模型性能 https://blog.csdn.net/chenvast/article/details/79257097