【人工智能】机器学习基础速览
机器学习基础速览
数据(经验E)-> 学习算法(任务T)-> 理解(度量P)
机器学习的特点
- 使用样本训练
- 决策的规则复杂,或难以描述
- 由机器自动学习规则
机器学习典型任务
- 分类:计算机程序需要指定输入属于k类中的哪一类。比如计算机视觉中的图像分类算法解决的就是一个分类任务
- 回归:计算机程序对给定输入,进行预测,输出结果。例如预测股票走向、证券未来价格等
- 聚类:对大量未知标注数据集进行处理。按照数据内在相似性将数据划分为多个类别。是类别内的数据则相似度高,类别之间的数据相似性低。
分类和回归是预测问题的两种主要类型,分类输出的是离散的类别值;回归输出的是连续数值。
机器学习算法分类
(1)监督学习
定义:利用已知类别的样本
,训练学习得到一个最优模型,使其达到所要求性能,再利用这个训练所得模型,将所有的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,即可以对未知数据进行分类。
1.有监督学习的核心是标签,所有数据集必须有标签
2.监督学习的回归问题:反应样本数据集中样本属性值的特征,通过函数表达样本映射的关系来发现属性值之间的依赖关系。
通常情况下回归问题都在拟合一个趋势
3.监督学习的分类问题:通过分类模型,将样本数据集中的样本映射到某个给定的类别中。
(2)无监督学习
定义:对于没有标记的样本
,学习算法直接对输入数据集进行建模,例如聚类,即“物以类聚,人以群分”。我们只需要把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。
无监督学习的聚类问题:通过聚类模型,将样本数据集中的样本分为几个类别,属于同一类别的样本相似性大。
(3)半监督学习
定义:试图让学习器自动地对大量未标记数据进行利用以辅助少量有标记数据进行学习。
半监督学习可以完成回归、分类、聚类。
例如用半监督学习做一个分类,首先用户有标签的数据训练一个模型,然后将没有标签的数据放入模型中,看给出的未分类效果,选出好的数据进一步优化模型。
即:用没有标签的数据辅助有标签的数据优化模型
做其他任务的时候也会遇到 用有标签的数据辅助没有标签的数据。
(4)强化学习
定义:学习系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统如何去产生正确的动作。
模型感知环境,做出行动,根据状态与奖惩做出调整和选择
强化学习的目的是找一个最佳行为。例如无人驾驶、AlphaGo等。
机器学习算法的整体流程
- 数据收集与清理
- 特征选择
- 模型训练
- 魔性测试与评估
- 模型部署与整合
● 数据集:在机器学习任务中使用的一组数据,其中的每一个数据称为一个样本。反映样本在某方面的表现或性质的事项或属性称为特征。
● 训练集:训练过程中使用的数据集,其中每个训练样本称为训练样本。从数据中学得模型的过程称为学习(训练)。
● 测试集:学得模型后,使用其进行预测的过程称为测试,使用的数据集称为测试集,每个样本称为测试样本。
训练集和测试集不能有交集
数据预处理
-
数据清理(数据过滤;填充缺失值;消除造成数据的异常点)
-
数据降维(简化数据属性,避免维度爆炸;合并多个数据源数据;数据汇总)
-
数据标准化(标准化数据来减少噪声,以及提高模型准确性)
脏数据
真实的数据通常存在一些数据质量问题:
- 不完整:数据中缺少属性或者包含一些缺失的值
- 多噪音:数据包含错误的记录或者异常点
- 不一致:数据中存在矛盾、有差异的记录
数据的转换
-
在分类问题中,将类别数据编码成为对应的数值表示(哑编码)
-
数值数据转换为类别数据以减少变量的值(例如对年龄分段)
-
其他数据
- 从文本数据中提取有用的数据(一般使用词袋法、TF-IDF、word2vec)
-
特征工程
- 对特征进行归一化、标准化,以保证同一模型的不同输入变量的值域相同
- 特征扩充:对现有变量进行组合或转换以生成新的特征,比如平均数
特征选择
通常情况下,一个数据集当中存在很多种不同的特征,其中一些可能是多于的或者与我们要预测的值无关的。
特征选择技术的必要性体现在:
- 简化模型,使模型更容易被使用者解释
- 减少训练时间
- 避免维度爆炸
- 提升模型泛化性,避免过拟合
特征选择方法:Filter
过滤法(Filter)在选择特征的时候是独立的,与模型本身无关
通过评估每个特征和目标属性之间的祖关性这些方法应用一个统计度量来为每个特征赋值。然后根据分数对这些特性进行排序,这可以用来帮助保留或消除特定特征
过滤法的局限:过滤法倾向于选择冗余的变量,因为他们没有考虑特征之间的关系
常用过滤方法:
- 皮尔逊相关系数
- 卡方系数
- 互信息
特征选择方法:wapper
包装器(wapper)方法使用一个预测模型来对对特征子集进行评分。
包装器方法将特征选择问题视为一个搜索问题,在这个问题中,将评估和比较不同的组合。在这里,预测模型用于评估特征的组合的工具,根据模型的准确性进行评分
常用方法:特征递归消除法
局限性:
- 因为包装器方法为每个子集训练- -个新模型时,
所以它们的计算量非常大。 - 其特征选择的方法通常为特定类型的模型提供了性能最好的特性集。
特征选择方法:Embedded
嵌入法(Embedded)的方法将特征选择作为模型构建的一 部分。
最常见的嵌入式特征选择方法是正则化方法。正则化方法也称为惩罚方法,它在优化预测算法时引入额外的约束,使模型的复杂度降低,也就是减少了特征的数量。
常见方法:
- LASSO回归(线性回归+L1正则)
- RIDGE回归(线性回归+L2正则)
模型的有效性
- 泛化能力(鲁棒性):模型适用于新样本的能力称为繁华能力
- 误差:模型在样本上的预测结果与样本真实结果之间的误差
- 训练误差:模型在训练集上的误差
- 泛化误差:模型在新样本上的误差
- 欠拟合:训练误差很大的现象
- 过拟合:学的的模型训练误差很小,但是泛化误差大的现象
模型的容量:指拟合各种函数的能力,也称为模型的复杂度。
过拟合原因-误差
最终预测的总误差 = 偏差2+方差+不可消解的误差
我们主要关注来自偏差的误差和方差的误差
- 偏差
- 模型的预期(或平均)预测值与我们视图预测的正确值之间的差异
- 方差
- 模型的预测结果在均值附近的偏移的幅度
- 来源于模型在训练集上对小波动的敏感性的误差
模型的复杂度与误差
随着模型复杂度上升,训练误差逐渐减小
什么是好的模型?
- 泛化能力:在实际业务中预测准确
- 可解释性:预测结果容易被解释
- 预测速率:每一条数据预测用时
- 可塑性:业务量增大时,预测速率仍然能被接受
低偏差&低方差:好模型
高偏差&低方差:不良模型
机器学习训练方法
模型中的参数和超参数
模型中不但有参数,还有超参数的存在。超参数的目的是为了让模型能够学习到最佳的参数
- 参数由模型自动学习
- 超参数由人工手动设定
梯度下降法
梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,该方向为当前位置最快下降方向,梯度下降中越接近目标值,变化量越小,公式如下:
●其中η成为学习率,i表示第i条数据。权重参数w每次迭代变化的大小。
●收敛:目标函数的值变化非常小或达到最大迭代次数。
- 批量梯度下降(BGD):使用所有数据集中的样本(共m个样本)在当前点的梯度之和来对权重参数进行更新操作
- 随机梯度下降(SGD):随机选取一个数据集中的样本在当前的梯度来对权重参数进行更新操作
- 小批量梯度下降(MBGD):结合了BGD和SGD的特征每次选择数据集中n个样本的梯度来对权重参数进行更新操作
三种梯度下降方法比较:
- SGD中,因为每次训练选取的样本是随机的,这本身就带来了不稳定性,会导致损失函数在下降到最低点的过程中,产生动荡甚至反向的位移。
- BGD最稳定,但是过于消耗运算资源
- MBGD是SGD与BGD平衡之后的方法。
交叉验证
- 交叉验证:是用来验证分类器的性能一种统计分析方法, 基本思想是把在某种意义下将原始数据进行分组,一部分作为训练集,另一部分作为验证集, 首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。
- k-折交叉验证(K-CV) :
- 将原始数据分成k组(-般是均分 )。
- 将每个子集数据分别做一-次验证集, 其余的k - 1组子集数据作为训练集,这样会得到k个模型。
- 用这k个模型最终的验证集的分类准确率的平均数作为此K - CV下分类器的性能指标。
机器学习常见算法
线性回归
线性回归( Linear regression) :线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
线性回归是一 种有监督学习。
线性回归模型:hw(x)=wTx+b
W:权重;b:偏置;x:样本
模型预测与真实值的关系:y=WTx+ε
y:真实值;ε:误差
线性回归损失函数:
误差ε受到众多因素独立影响,根据中心极限定律,误差ε服从正态分布。根据正态
分布函数与最大似然估计,可以求出线性回归的损失函数。
我们想要预测值与真实值最接近,就是求损失值最小。可以使用梯度下降的方法求出当损失函数达到最小的时候的权重参数w,继而完成模型构建。
线性回归扩展:多项式回归
多项式回归,是线性回归的拓展,通常数据集的复杂度会超过用一条直线来拟合的可能性,也就是使用原始的线性回归模型会明显欠拟合。解决的办法就是使用多项式回归。
n次方就是多项回归的维度。
多项式回归仍然是线性回归的一种,是因为其非线性体现在特征的维度上,而其权
重参数w之间的关系仍然是线性的。
线性回归防止过拟合
逻辑回归
逻辑回归模型是一种分类模型,用来解决分类问题。模型的定义如下:
逻辑回归与线性回归都是广义线性模型。逻辑回归在线性回归的基础上引入了非线性因素(sigmoid函数), 并设定了阈值,因此可以处理二分类问题。
逻辑回归损失函数:
其中w为权重参数,m为样本个数,x表示样本, y表示真实值 。同样可以通过梯度下降算法求得所有权重参数w的值。
逻辑回归扩展:softmax函数
● 逻辑回归只能用于二分类问题,如果是多分类问题,我们通常使用Softmax函数。
Softmax为多类问题中的每个分类分配了概率值。这些概率加起来等于1。
决策树
● 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。
● 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。
● 剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。
支持向量机
支持向量机( support vector machine, SVM)是- -种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器
。
SVM还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习算法是求解凸二次规划的最优化算法。
线性支持向量机
直线被用来将数据分割到不同类别中,而实际上我们可以多条直线将数据分来。
SVM的核心思路是找到一个直线,使离直线比较近的点,尽可能远离这条直线,这可以使模型具有很强的泛化能力。而这些点就被称为支持向量(Support Vector)
在二维空间中,我们用直线来分割,如果是高维空间,我们使用超平面来分割。
非线性支持向量机
高斯函数用的最广,应用场景多。
K最邻近算法
K最近邻(k-Nearest Neighbor, KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
- KNN的核心思想是“近朱者赤,近墨者黑”其在逻辑上十分的简洁。
- KNN是非参数方法,常用在决策边界非常不规则的数据集中使用。
- KNN在分类预测时,-般采用多数表决法; KNN在做回归预测时,一般采用平均值法
- KNN的需要非常大的计算量。
一般来说,较大的k值会降低噪声对分类的影响,但会使类之间的边界不那么明显
K值越大越容易欠拟合,因为分割过于粗糙,越小越容易过拟合,因为分割过于细腻。
朴素贝叶斯
朴素贝叶斯算法( Naive Bayes) :朴素贝叶斯是一种简单的多类分类算法 ,基于贝叶斯定理,并假设特征之间是独立的。给定样本特征X,样本属于类别H的概率是:
集成学习
集成学习是一种机器学习范式,在这种范式中,多个学习者被训练和组合以解决同-一个问题。通过使用多个学习者,集成的泛化能力可以比单个学习者强得多。
如果随机向数千人提出一个复杂的问题,然后汇总他们的答案。在许多情况下,会发现这个汇总的答案比专家的答案更好。这就是群众智慧。
集成学习-随机森林
集成学习-GBDT
K-means(无监督学习的算法)
层次聚类(无监督学习的算法)
层次聚类法试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自下向上”的聚合策略,也可以采用“自顶向下”的分拆策略。聚类的层次被表示成树形图。树根拥有所有样本的唯一聚类,叶子是仅有一个样本的聚类。
本笔记对应课程视频: