【机器学习】采集数据、特征工程、建立模型、应用四个阶段的详解(图文解释 超详细)

简介: 【机器学习】采集数据、特征工程、建立模型、应用四个阶段的详解(图文解释 超详细)

机器的这种学习能力,作为人工智能的核心要素,将会对人类社会的生产、生活、军事等活动产生难以估量的影响。

那么,什么是机器学习(Machine Learning,ML)呢? 人类的学习中,最基础的是记忆,即机械的复述。但更重要的是指“举一反三”的能力。当用图片、文字、视频等教人们认识动物时,人们不仅记住了动物的知识,还学会了对真实的动物进行分析、辨认和判别,这是一种学习知识,并应用知识的能力。获得这种能力,并用来解决实际问题,正是机器学习的目标。 这种能力对人类来说并不难,人类的学习能力比现在所有机器学习算法的能力都要强得多。但计算机具有数据存储和处理方面的优势,一旦它具有了这种能力,就可以高效地替代人完成类似工作。比如,从海量的监视视频中找到某个通缉犯。

要使机器具备这种能力,出现过所谓的符号学习(Symbol Learning)和统计学习(Statistical Learning)两类主要方法。符号学习以知识推理为主要工具,在早期推动了机器学习的发展。随着计算能力的大幅度提升,统计学习占据了更多舞台,作出了更多的贡献。现在,人们提到的机器学习,更多的是指统计学习。从统计学习的角度来说,机器学习算法是从现有数据中分析出规律,并利用规律来对未知数据进行预测的算法。机器学习已经发展成为一门多领域交叉的学科,涉及概率论、统计学、微积分、矩阵论、最优化等知识。

机器学习应用流程

一个典型的机器学习应用流程包括采集训练数据、特征工程、建立模型和应用四个主要阶段。

1:训练数据和测试数据

训练数据是用来帮助机器学习知识、建立起蕴含知识的模型的数据。测试数据是模型服务的对象,对测试数据作出正确的预测是机器学习一系列活动的最终目的。

机器学习模型能够有效预测的前提是训练数据和测试数据具有相同的规律性这一基本假设。建立机器学习模型,就是要通过适当的方法显式或隐式地找到这些规律,并用于预测。

数据的类型不仅包括格式化的数据,还包括文本、视频、音频等非格式化的数据。

训练数据和测试数据一般是多条相同格式的数据组成的集合,因此,也称为训练数据集和测试数据集。sklearn、MindSpore和TensorFlow2中有相应的数据处理模块。

2:特征工程

特征工程的目标是从训练数据中提取出能供模型训练的格式化数据。原始的训练数据一般不能直接用于训练模型,所以,要经过一定的处理才能适用。

供模型训练的格式化数据一般是一个包括多项分量的向量。也就是说,通过特征工程,每条训练数据都变成了一个向量,称为特征向量。特征向量的每个分量称为特征。

一般来说,一项特征表征了训练数据某一方面的特征。从训练数据中提取特征是一种创造性的活动,没有固定的规则可循

特征提取是很重要的环节,对预测结果影响很大。

对测试数据也要经过相同的特征工程,提取出符合模型输入需要的特征向量。

3:建立模型

建立模型就是由从训练数据提取得到的特征向量集合生成机器学习模型,用于对测试数据进行预测。

建立模型,首先要确定建立什么样的模型,即要选择一个合适的模型。机器学习的模型很多,可从多个角度来对它们进行分类

从学习的过程来看,机器学习可以分为监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和半监督学习(Semi-supervised Learning)等类别。

监督学习

监督学习学习的对象是所谓的有标签训练数据,有标签数据是指已经给出明确标记的数据。监督学习利用有标签的训练数据来学得模型,目标是用该模型给未标记的测试数据打上标签。

无监督学习

与监督学习不同,无监督学习的训练数据没有标签,它自动从训练数据中学习知识,建立模型。无监督学习也称为无指导学习。在大多数工程应用中,事先标记大量的训练数据是一件代价很大的工作,因此,无监督学习在机器学习中具有重要作用。

半监督学习

半监督学习是监督学习和无监督学习相结合的一种学习方法,它利用少量已标记样本的帮助来对大量未标记样本进行标记。

从完成的任务看,机器学习模型主要可以分为聚类、分类、回归和标注等模型

1)聚类(Clustering)

聚类模型用于将训练数据按照某种关系划分为多个簇,将关系相近的训练数据分在同一个簇中。聚类属于无监督学习,它的训练数据没有标签,但经预测后的测试数据会被标记上标签,该标签是它所属簇的簇号。

2)分类(Classification)

分类是机器学习应用中最为广泛的任务,它用于将某个事物判定为属于预先设定的多个类别中的某一个。分类属于监督学习,数据的标签是预设的类别号。分类模型可分为二分类和多分类的。如果要预测明天是否下雨,则是一个二分类问题,如果要预测是阴、晴还是雨,则是一个三(多)分类问题。

3)回归(Regression)

回归模型预测的不是属于哪一类,而是什么值,可以看作是将分类模型的类别数无限增加,即标签值不再只是几个离散的值了,而是连续的值。如预测明天的气温是多少度,因为温度是一个连续的值,所以这是一个回归模型要解决的问题。回归也属于监督学习。

4)标注(Tagging)

标注模型处理的对象不是单个样本,而是由多个有前后关联关系的样本组成的序列。这种关联关系可分为向后单向和双向的。向后单向的序列有每天天气温度、股票价格、语音数据等与时间有关的序列。双向的序列有自然语言中的文本句子。

标注模型常用于处理自然语言处理方面的问题,因为一个文本句子中的词出现的位置是有关联的。可以认为标注问题是分类问题的一个推广,它也属于监督学习范畴。

除了以上四类直接面向任务的模型外,还有一些可用于辅助工作的模型,如可用于特征工程中数据预处理的降维(Dimensionality reduction)模型等。

全面了解各种模型的作用、性质和特点,选择合适的模型来应用,是建立模型的基本要求。如果没有现成的模型适用,则需要重新设计新的模型,这对设计人员要求很高,常出现在神经网络模型的应用中。

sklearn扩展库的主要模块实现了上述各类模型,包括cluster、decomposition、gaussian_process、linear_model、manifold、mixture、multicalss、naïve_bayes、neighbors、semi_wupervised、svm、tree、ensemble等。

建立模型的过程又可分为模型训练、模型评估和模型优化三个主要阶段。

1)    模型训练

模型训练是用特征工程产生的特征向量集对模型进行训练。经过多轮输入特征向量集的训练,模型内部的参数逐渐固定,模型对输入的响应也逐渐稳定。

受问题规模、训练条件以及算法复杂度等影响,训练可能会需要很长时间。

2)    模型评估

模型一般不能对所有的数据都准确无误地预测出来,会产生一定的误差。在训练数据上产生的误差称为训练误差(training error),在测试数据上产生的误差称为测试误差(test error)

最终衡量模型好坏的是测试误差,它标志了模型对测试数据的预测能力,因此一般追求的是测试误差最小的模型。模型对测试数据的预测能力称为泛化能力(generalization ability),模型在测试数据上的误差也称为泛化误差(generalization error)。

测试数据是模型投入生产之后才能接触到的数据,因此,泛化误差并不能在建立模型阶段就得到,所以,泛化误差不能用来在建模阶段评估模型。

在监督学习任务中,工程上常将已有训练数据划分为不重合的训练集和验证集。用训练集来训练模型,然后用模型在验证集上产生的验证误差作为评估模型指标,达到满意的程度后,再提交实际应用。将训练数据划分为训练集和验证集的方法称为保持法(holdout method),一般保留已知样本的20%到30%作为验证集。

K-折交叉验证法是将总样本数据随机地划分为K个互不相交的子集。对于每个子集,将所有其它数据集作为训练集训练出模型,将该子集作为验证集,并记录验证集每一条数据的预测结果。每个子集都这样处理完后,所有数据都有一个预测值。然后与真实值进行比对,从而评估模型的效果。

3)    模型优化

对评价达不到满意要求的模型,需要进行优化。

机器学习模型的参数有两种,一种是通过训练从数据中学习得到的,另一种是人为设定的。需要人为设定的参数称为超参数(huper parameters)。超参数一般控制模型的主体框架,超参数的改变会对模型建立和预测产生很大的影响。寻找使模型整体最优的超参数的过程,称为超参数调优。

超参数调优需要依靠试验的方法,以及人的经验。对模型的理解越深入,对实现模型的算法了解越详细,积累了越多的调优经验,就越能够快速准确地找到最合适的超参数。

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
3天前
|
机器学习/深度学习 人工智能 文字识别
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
|
5天前
|
机器学习/深度学习 运维 算法
智能化运维:机器学习在故障预测中的应用
本文深入探讨了机器学习技术如何革新传统运维领域,通过实际案例分析,揭示了数据驱动的故障预测模型在提高系统可靠性和降低维护成本方面的潜力。文章结合最新的研究成果和行业报告,阐述了智能化运维的实施路径和面临的挑战,为读者提供了一套科学严谨的技术实施框架和未来发展趋势的洞见。
|
4天前
|
机器学习/深度学习 自然语言处理 算法
扩散模型在机器学习中的应用及原理
扩散模型在机器学习中的应用及原理
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索
【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索
11 0
|
3天前
|
机器学习/深度学习 分布式计算 算法
Java中的机器学习模型集成与训练实践
Java中的机器学习模型集成与训练实践
|
4天前
|
机器学习/深度学习 运维 监控
智能运维的崛起:机器学习在故障预测中的应用
随着信息技术的快速发展,传统的运维模式已无法满足现代企业的需求。本文将探讨如何利用机器学习技术进行故障预测,以实现智能运维。我们将通过数据分析和实验结果来展示机器学习在故障预测中的有效性,并讨论其在实际运维中的应用前景。
12 0
|
4天前
|
机器学习/深度学习 Cloud Native PyTorch
PAI DLC在实际应用中的优缺点
PAI DLC在实际应用中的优缺点
|
5天前
|
数据采集 人工智能 监控
阿里云百炼模型训练实战流程:从入门到实战应用
阿里云百炼是AI大模型开发平台,提供一站式服务,涵盖模型训练到部署。用户从注册登录、创建应用开始,选择模型框架,配置资源。接着,进行数据准备、预处理,上传至阿里云OSS。模型训练涉及设置参数、启动训练及调优。训练后,模型导出并部署为API,集成到应用中。平台提供监控工具确保服务性能。通过百炼,开发者能高效地进行大模型实战,开启AI创新。
46 0
|
5天前
|
机器学习/深度学习 人工智能 分布式计算
Java中的机器学习模型集成与训练
Java中的机器学习模型集成与训练
|
6天前
|
机器学习/深度学习 自然语言处理 PyTorch
【机器学习】自然语言处理(NLP)领域革命性突破的模型——Transformer
【机器学习】自然语言处理(NLP)领域革命性突破的模型——Transformer