架构问题,关注蓝图网络
获取数据
尽量的自动化,以便获取最新数据。架构
研究数据以获取灵感机器学习
准备数据以更好地将低层模型暴 给机器学习算告函数
在数据的副本上工做(保持原始数据集不变)。工具
编写适用于全部数据转换的函数,缘由有五个:性能
能够很容易地准备下一次获得新数据时的数据 能够在将来的项目中使用这些转换 清理和准备测试数据集。 一旦解决方案失效,用来清理和准备新数据实例 能够轻松地将你的准备选择做为超参数
1. 数据清理:单元测试
修复或删除异常值(可选) 填充缺失值(例如,使用零、平均数、中位数等)或删除该行(或列)
2. 特征选择(可选):学习
删除不能为任务提供任何有用信息的属性。
3. 在适当状况下,处理特征:测试
离散连续特征; 分解特征性(如,分类、日期/时间等); 添加指望的特征转换(如, log(x)、sqrt(x)、x2等); 聚合特征称为指望的新特征
研究各类不一样的模型,并列出最好的模型优化
1. 使用标准参数,从不一样类别(例如,线性、朴素贝叶斯、SVM、随机森林、神经网络等)中训练需求快速的不成熟的模型。
2. 测量并比较它们的性能。
对于每一个模型,使用N倍交叉验证并计算N次折叠的性能测试的均值和标准差。
3. 分析每一个算怯最重要的变量。
4. 分析模型产生的错误类型。
人类用什么样的数据避免这些错误?
5. 快速进行特征选择和处理。
6. 对前面五步进行一两次快速迭代。
7. 列出前 到五个最有但愿模型,倾向于选择有不一样错误类型的模型。
微调模型,并将其组合为更好的解决方案
1. 使用交叉验证微调超参数。
把数据转换选择看成超参数,尤为是不肯定时(例如,应该用零或者平均值填充缺失值?或者直接删除?)。 除非须要研究的超参数值不多,不然更喜欢在网格搜索上随机搜索。若是训练很长,你可能更喜欢贝叶斯优化方提(高斯过程进行先验)
2. 尝试组合方怯。组合多个好模型每每比单独运行效果好。
3. 一旦你对最终模型有信心,在测试集上测 它的性能以估计泛化偏差。
提出解决方案
1. 文档化工做。
2. 建立完美的横示。
首先确保突出蓝图。
3. 解释为何你的解决方案达到了业务目标。
4. 不要忘记展现你发现的一些有趣的地方。
描述什么能够工做,什么不行。 列出你的假设和系统的局限。
5. 确保你的关键发现被完美展现或易于记忆的陈述。
启动、监视、维护系统
1. 准备好生产环境的解决方案(插入生产数据输入,写单元测试等)。
2. 编写监控代码,按期检查系统的性能,出问题时及时报警。
3. 按期对新数据从新建模(尽量自动化)。