数据分析之预测模型项目模板

       机器学习是一项经验技能,经验越多越擅长。不能只通过阅读就能掌握机器学习的技能,需要大量的练习才能掌握。在这里将介绍一个通用的引入机器学习的六个步骤。通过本篇文章将学到:
       1.端到端的预测模型的项目结构
       2.如何将前面学到的内容引入到项目中

       3.如何通过这个项目模版来得到一个高准确度的模型


一、 在项目中实践机器学习
       从端到端的解决机器学习的问题是非常重要的。可以学习机器学习的知识,可以实践机器学习的某个方面,但是只有对一个问题从开始到结束实践机器学习的各个方面,才能真正掌握和理解机器学习。在一个项目中,从开始到结束的参与可以让你更加深入的思考如何使用模型,和勇于尝试机器学习解决问题的各个方面,而不仅仅是自己感兴趣或擅长的方面。一个很好的实践机器学习项目的方法是,使用从 UCI机器学习仓库(http://archive.ics.uci.edu/ml/datasets.html) 获取的数据集,开始一个机器学习项目。一旦开始从一个数据集开始实践机器学习,如何将学到的所有的技巧和方法整合到一起来处理机器学习的问题呢?任何分类或回归模型的机器学习的项目可以分成如下六个步骤:

         1.1、定义问题

         1.2、概述数据

         1.3、预处理数据

         1.4、评估算法

         1.5、改进算法模型

         1.6、展示模型

        这些步骤可以被合并或进一步的分解,通常是按这六个步骤来开展机器学习项目的。为了符合Python的习惯,也许会有轻微的重新命名这六个步骤。再接下来的部分会明确各个步骤或者子步骤。


二、机器学习项目的python模板

# Python机器学习项目模版

# 1. 准备
# a) 导入类库
# b) 导入数据集

# 2. 概述数据
# a) 描述性统计
# b) 数据可视化

# 3. 预处理数据
# a) 数据清洗
# b) 特征选择
# c) 数据转换

# 4. 评估算法
# a) 分离数据集
# b) 评估选项和评估矩阵
# c) 算法审查
# d) 算法比较

# 5. 提高模型准确度
# a) 算法调参
# b) 集成算法

# 6. 序列化模型
# a) 预测评估数据集
# b) 利用整个数据集生产模型
# c) 序列化模型

       当有新的机器学习的项目时,我们新建一个Python文件,并将这个模版粘贴进去,然后按照前面的章节介绍的方法,将其填充到没有步骤中。


三、各步骤详细说明

       3.1 准备

        这一步主要是导入所有需要的内容来处理机器学习的问题。这包括:导入Python的类库,类和方法;导入数据。同时这里也是所有的配置参数的配置模块。当数据集过大时,可以在这里对数据集进行瘦身处理,理想状态是可以在1分钟内,甚至是30秒完成模型的建立或者可视化数据集。

        3.2 概述数据

        这一步是对加强对数据理解的步骤,包括:通过描述性统计来分析数据和通过可视化来观察数据。我们需要在这里花费时间来多问几个问题,设定一下假设条件并调查分析一下。这对模型的建立会有很大的帮助。

        3.3 预处理数据

         这个步骤主要是用来预处理数据,以便让数据可以更好的展示问题和输入熟悉与输出结果的关系。包括:
                     3.3.1 通过删除重复数据,标记错误数值,甚至标记错误的输入数据来清洗数据。
                     3.3.2 特征选择,包括移除多余的特征属性和增加新的特征属性。
                     3.3.3 数据转化,对数据尺度进行调整或者调整数据的分布,以便于更好的展示的问题。
                     3.3.4 要不停的重新回顾这个步骤和下个步骤知道找到足够准确的算法生成模型。

          3.4 评估算法

           评估算法主要是为了寻找最佳的算法子集,这个步骤包括:
                     3.4.1 分离出评估数据集以便于验证模型。
                     3.4.2 定义模型评估标准,用来评估算法模型。
                     3.4.3 抽样审查线性和非线性算法。
                     3.4.4 比较算法准确度。
           在面对一个机器学习的问题的时候,需要花费大量的时间在算法评估和上一步数据预处理上,直到找到3-5种准确度足够 的算法为止。

            3.5 提高算法准确度

            当得到一个准确度足够的算法列表后,要从中找出最合适的算法,通常有两种方法可以提高算法的准确度:
                      3.5.1 对每一种算法进行调参,得到最佳的结果。
                      3.5.2 使用集合算法来提高算法模型的准确度。
            3.6 序列化模型

             一旦你相信这个模型的准确性足够高,就可以将这个模型序列化,以便于当有新数据时使用该模型来预测数据。
                       3.6.1 通过验证数据集来验证被优化过的模型。
                       3.6.2 通过整个数据集来生成模型。
                       3.6.3 将模型序列化,以便于用来预测新数据。
             当到达这一步的时候,就可以将模型展示并发布给相关人员。当有新数据发生时,就可以采用这个模型来预测新数据。


四、使用模板技巧

       4.1 快速第一遍:

                首先要快速在项目中的每一个步骤执行一遍,这会让你加强对项目的每一个部分的理解和对如何改进带来灵感。

       4.2 循环

               整个流程不是线性的,而是循环进行。要花费大量的时间来重复各个步骤,尤其是步骤3-4或者步骤3-4-5,直到找到一个准确度足够的模型,或者预定的周期到达了。
       4.3 尝试每一个步骤

               跳过步骤很简单,尤其是不熟悉,不擅长的步骤。坚持在这个模版的每一个步骤中做些工作,即使这些工作不能提高算法的准确度,也许后面就可以改进并提高算法的准确度。即使觉得这个步骤不合适,也不要跳过任何步骤,而是减少步骤的贡献。

        4.4 定向准确度:

               机器学习项目的目标是得到一个准确度足够高的模型。没一个步骤都要为实现这个目标做出贡献。要确保每次改变都会给结果带来正向的影响,或者对其他的步骤带来正向的影响。在整个项目中,每个步骤中,准确度只能按照变好的方向移动。
        4.5 按需适用:

               可以按照项目的需要来修改步骤,尤其是对模版中的各个步骤非常熟悉之后。需要把握的原则是,每一次的改进都是以提高算法模型的准确度为前提。



五、总结

         在这里介绍里机器学习项目的模版,这个模版适用于分类或回归问题。


摘自:《第十四章 预测模型项目模版》 — 魏贞原
在豆瓣阅读书店查看:https://read.douban.com/column/6939417/chapter/35808544/
本作品由魏贞原授权豆瓣阅读全球范围内电子版制作与发行。
© 版权所有,侵权必究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值