机器学习系列3 机器学习的流程

简介: 构建、使用和维护机器学习模型及其所使用的数据的过程与其他开发工作流的过程截然不同。在本文中,我将揭开机器学习的面纱,讲述机器学习的流程及部分技术。

 目录

一、课程简介

二、详细流程

1.提什么问题?

2.预构建任务

①数据

②特征和标签

③选择特征变量

④数据可视化

3.构建模型

①确定训练方法

②训练模型

③评估模型

④参数调优

4.预测

三、结论      


图1 朋克少女

image.gif编辑

ps:总觉得白色的图片讲解理论显得单调,记忆效果不够好,换一个视觉冲击力强的试试😂

一、课程简介

       构建、使用和维护机器学习模型及其所使用的数据的过程与其他开发工作流的过程截然不同。在本文中,我将揭开机器学习的面纱,讲述机器学习的流程及部分技术。读者可以:

0 从高层次理解支撑机器学习的流程。

1 理解基本术语概念,如“模型”,“训练”,“预测”,“过拟合”等。

课前测验

从垂直角度看,创建机器学习模型的过程由许多步骤组成:

图2 机器学习流程

image.gif编辑

0 提出问题 大多数机器学习流程首先要提出一个问题,而这个问题无法通过简单的条件程序或基于规则的引擎(专家系统)来回答。这些问题的答案通常与数据集的预测结果有关。

1 收集和准备数据 为了能够解决这个问题,我们需要与问题相关的数据。数据的质量与数量将决定预测结果的准确性。数据可视化是此环节的一个重要方面。此阶段还将数据拆分为训练集和测试集以构建模型。

2 选择训练方法 根据问题和数据的性质,我们需要选择合适的训练模型以最好地适应数据并获得准确的预测结果。这一环节需要相关的专业知识,初学者入门需要系统性的学习理论知识,博主会在后面的文章中讲解这些理论。

3 训练模型 导入训练数据,我们将使用各种算法来训练模型以识别数据中的模式。该模型可以利用内部可调整的权重,将数据的某些部分优先与其他部分,以构建更好的模型。

4 评估模型 使用测试集(未参与模型训练的数据)来查看模型的性能,

5 预测 将新的输入值导入模型来测试模型的准确性

二、详细流程

1.提什么问题?

       计算机特别擅长发现数据中隐藏的模式,对于无法通过创建基于条件的规则引擎回答的问题,机器学习非常有用。例如给定一项精算任务,数据科学家可能以吸烟者或非吸烟者的死亡率构建手工规则。

       随着更多的变量被纳入,机器学习模型可以更精准的预测未来的死亡率,一个经典的例子就是通过经度、纬度、气候变化、海洋接近程度、急流模式等数据,对给定位置给定时间的天气进行预测。

2.预构建任务

       在构建模型之前,我们需要完成几项任务。为了测试我们提出的问题,并根据模型进行的预测形成假设,我们需要识别和配置多个参数。

①数据

为了保证回答我们提出的问题,我们需要大量类型正确的数据。此时我们需要做两件事:

0 收集数据 请牢记上一篇文章关于数据的公平性,谨慎收集数据。注意这些数据的来源,它可能具有偏见;记录好数据来源。

1 准备数据 数据准备过程有好几个步骤。我们需要整理数据并将其规范化(数据来源不同)。提高数据的质量和数量:例如将字符串转化为数字。将原始数据生成新数据,如两个参数的比值就是另一个参数。也可以清理和编辑数据,去除异常值,我会在后面的课程中详细介绍;最后我们还需要随机化它并对其进行随机排序,具体操作取决我们选择的训练方法。

       收集并处理好数据后,请花时间检查一下数据,检验它是否能让我们解决预期的问题。有时候数据在给定的任务中表现并不好,这时我们就需要调整数据或者方法了。

②特征和标签

图3 全球各国预期寿命数据

image.gif编辑

       我们以全球各国预期寿命数据集为例,其中:

1 特征变量:是数据中的可测量属性,在许多数据集中,它表现为列标题;如“日期”,“颜色”,“长度”,“性别”等等。

2 特征值:即模型的输入值;是实际样本中的测量值,我们常用X表示。

3 标签: 真实寿命值,是预测的真实结果,我们常用Y表示。

4 样本:一条完整的特征值及标签我们称之为一个样本。

③选择特征变量

       特征选择和特征提取如何知道在构建模型时要选择哪个变量呢?我们要以模型性能最高为目标来选择或者提取特征。但不要忘记模型的公平性。在这里我们还要区分特征选择和特征提取:

0 特征提取 在原始特征的基础上创建新特征 如两个特征的比值或者加权可以形成新特征

1 特征选择 是原始特征的子集,从原始特征中抽取需要的特征

④数据可视化

       数据科学家常使用SeabornMatplotlib等几个优秀的python库来实现数据可视化。它能直观地表示数据,使数据科学家发现数据中可以利用的隐藏相关性。可视化效果还可以帮助发现偏差或不平衡的数据。

⑤拆分数据集

       在模型训练之前,我们需要将数据集拆分为两个或多个大小不等的部分,这些部分仍能很好地表示数据。数据集合经过处理划分为训练集和测试集,常用划分比例有(5:5,6:4,7:3,8:2)其中训练集由完整的特征值与标签构成,用以训练模型;测试集输入特征值,经过模型运算后得到的预测值与真实标签做对比,用于评估精度。

0 训练集 数据集的这一部分用于模型训练。训练集常包含了原始数据集的大部分样本。

1 测试集 测试集是除训练后半部分的样本数据,通常从原始数据中收集,用于测试模型的性能。

2 验证集 验证集是一组较小的独立样本集合,用于调整模型的超参数或体系结构以改进模型。

测试集与验证集的区别,模型已经有最佳选择时不分验证集;大部分情况下只分为训练集与测试集。

3.构建模型

       使用训练数据,目标是使用各种算法来训练数据,从而构建模型或数据的统计表示。然后继续提供数据给模型,允许模型对其发现,判断、接受或者拒绝并对结果提出假设。

①确定训练方法

       根据问题和数据的性质,我们选择一种方法来训练它。逐步浏览 Scikit-learn的文档,探索训练模型的方法,根据专家经验,你我可能需要尝试几种不同的方法来构建最佳模型。数据科学家通过向模型提供数据,检验模型准确性,偏差和其他质量下降问题,并为手头的任务选择最合适的训练方法来评估模型的性能。

②训练模型

       有了训练数据,我们就可以通过拟合数据来创建模型,你会注意到,在许多机器学习库中,用这样一个代码“model.fit” -此时,我们将特征变量x作为值数组X和标签变量Y输入到模型中。每次训练我们用迭代1轮或1个epoch指代,训练100次就是100epoch或迭代100轮。

在机器学习中,模型拟合是指模型的基础函数的准确性;在次有两个概念需要我们了解:

图4 欠拟合与过拟合

image.gif编辑

0 欠拟合 模型对数据的拟合不够好。这会导致模型的预测与其训练数据过于松散,使模型不能准确的分析训练数据,也不能准确的预测结果。

1 过拟合 模型对数据的拟合效果太好。这会导致模型的预测与其训练数据过于紧密,使模型对数据过度拟合,而不能对未知的测试数据达到良好的预测效果。

③评估模型

       训练过程完成后,我们通过使用测试数据(测试集)来衡量模型的性能来评估模型的质量。我们可以通过Scikit-learn库打印出有关模型质量的指标表。

这里我总结了几个基本常见的评估系数,为避免记忆复杂,这些系数我会在后面的文章中详细讲解:这篇博客也讲的不错:

0 混淆矩阵 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。

1 准确率Accuracy系数 预测正确的结果占总样本的百分比。

2 精确率(查准率)- Precision: 所有被预测为正的样本中实际为正的样本的概率。精准率和准确率看上去有些类似,但是完全不同的两个概念。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

3 召回率(查全率)- Recall 实际为正的样本中被预测为正样本的概率。

image.gif编辑

④参数调优

       初始训练完成后,观察模型的质量,并考虑通过调整其“超参数”来改进模型。参考

这里需要解释一下参数与超参数的区别:

0 参数 就是模型可以根据数据自动学习出的变量;如权重,偏差等

1 超参数 就是用来确定模型的一些参数;超参数不同,模型是不同的超参数一般就是根据经验确定的变量。在深度学习中,超参数有:学习速率,迭代次数,层数,每层神经元的个数等

4.预测

       此时,我们可以输入全新的数据来测试模型的准确性,若预测结果不佳,我们就应该去检查过程是否有错误,或者数据是否整理好,调整超参数等。

三、结论        

       本文中我们详细介绍了机器学习的基本流程,以及一些专业术语的解释;我们也可以看出,机器学习的大部分工作主要在数据准备部分,对数据的选择与随着学习的深入,我们还会遇到更加复杂的问题,请读者保持对学习的热情,细细琢磨🤗🤗🤗。

课后测验

学习链接

 


“本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_45590504/category_11752103.html?spm=1001.2014.3001.5482百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。”

目录
相关文章
|
7月前
|
机器学习/深度学习 数据采集 存储
【机器学习】机器学习流程之收集数据
【机器学习】机器学习流程之收集数据
241 1
|
7月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
99 0
|
7月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
311 1
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
386 1
|
5月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch模型训练与部署流程详解
【7月更文挑战第14天】PyTorch以其灵活性和易用性在模型训练与部署中展现出强大的优势。通过遵循上述流程,我们可以有效地完成模型的构建、训练和部署工作,并将深度学习技术应用于各种实际场景中。随着技术的不断进步和应用的深入,我们相信PyTorch将在未来的机器学习和深度学习领域发挥更加重要的作用。
|
5月前
|
机器学习/深度学习 数据采集 数据处理
重构数据处理流程:Pandas与NumPy高级特性在机器学习前的优化
【7月更文挑战第14天】在数据科学中,Pandas和NumPy是数据处理的关键,用于清洗、转换和计算。用`pip install pandas numpy`安装后,Pandas的`read_csv`读取数据,`fillna`处理缺失值,`drop`删除列。Pandas的`apply`、`groupby`和`merge`执行复杂转换。NumPy加速数值计算,如`square`进行向量化操作,`dot`做矩阵乘法。结合两者优化数据预处理,提升模型训练效率和效果。
74 1
|
5月前
|
数据采集 人工智能 监控
阿里云百炼模型训练实战流程:从入门到实战应用
【7月更文第2天】阿里云百炼是AI大模型开发平台,提供一站式服务,涵盖模型训练到部署。用户从注册登录、创建应用开始,选择模型框架,配置资源。接着,进行数据准备、预处理,上传至阿里云OSS。模型训练涉及设置参数、启动训练及调优。训练后,模型导出并部署为API,集成到应用中。平台提供监控工具确保服务性能。通过百炼,开发者能高效地进行大模型实战,开启AI创新。
1553 2
|
7月前
|
机器学习/深度学习 数据采集 算法
【机器学习】朴素贝叶斯分类器的工作流程?
【5月更文挑战第10天】【机器学习】朴素贝叶斯分类器的工作流程?
|
机器学习/深度学习 算法 测试技术
使用机器学习优化软件开发流程
在软件开发领域,提高开发效率和质量一直是开发者们追求的目标。随着人工智能和机器学习的快速发展,我们可以利用这些技术来优化软件开发过程,进一步改善开发体验和结果。
141 1
|
7月前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
117 2