首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建一个机器学习项目

预测建模项目模板

应用机器学习是一种经验技能。单靠读书和阅读文章是无法提高这方面的技能的。我们必须不断实践。在本文中,将介绍一个简单通用的六步机器学习项目模板,我们可以用它来加速机器学习建模项目落地。通过完成本文学习后,我们将知道:

1. 如何构建一个端到端的预测建模项目

2. 如何将之前所有学的任务映射到一个具体项目中

3. 如何最佳地使用结构化的项目模板,以确保数据集得到准确的结果

通过项目实践机器学习

从端到端解决机器学习问题是至关重要的。我们可以阅读有关机器学习的内容,还可以通过一个具体项目思考模型如何使用,挑战机器学习中的各种假设,这可使我们在整个项目中的各个方面都变得熟练。练习预测建模机器学习项目的最佳方式是使用来自UCI或Kaggle机器学习库的标准化数据集。一旦有了一个练习数据集和Python的相关框架如Scikit-learn等,我们该如何将它们结合起来并完整地从头到尾解决问题呢?

使用结构化的分步过程

任何预测建模机器学习项目都可以分解为六个常见任务:

1. 定义问题

2. 总结数据

3. 准备数据

4. 评估算法

5. 提高结果

6. 展示结果

这是大致的结构,但这些任务可以组合或进一步分解。为了在Python中解决预测建模机器学习问题,我们需要将Python映射到这个过程中。任务可能需要稍微适应或重新命名,以适应Python的方式(例如:使用Pandas进行数据加载和scikit-learn进行建模)。下面将提供恰好这种映射,并详细说明每个任务以及可以使用的子任务和库的类型。

通用的机器学习项目模板

我们可以使用这个项目模板来端到端地解决机器学习问题。

(1)项目模板摘要

以下是用于机器学习的项目模板:

1. 准备问题

  a) 加载库

  b) 加载数据集

2. 总结数据

  a) 描述性统计

  b) 数据可视化

3. 准备数据

  a) 数据清洗

  b) 特征选择

  c) 数据转换

4. 评估算法

  a) 划分验证数据集

  b) 测试选项和评估指标

  c) 快速检查算法

  d) 比较算法

5. 提高准确度

  a) 调整算法

  b) 集成方法

6. 最终确定模型且展示结果

  a) 在验证数据集上进行预测

  b) 在整个训练数据集上创建独立的模型

  c) 保存模型以供以后使用

(2)如何使用项目模板?

1. 为项目创建一个新文件(如:项目名称.py)

2. 复制项目模板

3. 将它粘贴到空项目文件中

4. 开始填写内容

机器学习项目模板步骤

下面提供了关于模板中每个步骤的更多详细信息。

步骤1:定义问题

关于加载开始处理问题时所需的一切内容。这包括:

使用的Python模块、类和函数

从CSV文件加载数据集

这也适用于可能需要执行的任何全局配置。此外,如果发现数据集太大无法处理,这里也是可能需要制作数据集的一个缩小样本的地方。在理想情况下,数据集应该足够小,以至于可以在一分钟内,最好是30秒内构建一个模型或创建一个可视化。可以稍后随时扩大表现良好的模型。

步骤2:总结数据

关于更好地理解可用的数据。这包括使用以下方法来理解数据:

使用描述性统计学,如总结。

使用数据可视化,如使用Matplotlib的图表或Seaborn,理想情况下是使用Pandas模块plotting。

花时间进行这项工作,并使用结果来提出许多问题、假设和假设,可以稍后使用专门的模型进行调查。

步骤3:准备数据

关于以最佳方式准备数据,以便它最能揭示问题的结构以及输入属性与输出变量之间的关系。这包括以下任务:

数据清洗:通过删除重复项、标记缺失值甚至插补缺失值来清洗数据。

特征选择:可能删除冗余特征并开发新特征。

数据转换:数据转换,其中属性被缩放或重新分配,以便在学习算法之后最佳地揭露问题的结构。

从简单开始。经常回顾这一步,并与下一步循环,直到收敛于一组算法和数据表示,这些算法和数据表示能够产生准确或足够准确的模型以继续前进。

步骤4:评估算法

关于找到一组擅长利用数据结构的机器学习算法(例如,具有高于平均水平的能力)。涉及以下步骤:

1. 分离出一个验证数据集,用于后来确认 developed 模型的技能。

2. 使用scikit-learn定义测试选项,例如交叉验证和要使用的评估指标。

3. 快速检查一系列线性和非线性的机器学习算法。

4. 比较算法的估计准确度。

对于给定的问题,我们很可能会在这步和前一步(步骤3)上花费大部分时间,直到找到一组表现良好的3到5个机器学习算法。

步骤5:提高准确度

一旦我们有一份3到5个的机器学习算法,就需要尽可能地发挥它们的作用。提高模型准确度有两种不同的方法:

1. 使用scikit-learn搜索每种算法的参数组合,以产生最佳结果。

2. 使用ensemble集成技术将多个模型的预测组合成一个集成预测。

该步骤与上一步(步骤4)之间的界限可能会变得模糊。当一个项目变得具体时,在上一步(步骤4)中可能有一点算法调优。在集成的情况下,我们可能需要向前提出更多的算法来组合它们的预测。

步骤6:最终确定模型并展示结果

一旦我们找到一个能够在未见数据上做出准确预测的模型,就可以确定好模型。其可能涉及一些子任务,例如:

1. 使用由scikit-learn调整的最优模型对未见数据进行预测。

2. 使用由scikit-learn调整的参数创建一个独立的模型。

3. 将最优模型保存到文件中,以便以后使用。

一旦完成这一步,就可以向利益相关者展示结果,并/或部署已确定的模型开始对未见数据进行预测。

使用模板的技巧

这一部分列出了可以用来充分利用Python中的机器学习项目模板的技巧。

1. 快速初步筛选。尽可能快地完成项目步骤的第一遍筛选。这将给我们信心,让我们知道项目需要的所有步骤,并且有一个基础可以改进。

2. 循环迭代。这个过程不是线性的,而是循环的。会在步骤之间循环,并且在步骤3-4或3-4-5之间花费大部分时间,直到达到足够的准确度,或者时间耗尽。

3. 尝试每一步。如果在不熟悉或自信的任务上,很容易跳过步骤。即使在步骤中没有提高准确度,也要尝试做点什么。总是可以以后再加以改进。不要跳过步骤,只是减少它们的贡献。

4. 提高准确度。项目的主要目标是模型准确度。每一步都为此目标做出贡献。将我们所做的改变视为增加准确度的实验,将其他步骤围绕它们重新组织。准确度是一个只能单向移动(更好,不会更差)的螺丝扣。

5. 根据需要调整。在项目中根据需要修改步骤,特别是随着我们对模板的熟悉程度增加。模糊任务边缘,如步骤4-5,以最佳服务于模型准确度。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OmD88ujmSK9NKmxCOB0V2rMg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券