数据方面:
-
数据是否可以获得,以下是数据获取的一些来源:
-
数据的标注成本
需要从人力,财力等方面去考虑
决定选择哪种学习方式
有监督的学习需要标注的数据作为先验经验。考虑是否可以选择半监督、无监督的学习方式,或者选择对偶学习。 -
数据预处理
数据预处理的任务主要包括数据清理、数据集成、数据归约、数据变换。
算法方面:
判断这个问题属于哪种问题,分类?结构化预测?回归?数据生成?知识获取?
然后决定选择哪种算法作为baseline。
如,二分类问题最好选择SVM作为baseline
模型评估与选择
- 通过评估方法得到测试结果
以上是分出测试集、验证集、训练集的方法。 - 通过性能度量评估性能优势
True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。
accuracy = (TP+TN)/(P+N) 正确率越高,分类器越好
precision=TP/(TP+FP)表示被分为正例的示例中实际为正例的比例
recall=TP/(TP+FN) 度量有多个正例被分为正例
查准率高时,查全率往往偏低;查全率高时,查准率往往偏低。
F1=1/2(1/P+1/R) F1值越高性能越好
学习曲线是通过画出不同训练集大小时训练集和交叉验证的准确率。
此时注意模型是否出现了过拟合或者欠拟合。
ps: 根据选择的算法选择对应的评价指标。如分类问题,SVM应该选择accuracy作为评估指标。
过拟合是指模型在训练数据拟合呈过当的情况,反应到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现很差。欠拟合指的是模型在训练和预测时都不好的情况。
泛化误差越小越好
训练集上:经验误差/训练误差
新样本上:泛化误差
- 通过比较检验(使用传统学习方法)判断实质差别
以上。
参考资料(不包含文中超链接):
1、做好机器学习项目需要考虑的核心问题 https://blog.csdn.net/qq_39751437/article/details/87353203
2、 在实际中如何解决过拟合
https://www.cnblogs.com/tsruixi/p/10693101.html
3、测试集、验证集、训练集各自的作用https://blog.csdn.net/ytusdc/article/details/86488537
4、 目标函数,损失函数,代价函数 https://blog.csdn.net/lyl771857509/article/details/79428475