机器学习是一项经验技能,经验越多越擅长。不能只通过阅读就能掌握机器学习的技能,需要大量的练习才能掌握。在这里将介绍一个通用的引入机器学习的六个步骤。通过本篇文章将学到:
       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/
本作品由魏贞原授权豆瓣阅读全球范围内电子版制作与发行。
© 版权所有,侵权必究。

数据分析之预测模型项目模板相关推荐

  1. 使用 MAUI 进行数据可视化:与 图表控件LightningChart JS 的兼容性项目模板

    现在使用LightningChart JS可视化数据的用户可以使用 MAUI 兼容性项目模板. LightningChart JS正版下载 如果您需要创建需要可以处理大量数据点的高性能可视化的交互式移 ...

  2. 什么是互联网大厂_仅限今天!大厂最热数据分析经典实战项目大公开!

    原标题:仅限今天!大厂最热数据分析经典实战项目大公开! 如今,全球早已步入数据时代,随着行业的高速发展,相关岗位缺口已超150万,且薪资超同行业50%.未来十年,数据细分岗位将扩张5倍,各行业数据人才 ...

  3. Maven 项目模板

    Archetype介绍 Archetype是一个Maven项目的模板工具包,它定义了一类项目的基本架构.Archetype为开发人员提供了创建Maven项目的模板,同时它也可以根据已有的Maven项目 ...

  4. 架构师必备技能:Maven Archetype生成项目模板

    基本每个公司的项目都有一套模板,只要开新项目直接复制一份改改包名和一些配置就初始化了一个新项目.这种方式有点繁琐,有没有通过命令甚至是可视化的方式从一个模板项目初始化项目.Maven其实有提供这种能力 ...

  5. 通过Visual Studio 2005的项目模板来加速开发过程

    page by Ameet Phadnis Feedback     简介: 记得在我第一次做项目的时候,我就在尝试找出一种方法来提高项目开始的效率(jump start my projects).在 ...

  6. 图解Dev C++ 创建Win32 项目模板

    打开Dev C++,新建一个项目: 在Windows程序设计第五版源码中,找到第10章,PoePoem例子:把PoePoem.c代码拷贝到main.cpp中: 用它来作为一个模板:PoePoem.c比 ...

  7. 七月在线python数据分析_七月在线Python基础+数据分析班+爬虫项目

    资源介绍 七月在线Python基础+数据分析班+爬虫项目 目录 ├─Python基础入门班2017年 ││代码.rar │└─视频 │xa0 xa0 01.第1课 入门基础.rar │xa0 xa0 ...

  8. SpringBoot 项目模板:摆脱步步搭建

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 本文作者 ...

  9. 后端开发实践:Spring Boot项目模板

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 作者 ...

最新文章

  1. Android 编译系统模块 3
  2. 不抛弃,不放弃@《士兵突击》
  3. 可落地微服务on k8s的持续集成/部署方案
  4. 演示FilterConfig接口的getInitParameter(String name)方法
  5. Java对象的serialVersionUID在序列化和反序列化的用途
  6. 记一次神奇的sql查询经历,group by慢查询优化(已解决)
  7. 百万在线的美拍直播弹幕系统架构实现
  8. linux数组删除数据,如何从shell数组中删除一个元素
  9. 怎么在Linux中安装gcc编译器使用,如何在linux中安装gcc编译器?
  10. Google搜索 - 世界各国Google网址大全
  11. 【路径规划】基于蚁群算法求解带容量距离约束的车辆路径问题(CDVRP)matlab代码
  12. 算加权成绩(MATLAB)
  13. ENVI/ArcGIS根据坐标位置提取影像DN值(批量)
  14. unit英语读音_unit是什么意思_unit翻译_读音_用法_翻译
  15. MyBatis:choose标签的用法
  16. revo加密_使用Revo Uninstaller完全卸载程序以及更多其他功能
  17. 独家整理: 六款高质量的办公资源网站,疯狂提高你的工作效率
  18. 安卓开发app版本更新
  19. HTTP请求偶尔失败(21秒后超时) - 问题排查
  20. 大数据Hive(七):Hive的开窗函数

热门文章

  1. 软件工程毕业设计 SSM勤工助学管理系统(源码+论文)
  2. 基于java web的服装销售系统
  3. js 每隔2秒循环调用
  4. python爬取喜马拉雅收费_Python中使用requests和parsel爬取喜马拉雅电台音频
  5. 【金猿产品展】Marketin Trading Desk——一站式智能程序化广告管理优化系统
  6. twine上传的坑:pkg_resources.DistributionNotFound: The ‘docutils>=0.13.1‘ distribution was not found
  7. 面试官最常提问的30个问题
  8. PTA - 时间换算
  9. python绘制饼图的子图_Python入门进阶:Python绘制饼图到Microsoft Excel
  10. matlab调用Java函数