目录
图1 朋克少女
编辑
ps:总觉得白色的图片讲解理论显得单调,记忆效果不够好,换一个视觉冲击力强的试试😂
一、课程简介
构建、使用和维护机器学习模型及其所使用的数据的过程与其他开发工作流的过程截然不同。在本文中,我将揭开机器学习的面纱,讲述机器学习的流程及部分技术。读者可以:
0 从高层次理解支撑机器学习的流程。
1 理解基本术语概念,如“模型”,“训练”,“预测”,“过拟合”等。
从垂直角度看,创建机器学习模型的过程由许多步骤组成:
图2 机器学习流程
编辑
0 提出问题 大多数机器学习流程首先要提出一个问题,而这个问题无法通过简单的条件程序或基于规则的引擎(专家系统)来回答。这些问题的答案通常与数据集的预测结果有关。
1 收集和准备数据 为了能够解决这个问题,我们需要与问题相关的数据。数据的质量与数量将决定预测结果的准确性。数据可视化是此环节的一个重要方面。此阶段还将数据拆分为训练集和测试集以构建模型。
2 选择训练方法 根据问题和数据的性质,我们需要选择合适的训练模型以最好地适应数据并获得准确的预测结果。这一环节需要相关的专业知识,初学者入门需要系统性的学习理论知识,博主会在后面的文章中讲解这些理论。
3 训练模型 导入训练数据,我们将使用各种算法来训练模型以识别数据中的模式。该模型可以利用内部可调整的权重,将数据的某些部分优先与其他部分,以构建更好的模型。
4 评估模型 使用测试集(未参与模型训练的数据)来查看模型的性能,
5 预测 将新的输入值导入模型来测试模型的准确性
二、详细流程
1.提什么问题?
计算机特别擅长发现数据中隐藏的模式,对于无法通过创建基于条件的规则引擎回答的问题,机器学习非常有用。例如给定一项精算任务,数据科学家可能以吸烟者或非吸烟者的死亡率构建手工规则。
随着更多的变量被纳入,机器学习模型可以更精准的预测未来的死亡率,一个经典的例子就是通过经度、纬度、气候变化、海洋接近程度、急流模式等数据,对给定位置给定时间的天气进行预测。
2.预构建任务
在构建模型之前,我们需要完成几项任务。为了测试我们提出的问题,并根据模型进行的预测形成假设,我们需要识别和配置多个参数。
①数据
为了保证回答我们提出的问题,我们需要大量类型正确的数据。此时我们需要做两件事:
0 收集数据 请牢记上一篇文章关于数据的公平性,谨慎收集数据。注意这些数据的来源,它可能具有偏见;记录好数据来源。
1 准备数据 数据准备过程有好几个步骤。我们需要整理数据并将其规范化(数据来源不同)。提高数据的质量和数量:例如将字符串转化为数字。将原始数据生成新数据,如两个参数的比值就是另一个参数。也可以清理和编辑数据,去除异常值,我会在后面的课程中详细介绍;最后我们还需要随机化它并对其进行随机排序,具体操作取决我们选择的训练方法。
收集并处理好数据后,请花时间检查一下数据,检验它是否能让我们解决预期的问题。有时候数据在给定的任务中表现并不好,这时我们就需要调整数据或者方法了。
②特征和标签
图3 全球各国预期寿命数据
编辑
我们以全球各国预期寿命数据集为例,其中:
1 特征变量:是数据中的可测量属性,在许多数据集中,它表现为列标题;如“日期”,“颜色”,“长度”,“性别”等等。
2 特征值:即模型的输入值;是实际样本中的测量值,我们常用X表示。
3 标签: 真实寿命值,是预测的真实结果,我们常用Y表示。
4 样本:一条完整的特征值及标签我们称之为一个样本。
③选择特征变量
特征选择和特征提取如何知道在构建模型时要选择哪个变量呢?我们要以模型性能最高为目标来选择或者提取特征。但不要忘记模型的公平性。在这里我们还要区分特征选择和特征提取:
0 特征提取 在原始特征的基础上创建新特征 如两个特征的比值或者加权可以形成新特征
1 特征选择 是原始特征的子集,从原始特征中抽取需要的特征
④数据可视化
数据科学家常使用Seaborn或Matplotlib等几个优秀的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 欠拟合与过拟合
编辑
0 欠拟合 模型对数据的拟合不够好。这会导致模型的预测与其训练数据过于松散,使模型不能准确的分析训练数据,也不能准确的预测结果。
1 过拟合 模型对数据的拟合效果太好。这会导致模型的预测与其训练数据过于紧密,使模型对数据过度拟合,而不能对未知的测试数据达到良好的预测效果。
③评估模型
训练过程完成后,我们通过使用测试数据(测试集)来衡量模型的性能来评估模型的质量。我们可以通过Scikit-learn库打印出有关模型质量的指标表。
这里我总结了几个基本常见的评估系数,为避免记忆复杂,这些系数我会在后面的文章中详细讲解:这篇博客也讲的不错:
0 混淆矩阵 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。
1 准确率Accuracy系数 预测正确的结果占总样本的百分比。
2 精确率(查准率)- Precision: 所有被预测为正的样本中实际为正的样本的概率。精准率和准确率看上去有些类似,但是完全不同的两个概念。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。
3 召回率(查全率)- Recall 实际为正的样本中被预测为正样本的概率。
编辑
④参数调优
初始训练完成后,观察模型的质量,并考虑通过调整其“超参数”来改进模型。参考
这里需要解释一下参数与超参数的区别:
0 参数 就是模型可以根据数据自动学习出的变量;如权重,偏差等
1 超参数 就是用来确定模型的一些参数;超参数不同,模型是不同的超参数一般就是根据经验确定的变量。在深度学习中,超参数有:学习速率,迭代次数,层数,每层神经元的个数等
4.预测
此时,我们可以输入全新的数据来测试模型的准确性,若预测结果不佳,我们就应该去检查过程是否有错误,或者数据是否整理好,调整超参数等。
三、结论
本文中我们详细介绍了机器学习的基本流程,以及一些专业术语的解释;我们也可以看出,机器学习的大部分工作主要在数据准备部分,对数据的选择与随着学习的深入,我们还会遇到更加复杂的问题,请读者保持对学习的热情,细细琢磨🤗🤗🤗。
“本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_45590504/category_11752103.html?spm=1001.2014.3001.5482百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。”