在这篇文章中,将和大家分享一下在工作场所进行机器学习时所开发的一个简单的过程。
希望能够澄清一些关于机器学习的一些误解和缺陷,或者说在机器学习在比赛、教科书和实践中的不同。
第1步:问题定义
大多数情况下,这些问题都清楚的呈现给我们的数据科学家,他们来自教科书、或者像kaggle一样的竞赛、一个预先定义的数据集、一个基线结果以及一个我们必须遵循的评估指标。
实际上,通常情况并非如此。问题的定义只能在与利益相关者会面后才能提出,找出问题的关键点,并评估应用机器学习的机会。这一步需要结合良好的产品思维和数据科学经验。
注意:不要试图将数据科学强加于所有事物。一个简单的工程、一个基于规则的系统或一个创造性的操作风格的方法就可能能够很好地解决这个问题。
第2步:评估策略
与我们最初的步骤类似,这一步往往被忽略,导致了一种非科学的方法,可能会迫使你做出错误的决定,或者仅仅从你的模型中产生不切实际的期望。
一个公平的评估策略需要事先定义,以便知道机器学习模型能够如何执行并随着时间的推移而改进。
注意:在解决时间序列性问题时要小心。大多数情况下,需要使用超时验证来防止数据泄漏(使用未来的训练数据来预测过去的事情),而不是随机的K-fold交叉验证。
至于评估指标,鼓励选择两个:
用于利益相关方报告和沟通的业务友好指标
内部模型优化目标的科学评分标准
第3步:基线模型
一个简单的滚动平均样式,SQL风格的基线模型通常是现阶段最好的时间和精力投入。
拥有这些基准模型的主要目的是:
看看是否值得投入更多的时间来构建完整的机器学习模型
设定目标,然后检查实际的机器学习模型
这省下了很多努力,解决了既不值得投入太多时间的问题,也不可能在业务的早期阶段取得显著的好成绩。使用机器学习算法来解决问题是很酷的,但是解决它却不需要一个复杂的算法。
第4步:数据验证
通过一些简单的分析过程验证数据,消除错误、肮脏的数据将有助于加速下一步。
第5步:建立模型
这就是Kaggle的经验变得更相关的地方。在这个阶段,要熟练选择机器学习算法、调整参数,设计特性以及堆叠模型,这非常重要。
评论留言