ps:根据自己需要随意调整。
1、 用业务术语定目标。
2、解决方案如何使用。
3、当前有什么解决方案?
4、阐述问题(有无监督,在线离线等)。
5、如何衡量性能。(比如学习率。)
6、性能指标是否符合业务目标。
7、达到业务目标所需要的最低性能是多少?
8、类似的问题有哪些? 你可以重复使用他们的经验或工具吗?
9、是不是人类专长的问题?
10、你如何人工手动解决这个问题?
11、列出目前为止,你或其他人所做出的假设。
12、如果可能的话,验证假设。
PS:尽可能地自动化,以便轻松获取新数据。
1、列出你需要的数据和你需要的数据量。
2、查找并记录可以获取该数据的位置。
3、检查这些数据需要多少空间。
4、检查法律义务,并在必要时获得授权。
5、获取访问权限。
6、创建一个有足够的存储空间的工作区(可以简单理解为计算机上的文件夹)。
7、获取数据。
8、将数据转换为您可以轻松操作的格式(不要更改数据本身)。
9、确保删除或保护敏感信息(例如:使用匿名)。
10、检查数据的大小和类型(时间序列,样本,地理信息等)。
11、抽样出一个测试集,放在一边,不要管它。(无数据监听!)
PS:多问问现场的专家,获取有关见解。
1、为探索数据创建一份数据副本(如果需要,可将其抽样为可管理的大小)
2、在Jupyter notebook上以记录您的数据探索过程
3、研究每个属性及其特征
名字
类型:(分类,int / float,有界/无界,文本,结构化等)
丢失数据的百分比(缺失值的百分比)
噪音和噪音类型(随机,异常值,舍入误差等)
对任务的实用性
数据分布的类型(高斯分布,均匀分布,对数分布等)
4、对于有监督学习任务,确定标签值(目标属性。)
5、可视化数据
6、研究样本属性之间的相关性,(对特征提取很重要)。
7、思考如何手动解决这个问题
8、确定您可能想要应用的数据转换
9、确定有用的额外数据
10、将你学到的东西记录下来
PS(注意):
1、数据清理
2、特征选择(可选。)
3、适当的特征工程(适用的话)
4、特征缩放:对特征进行归一化或标准化处理
注意:
如果数据量巨大,您可能需要抽取较小的训练集,以便在合理的时间内训练不同的模型(但在复杂模型中要特别注意,会造成不利影响,如大型神经网络或随机森林)
再次尝试,尽可能自动执行这些步骤。
1、使用标准参数训练不同类别的快速而粗糙的模型(例如,线性,朴素贝叶斯,SVM,随机森林,神经网络等)
2、测量并比较他们的性能。
3、分析每种算法的最重要变量。
4、分析模型产生的错误类型。
5、快速进行特征选择和特征工程。
6、对前面五个步骤进行一两次更快的迭代。
7、简短列出前三到五个最有希望的模型,特别是不同类型的错误的模型。(优先选择产生不同类型错误得到模型。)
注意:
2、尝试集成方法。 结合你最好的几个模型往往会比单独更好。
3、一旦你对你的最终模型充满信心,在测试集上运行以检测泛化误差。
另外:在测量了泛化误差之后,不要对模型进行调整,否则会开始过拟合测试集。
1、记录下你所做的事情。
2、创建一个不错的演示文稿。
3、解释您的解决方案为何能够达到业务目标。
4、不要忘记提出你一路注意到的有趣观点。
5、确保您关键的研究结果通过美观的可视化或易于记忆的陈述进行传达(例如,“收入中位数(中等收入)是房价的第一大预测指标”)。
1、准备好生产环境下的解决方案(插入数据输入,编写单元测试等)。
2、编写监控代码,定期检查系统的实时性能,并在性能下降时时触发警报。
3、定期在新的数据上模型重新训练(尽可能自动化)。
最后:
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, 作者: Aurelien Geron(法语) , 又 O Reilly 出版, 书号 978-1-492-03264-9。
相对于书中(根据自己理解)进行适当的文字的调整,如果不当欢迎指出。