【机器学习】1.机器学习概述
一.人工智能三大概念
目标:
- AI,ML,DL是什么?
- AI、ML、DL之间的关系
- 自动学习和规则编程的区别
1.人工智能
Artificial Intelligence 人工智能
AI is the field that studies the synthesis and analysis of computational agents that act intelligently
AI is to use computers to analog and instead of human brain
像人一样机器智能的综合与分析;机器模拟人类

- 是一个系统,像人那样思考 像人那样理性思考
- 是一个系统,像人那样活动 像人那样合理系统
2.机器学习
Machine Learning :机器学习
Field of study that gives computers the ability to learn without being explicitly programmed:让机器自动学习,而不是基于规则的编程(不依赖特定规则编程)

- 人类识别车:根据车的特征归纳出车的规律;来了一个新的图片,判断预测是否是车
机器学习识别车: 从数据中获取规律;来了一个新的数据,产生一个新的预测
3.深度学习
深度学习(DL, Deep Learning) : ,也叫深度神经网络,大脑仿生,设计一层一层的神经元模拟万事万物

4.三者之间的关系

机器学习是实现人工智能的一种途径
深度学习是机器学习的一种方法
5.学习方式
5.1 基于规则的学习
基于规则的预测 : 程序员根据经验利用手工的if-else方式进行预测

但是有好多问题, 无法明确的写下规则,此时无法使用规则学习的方式来解决这一类问题,比如:
图像和语音识别
自然语言处理
举例:尝试通过基于规则的学习方式让计算机识别大象,下图中的大象千差万别, 有的是实物,有的是雕塑,有的是画,无法通过创建一套规则的方式让计算机准确识别下面每一头大象, 此时需要一种新的方法来解决这类问题

5.2 基于模型的学习
基于模型的学习就是通过编写机器学习算法,让机器自己学习从历史数据中获得经验、训练模型

比如房价预测,数据如下图:

可以使用一条直线尽可能多的通过这些点,不通过的点尽量分布在直线的两侧,利用这条直线所表示的线性关系,就可以预测房价。
直线可以写成y=ax+b,若a,b已知,就能够预测房价。机器学习中a,b称为 参数 ,y=ax+b称为 模型 。通常a,b未知,是需要求解的量
二.人工智能应用领域和发展史
目标:
- 了解机器学习的应用领域
- 了解机器学习的发展史
1.应用领域

用户分析:社交网络、影评、商品评论
搜素引擎:网页、图片、规频、新闻、学术、地图
信息推荐:新闻、商品、游戏、书籍
图片识别:人像、用品、劢物、交通工具
机器翻译、摘要生成 … …
生物信息学习 … … 多模态 AR/VR
2.发展史

1956年夏季,以麦卡赛、明斯基、罗切斯特和申农等为首的一批有远见卓识的年轻科学家在一起聚会,共同研究和探讨用机器模拟智能的一系列有关问题,并首次提出了“人工智能”这一术语,它标志着“人工智能”这门新兴学科的正式诞生
1956 年被认为是人工智能元年
- 1950-1970 符号主义流派:专家系统占主导地位
- 1950:图灵设计国际象棋程序
- 1962:IBM Arthur Samuel 的跳棋程序战胜人类高手(人工智能第一次浪潮)
- 1980-2000
- 统计主义流派:主要用统计模型解决问题
- 1993:Vapnik提出SVM
- 1997:IBM 深蓝战胜卡斯帕罗夫(人工智能第二次浪潮)
- 2010-2017
- 神经网络、深度学习流派
- 2012:AlexNet深度学习的开山之作
- 2016:Google AlphaGO 战胜李世石(人工智能第三次浪潮)
- 2017-至今
- 大规模预训练模型
- 2017年,自然语言处理NLP的Transformer框架出现
- 2018年,Bert和GPT的出现
- 2022年,chatGPT的出现,进入到大规模模型AIGC发展的阶段
3.机器学习发展三要素
数据、算法、算力三要素相互作用,是AI发展的基石

CPU:负责调度任务、计算任务等;主要适合I\O密集型的任务
GPU:更加适合矩阵运算;主要适合计算密集型任务
TPU:Tensor,专门针对神经网络训练设计一款处理器
三.常见术语
目标:
- 知道样本是什么?
- 知道特征是什么?
- 知道标签/目标值是什么?
- 理解数据集划分的方法
1.样本,特征,标签/目标值

样本(sample) :一行数据就是一个样本;多个样本组成数据集;有时一条样本被叫成一条记录

特征(feature) :一列数据一个特征,有时也被称为属性

标签/目标(label/target) :模型要预测的那一列数据。本场景是就业薪资
就业薪资 与 培训学科、作业考试、学历、工作经验、工作地点 5个特征有关系
特征如何理解:特征是从数据中抽取出来的,对结果预测有用的信息
eg:房价预测、车图片识别
2.数据集划分

数据集可划分两部分:训练集、测试集 比例:8 : 2,7 : 3
训练集(training set) :用来训练模型(model)的数据集
测试集(testing set):用来测试模型的数据
四.算法分类
目标
- 有监督学习是什么?
- 无监督学习是什么?
- 半监督学习是什么?
- 强化学习是什么?
- 监督学习、无监督学习的数学表示
1.有监督学习
定义:输入数据是由输入特征值和目标值所组成,即输入的训练数据是有标签的
数据集:需要人工标注数据
有监督学习根据目标值的连续性可分为两大类:
分类: 目标值(标签值)是不连续的
回归: 目标值(标签值)是连续的
- 示例:例如,垃圾邮件分类、手写数字识别和房价预测

1.1 分类
目标值(标签值)是不连续的
分类种类:二分类、多分类任务

1.2 回归
目标值(标签值)是连续的

2.无监督学习
定义:输入数据没有被标记,即样本数据类别未知,没有标签,根据样本间的相似性,对样本集聚类,以发现事物内部 结构及相互关系。
数据集:不需要标注数据
- 示例:k均值聚类、主成分分析(
PCA)和异常检测是无监督学习的例子。
无监督学习特点:
- 训练数据无标签
- 根据样本间的相似性对样本集进行聚类,发现事物内部结构及相互关系


3.半监督学习
原理:
- 让专家标注少量数据,利用已经标记的数据(也就是带有类标签)训练出一个模型
- 再利用该模型去套用未标记的数据
- 通过询问领域专家分类结果与模型分类结果做对比,从而对模型做进一步改善和提高

半监督学习方式可大幅降低标记成本

4.强化学习
- 强化学习(Reinforcement Learning):机器学习的一个重要分支
- 应用场景:里程碑AlphaGo围棋、各类游戏、对抗比赛、无人驾驶场景、机器人控制、金融交易
- 基本原理:
- 通过构建四个要素:agent,环境状态,行动,奖励
- agent根据环境状态进行行动获得最多的累计奖励

小孩子学走路:
- (1) 小孩就是 agent,他试图通过采取行(即行走)来操纵环境(地面),
- (2) 并且从一个状态转变到另一个状态(即他走的每一步),
- (3) 当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),
- (4) 并且当他不能走路时,就不会给巧克力
5.总结


6.机器学习的建模流程

机器学习建模的一般步骤:
- 获取数据:搜集与完成机器学习任务相关的数据集
- 数据基本处理:数据集中异常值,缺失值的处理等
- 特征工程:对数据特征进行提取、转成向量,让模型达到最好的效果
- 机器学习(模型训练):选择合适的算法对模型进行训练 根据不同的任务来选中不同的算法;有监督学习,无监督学习,半监督学习,强化学习
- 模型评估:评估效果好上线服务,评估效果不好则重复上述步骤
注:在整个建模流程中,数据基本处理、特征工程一般是耗时、耗精力最多的
有监督学习模型训练和模型预测:

五.特征工程
目标:
- 知道特征工程是什么?
- 理解特征提取的作用
- 理解特征预处理的作用
- 了解特征降维、特征选择、特征组合
1.特征工程

- 从数据集角度来看: 一列一列的数据为特征。
- 从模型训练角度来看: 对预测结果有用的属性为特征
- 特征工程是:利用专业背景知识和技巧处理数据,让机器学习算法效果最好。这个过程就是特征工程
Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering: 特征工程是困难、耗时、需要专业知识。应用机器学习基础就是特征工程
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已
2.特征提取
从原始数据中提取与任务相关的特征,构成特征向量


对于文本、图片这种非行列形式的数据行列形式转换,一旦转换成行列形式一列就是特征
2.特征预处理
特征对模型产生影响: 因量纲(单位)问题,有些特征对模型影响大、有些影响小

- 将不同的单位的特征数据转换成同一个范围内
- 使训练数据中不同特征对模型产生较为一致的影响

3.特征降维
将原始数据的维度降低,叫做特征降维

- 会丢失部分信息,降维就需要保证数据的主要信息要保留下来
- 原始数据会发生变化,不需要了解数据本身是什么含义,它保留了最主要的信息
4.特征选择
原始数据特征很多,但是对任务相关是其中一个特征集合子集

- 从特征中选择出一些重要特征(选择就需要根据一些指标来选择)
- 特征选择不会改变原来的数据
5.特征组合
把多个的特征合并成一个特征

通过加法、乘法等方法将特征值合并
6.模型拟合问题
目标:
- 知道拟合是什么?
- 理解过拟合、欠拟合是什么?
- 知道过拟合、欠拟合出现的原因
- 理解泛化是什么?
- 拟合:用来表示模型对样本点的拟合情况(拟合 = 模型在训练集 和测试集上表现情况)
- 欠拟合:模型在训练集上表现很差、在测试集表现也很差(欠拟合 = 模型在训练集,测试集表现都不好). 原因:模型过于简单
- 过拟合:模型在训练集上表现很好、在测试集表现很差(过拟合 = 训练集好,测试集不好). 原因:模型太过于复杂、数据不纯、训练数据太少
- 泛化:模型在新数据集(非训练数据)上(也就是在测试集上)的表现好坏的能力(模型的拟合情况就是泛化能力))
- 奥卡姆剃刀原则:给定两个具有相同泛化误差的模型,较简单的模型比较复杂的模型更可取

模型表现效果 – 欠拟合欠拟合 – 从样本分布角度看
- 欠拟合产生的原因:模型过于简单
- 过拟合产的原因:模型太过于复杂、数据不纯、训练数据太少
- 泛化 Generalization :模型在新数据集(非训练数据)上的表现好坏的能力。 奥卡姆剃刀原则:给定两个具有相同泛化误差的模型,较简单的模型比较复杂的模型更可取
产生过拟合的原因:
- 数据不足: 如果训练数据量太小,模型可能会过分记住训练集的特定样本,而不能很好地泛化到新的数据。
- 模型复杂度过高: 过于复杂的模型容易在训练数据上表现出色,但可能对噪声或不相关特征过于敏感,从而在新数据上表现不佳。
- 特征选择不当: 使用过多的特征或选择了与目标无关的特征可能导致过拟合。
- 训练时间过长: 过长的训练时间也可能导致模型过度拟合训练数据,特别是当模型在训练数据上的性能停滞不前时。
解决过拟合的办法:
- 增加数据量: 增加训练数据可以减缓过拟合,使模型更好地泛化到新数据。
- 正则化(Regularization): 添加正则化项到模型的损失函数中,以惩罚复杂性。常见的正则化方法包括L1正则化和L2正则化。
- 交叉验证: 使用交叉验证来评估模型性能,确保模型在不同数据集上的性能一致,而不仅仅是在单一训练集上。
- 特征选择: 确保选择与问题相关的特征,避免使用过多不相关的特征。
- 集成方法: 使用集成学习方法,如随机森林或梯度提升树,可以减少过拟合的风险。
- 早停(Early Stopping): 在训练过程中监控验证误差,当验证误差停止改善时,停止训练,防止过拟合。
- 模型简化: 使用较简单的模型结构,避免过度复杂性。
- 数据预处理: 对数据进行预处理,如标准化或归一化,有时也可以有助于减轻过拟合。
产生欠拟合的原因:
- 模型复杂度不足: 如果模型的复杂度太低,它可能无法捕捉数据中的复杂关系,导致在训练和测试数据上都表现较差。
- 特征提取不足: 选择的特征可能不足以描述问题的复杂性,或者特征提取过程可能丢失了关键信息。
- 数据量不足: 训练数据量太小可能导致模型无法充分学习问题的模式。
- 训练时间不足: 如果模型没有足够的时间来学习数据的模式,也可能导致欠拟合。
解决欠拟合的办法:
- 增加模型复杂度: 使用更复杂的模型,例如增加网络的深度、增加神经元的数量等,以提高模型的表达能力。
- 增加特征: 确保选择足够多、足够相关的特征,以便更好地描述问题。
- 增加训练数据: 增加训练数据量,使模型能够更好地学习问题的模式。
- 调整训练时间: 确保模型有足够的时间来学习数据的模式,适当增加训练周期或迭代次数。
- 使用更复杂的算法: 在一些情况下,选择使用更复杂的学习算法可能有助于解决欠拟合问题。
- 特征工程: 对原始数据进行适当的特征工程,以提取更有代表性的特征。
- 集成方法: 使用集成学习方法,如随机森林或梯度提升树,可以提高模型的表达能力。
- 模型调参: 调整模型的超参数,如学习率、正则化参数等,以找到更好的模型配置。
总结:
- 1 过拟合欠拟合?
- 拟合:用来表示模型对样本分布点的模拟情况
- 模型在训练集上表现很差、在测试集表现也很差,是欠拟合
- 模型在训练集上表现很好、在测试集表现很差,是过拟合
- 2 过拟合欠拟合产生的原因
- 欠拟合产生的原因:模型过于简单
- 过拟合产生的原因:模型太过于复杂、数据不纯、训练数据太少
- 3 泛化概念
- 泛化 Generalization :具体的、个别的扩大为一般的能力
- 奥卡姆剃刀原则:给定两个具有相同泛化误差的模型,倾向选择较简单的模型
7.机器学习开发环境
基于Python的 scikit-learn 库:
简单高效的数据挖掘和数据分析工具
可供大家使用,可在各种环境中重复使用
建立在NumPy,SciPy和matplotlib上
开源,可商业使用-获取BSD许可证
安装开发环境命令:
pip install scikit-learn官网: https://scikit-learn.org/stable/


【上一篇】【数据处理与统计分析】10.RFM会员价值度模型案例
【下一篇】【机器学习】2.KNN算法
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)