还在当老师学习的研究生和新手想在机器学习研究中少走弯路吗。也许下面的文章可以帮助你:
《如何避免机器学习研究中的陷阱。一本给学术研究人员的指南》
该指南涵盖了机器学习过程的五个方面:如何在建模前做好准备,如何构建可靠的模型,如何稳定地评估模型,如何公平地比较模型以及如何报告结果。
一位已经受聘的机器学习研究员称赞这篇论文很有价值,因为他在博士学习和工作期间多次遇到论文中提到的所有错误他打算让后面所有的新工程师好好看看
很多人认为这个指南的观点可能不太受欢迎,因为很多都是研究者应该知道的基本常识,比如多次重复实验,上报均值和方差进行严格比较,但为了方便或者为了让数据看起来更好,他们选择性地忽略了。
建模前的准备
为了得到符合预期目的的模型,顺利发布论文结果,需要在建模前做好以下六个准备:
1.确保你花时间研究你想要使用的数据集
2.但是不要检查测试数据,以免最终模型的通用性因为先入为主的假设而变差。
3.确保数据量足够大当然,经常是无法保证的情况
比如在评估模型时,对数据进行交叉验证,采用数据扩展技术。
但总的来说,如果数据不够,模型也不能设计得太复杂,否则几分钟就能给你一个拟合。
4.与相关领域的专家交谈,防止研究脱离实际,他们也可以帮助你发布到最合适的期刊/受众。
5.搜索相关文献后,发现别人都研究过,很沮丧,但是你怎么解释为什么写论文要覆盖同一个领域呢。
6.一定要提前考虑模型部署:大部分学术研究最终都会落地,对吧考虑着陆场景的资源和时间限制来设计模型
如何建立一个可靠的模型
1,不要让测试数据参与训练过程。
2.尝试不同的ML模型,不要套用,具体问题具体分析,找到最适合你解决问题的。
凑合的例子包括将期望分类特征的模型应用于由数字特征组成的数据集,将假设变量之间没有依赖性的模型应用于时间序列数据,或者只信任最新的模型。
3.一定要优化模型的超级参数最好使用一些超参数优化策略,这样可以使论文更好除了数据挖掘实践,AutoML技术还可以用来优化模型及其超级参数的配置
4.进行超参数优化和特征选择时要小心:防止测试集泄露,在模型训练开始前不要为整个数据集选择特征理想情况下,您应该使用与训练模型完全相同的数据
实现这一点的常见技术是嵌套交叉验证。
如何稳健地评估模型
对模型的不公正评价,很容易使学术研究的水浑浊。
1.模型在训练集上的表现几乎没有意义,这保证了测试集和训练集之间的独立性。
2.当连续迭代几个模型并使用前面的数据来指导下一个配置时,使用验证集,永远不要让测试集参与模型可以根据验证集进行度量:当分数开始下降时,停止训练,因为这表示模型开始过拟合
3.多次评估模型,防止低估/高估性能十次交叉验证是最标准的做法,对非常小的数据类进行分层也很重要,需要报告多次评估的平均值和标准差,还建议保留一个单一的分数记录,以防将来使用统计测试来比较模型
4.保留一些测试数据,以评估最终的模型示例,不带偏见。
5.不要对不平衡的数据集使用精度指数该指标常用于分类模型,不平衡数据集应使用kappa系数或Matthews相关系数指标
如何公平比较模型
1.更大的数字并不意味着更好的模型每个模型都要优化到相同的程度,评估几次,然后进行统计测试,确定性能差异是否显著
2.如果你想让人们相信你的模型是好的,你必须做统计测试。
3.进行多重比较时要正确:如果你做了20个95%置信水平的配对测试,其中一个可能会给你错误的答案这就是所谓的多重效应最常见的解决方案是Bonferroni校正
4.不要总是相信公共基准测试的结果。
使用基准数据集来评估新的ML模型已经变得很普遍你认为这样会让结果更加透明
如果对测试集的访问是不受限制的,你就不能保证其他人在训练过程中不使用它,多次使用的公共测试集上的许多模型可能与其过度匹配,最终会导致乐观的结果。
5.考虑组合模型。
如何报告结果
学术研究的目的不是自我扩张,而是贡献知识的机会
1.保持你的发现透明,这将使其他人更容易扩展你的工作。分享你的代码也会让你参与编码
的时候更认真。
2,提供多个测试集上的报告,为每个数据集报告多个度量指标,
3,不要在结果之外泛化,不要夸大,意识到数据的局限性。
4,报告统计显著性时一定要小心:统计人员越来越多地认为,最好不要使用阈值,而只报告 p 值,让读者来解释这些值。
除了统计意义之外,另一件需要考虑的事是两个模型之间的差异是否真正重要。
5,最后,再回过头完整的看一眼你的模型,除了报告性能指标,看看它能解决多少实际问题。
另外理论总是落后于实践,我们今天认为正确的东西明天可能不正确,因此大家都要以开放的心态面对机器学习,紧跟最新技术进展,谦虚地接受新知识。
更多意见欢迎在评论区补充。
郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。
|