本章将介绍:
- 端到端的预测(分类与回归)模型的项目结构
- 如何通过这个项目模板来得到一个高准确度的模板。
机器学习是针对数据进行自动挖掘,找出数据的内在规律,并应用这个规律来预测新的数据。
在项目中实践机器学习
一个很好的实践机器学习项目的方法是,使用从UCI机器学习仓库(http://archive.ics.uci.edu/ml/index.php)获取的数据集开启一个机器学习项目。
如果从一个数据集开始实践机器学习,应该如何将学到的所有技巧和方法整合到一起来处理机器学习的问题?
分类与回归模型的机器学习项目可以分成以下6个步骤:
(1)定义问题
(2)理解数据
(3)数据准备
(4)评估算法
(5)优化模型
(6)结果部署
机器学习项目的Python模版
(1)定义问题
- 导入类库
- 导入数据
(2)理解数据
- 描叙性统计
- 数据可视化
(3)数据准备
- 数据清洗
- 特征选择
- 数据转换
(4)评估算法
- 分离数据集
- 定义模型评估标准
- 算法审查
- 算法比较
(5)优化模型
- 算法调参
- 集成算法
(6)结果部署
- 预测评估数据集
- 利用整个数据集生成模型
- 序列化模型
当有新的机器学习项目时,新建一个python文件,并将这个模版粘贴进去,再按照前面章节介绍的方法将其填充到每一个步骤中。
步骤1:定义问题
主要是导入在机器学习项目中所需要的类库和数据集等,包括导入python类库、类、方法,以及导入数据。
同时这也是所有配置参数的配置模块。当数据集过大时,可以在这里对数据集进行廋身处理。
步骤2:理解数据
包括通过描叙性统计来分析数据和通过可视化来观察数据;设定假设条件并调查分析,这对模型的建立会有很大的帮助。
步骤3:数据准备
预处理数据,以便让数据可以很好的展示问题,以及熟悉输入和输出结果的关系。包括:
- 通过删除重复数据、标记错误数值,甚至标记错误的输入数据来清洗数据
- 特征选择,包括移除多余的特征属性和增加新的特征属性。
- 数据转化,对数据尺度进行调整,或者调整数据的分布,以便更好的展示问题
需要不断的重复这一步和下一步,直到找到足够准确的算法生成模型。
步骤4:评估算法
主要是为了寻找最佳算法子集,包括:
- 分离出评估数据集,以便于验证模型
- 定义模型评估标准,用来评估算法模型
- 抽样审查线性算法和非线性算法
- 比较算法的准确度
在面对一个机器学习的问题时候,需要花费大量的时间在评估算法和准备数据上,直到找到3-5种准确度足够的算法为止。
步骤5:优化模型
当得到一个准确度足够的算法列表后,要从中找出最合适的算法,通常有两种方法可以提高算法的准确度:
- 对每一种算法调参,得到最佳结果
- 使用集合算法来提高算法模型的准确度
步骤6:结果部署
一旦认为模型的准确度足够高,就可以将这个模型序列化,以便有新数据时使用该模型来预测数据。
通过验证数据集来验证被优化过的模型
通过整个数据集来生成模型
将模型序列化,以便于预测新的数据
做到这一步时,就可以将模型展示并发布给相关人员。当有新数据产生时,就可以采用这个模型来预测新数据。
使用模版的小技巧
- 快速执行一遍:首先要快速的在项目中将模版中的每一个步骤执行一遍,这样会加强对项目每一部分的理解
- 循环:整个流程不是线性的,而是循环的,尤其是步骤3-5步骤,直到找到一个准确度足够的模型,或者达到预定周期
- 尝试每一个步骤:跳过某一步骤,坚持在模型中的每一步中最这些工作
- 定向准确度:要确保每次改变都会给结果带来正向影响,或者对其他步骤带来正向影响
- 按需适用:每一次改进都以提高算法模型的准确度为前提