Machine Learning Project Checkli

2018-09-26  本文已影响0人  博士伦2014

禁止一切形式转载
作者按:本来打算给英文版,但是考虑到易于使用就直接给中文版了,其次有些术语不知道用中文该如何准确表达,所以直接用了英文。

作为一个具有良好习惯的数据科学家,在拿到一个问题时,要做的第一件事就是制作出您的机器学习项目清单。 这个笔记给出了一个可供参考的机器学习项目清单,它应该适用于大多数机器学习项目,但要确保适应您的需求。

此清单可以指导您完成大多数机器学习项目。 有八个主要步骤:
1.问题框架化,视野宏观化
2.获取数据
3.探索数据以获得 深层次见解
4.准备数据以更好地将基础数据模式提供给机器学习算法
5.探索不同的模型并列出最优模型
6.微调模型并将它们组合成一个很好的解决方案
7.展示您的解决方案
8.运行,监控和维护您的系统
实际操作中您可以随意调整此清单以满足您的具体需求

1. 问题框架化,视野宏观化-Frame the Problem and Look at the Big Picture

1.用术语定义项目目标
2.您的解决方案将如何使用?
3.目前的解决方案/解决方法是什么(如果有的话)?
4.你应该如何构建这个问题(监督/无人监督,在线/离线等等)?
5.如何衡量表现?
6.表现衡量标准是否与项目目标一致?

2. 获取数据-Get the Data

注意:尽可能自动化,以便您轻松获取新数据。
1.列出您需要的数据以及您需要的数据数量
2.查找并记录您可以从哪里获取该数据
3.检查需要多少内存空间
4.检查法律义务,并在必要时获得授权
5.获取访问权限
6.创建工作区(具有足够的存储空间)
7.获取数据
8.将数据转换为您可以轻松操作的格式(不更改数据本身)
9.确保删除或保护敏感信息(例如,匿名)
10.检查数据的大小和类型(时间序列,样本,地理位置等)
11.对测试集进行采样,将其放在一边,不要看它(没有数据窥探!)

3. 探索数据-Explore the Data

注意:尝试从相关领域专家那里获取有关这些步骤的见解。
1.创建用于探索的数据副本(将其抽样为可管理的大小如有必要)
2.创建一个Jupyter笔记本以记录您的数据探索
3.研究每个属性及其特征:

4.对于监督学习任务,确定目标属性
5.可视化数据
6.研究属性之间的相关性
7.研究如何手动解决问题
8.确定您可能想要应用的有希望的转换
9.确定有用的额外数据(请返回上一步“获取数据”)
10.记录你学到的东西

4. 准备数据-Prepare the Data

注意:

1.数据清理:

2.特征选择(可选):

3.特征工程,适当时:

4.特征缩放:将特征 standardize or normalize

5. 探索不同的模型并列出最优模型-Short-List Promising Models

注意:

1.训练quick and dirty models from different categories(例如,线性,朴素贝叶斯,SVM,随机森林,神经网络等)使用标准参数(默认参数)
2.衡量并比较他们的表现

3.分析每种算法的最重要变量

4.分析模型所犯的错误类型

5.进行快速的特征选择和特征工程
6.对前面五个步骤进行一次或两次快速迭代
7.列出前三到五个最有希望的模型,更倾向于那些出现不同类型错误的模型

6. 微调模型并将它们组合成一个很好的解决方案-Fine-Tune the System

注意:

1.使用交叉验证微调超参数

2.尝试Ensemble方法。 结合最佳模型通常会表现得更好,而不是单独运行它们
3.一旦你对自己的最终模型充满信心,就可以在测试集上来估计泛化误差进而衡量它的表现

在测量泛化误差后不要调整模型:您只需要开始过拟合测试集(此处颇为不解)

7. 展示您的解决方案-Present Your Solution

1.记录你所做的事情
2.创建一个漂亮的演示文稿

3.解释为什么您的解决方案可以实现项目目标
4.不要忘记提供沿途注意到的有趣点

5.确保通过精美的可视化或易于理解的表达来阐述您的关键点
(例如,“收入中位数是房价的第一预测因素“)

8. 运行,监控和维护您的系统-Launch!

1.准备好生产解决方案(插入生产数据输入,写入单元测试等)
2.编写监控代码,以定期检查系统的实时性能,并在它下降时触发警报。

3.定期根据新数据重新训练模型(尽可能自动化)

参考

Hands-On Machine Learning with Scikit-Learn and Tensorflow

上一篇 下一篇

猜你喜欢

热点阅读