目录
监督学习
三要素
模型:凭借某种思想得到的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。
策略:按照什么样的准则(损失函数)选择最优模型。回归问题mse,分类问题负对数似然损失,交叉熵损失等。分类问题损失函数详情见此
算法:解析解不存在时采用的数值计算的方法。
模型评估与选择
经验误差/训练误差:模型在训练集上的误差。
泛化误差:模型在新样本集上的误差。
过拟合:模型学习能力太好了,把训练样本的一些自身特点(噪声),当成潜在样本所具有的一般性质,这样会导致泛化性能下降。
欠拟合:模型对训练样本的一般性质尚未学好。
评估方法:留出法,交叉验证法(k折交叉验证),自助法。
性能指标:回归中常用均方误差MSE,绝对误差,均方根误差,R2决定系数(只用于线性回归)。分类中常用precision(精度),accuracy(查准率,准确率),recall(查全率,召回率),f1-score,p-r曲线,roc-auc。
模型介绍
感知机
感知机是二分类的线性分类模型。感知机对应于输入空间中将实例划分为正负两类的分类超平面,导入基于误分类的损失函数,利用随机梯度下降法对损失函数进行极小化,求得感知机模型。感知机是支持向量机和神经网络的基础。
原始形式:f(x) = sign(w.x+b)
对偶形式:f(x) = sign(
∑
j
=
1
N
\sum_{j=1}^{N}
∑j=1N
α
j
\alpha_{j}
αjy
j
_{j}
jx
j
_{j}
j.x+b)
对偶的基本思想:将w和b表示为x
i
_{i}
i 和 y
i
_{i}
i的线性组合的形式。
对偶的好处:训练实例仅以内积形式出现,可以先计算出Gram矩阵,大大增加训练速度。
k近邻
k近邻是一种基本的分类方法。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此k近邻不具有显式的学习过程。k近邻法实际上利用训练数据集对特征向量空间进行划分,并作为其分类的模型。
三要素:距离度量(欧氏距离,曼哈顿距离),k值选择(交叉验证),分类决策规则(多数表决)。
朴素贝叶斯法
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
P(Y=c k _{k} k|X=x) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) \frac{P(X=x|Y=c_{k})P(Y=c_{k})} {\sum_{k} P(X=x|Y=c_{k})P(Y=c_{k})} ∑kP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck) ,
y = arg max c k _{c_{k}} ckP(Y=c k _{k} k)P(X=x|Y=c k _{k} k),
其中P(X=x|Y=c k _{k} k)= ∏ j = 1 n \prod_{j=1}^{n} ∏j=1nP(X ( j ) ^{(j)} (j) = x ( j ) ^{(j)} (j)| Y = c k _{k} k) (特征条件独立假设)
参数估计分为极大似然估计和贝叶斯估计两种。用极大似然估计会出现所要估计的概率值为0的情况。贝叶斯估计可以解决这个问题。
决策树
决策树模型是一种描述对实例进行分类的树形结构。决策树学习包括三个步骤:特征选择,决策树生成,剪枝。
特征选择:选择当前信息增益/增益比最大的特征。
决策树生成:对当前结点递归的进行特征选择,并生成新的结点,直到所有特征信息增益/增益比均很少或没有特征可以选择为止。
所谓ID3,C4.5,不同之处在于ID3用信息增益选择特征;C4.5用信息增益比选择特征。
剪枝:根据损失函数大小递归的从叶结点向上回缩。设回缩前后的整体树为TB和TA,若TA的损失函数<=TB的损失函数,则进行剪枝。
CART算法
CART(分类回归树)假设决策树是二叉树,内部结点特征的取值为‘是’和‘否’,左分支是取值为‘是’的分支,右分支是取值为’否‘的分支。
回归树生成:通过平方误差最小化准则,递归地选择最优切分特征和最优切分点。
分类树生成:通过基尼指数最小化准则,递归地选择最优切分特征和最优切分点。
剪枝:略。
逻辑回归
逻辑回归是经典的分类方法。它在线性回归的基础上,将线性回归的输出值通过sigmoid激活函数映射到[0,1]区间,再选择阈值对输出概率值进行分类。
支持向量机
支持向量机是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,它的学习策略是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数(hinge)的最小化问题。它的算法是求解凸二次规划的最优化问题。支持向量机还包含核技巧,这令它成为实质上的非线性分类器。
原始问题:
min
w
,
b
_{w,b}
w,b 0.5*||w||
2
^{2}
2
s.t. y
i
_{i}
i(w.x
i
_{i}
i+b) >= 1, i=1,2…N
要求解原始问题,首先根据拉格朗日乘子法,构建拉格朗日函数L(w,b, α \alpha α) = 0.5*||w|| 2 ^{2} 2 + ∑ i = 1 N α i ( 1 − y i ( w . x i + b ) ) \sum_{i=1}^{N}\alpha_{i}(1-y_{i}(w.x_{i}+b)) ∑i=1Nαi(1−yi(w.xi+b))。
再根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:max
α
_{\alpha}
αmin
w
,
b
_{w,b}
w,b L(w,b,
α
\alpha
α) 。所以为了得到对偶问题的解,需要先求极小,再求极大。
(1)求极小,得 w=
∑
i
=
1
N
α
i
y
i
x
i
\sum_{i=1}^{N} \alpha_{i}y_{i}x_{i}
∑i=1Nαiyixi,
∑
i
=
1
N
α
i
y
i
\sum_{i=1}^{N} \alpha_{i}y_{i}
∑i=1Nαiyi=0。将w的新表达式带入L中。
(2)求极大,即最终的对偶问题:
max
α
_{\alpha}
α -0.5
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
.
x
j
)
+
∑
i
=
1
N
α
i
\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}.x_{j})+\sum_{i=1}^{N}\alpha_{i}
∑i=1N∑j=1Nαiαjyiyj(xi.xj)+∑i=1Nαi
s.t.
∑
i
=
1
N
α
i
y
i
\sum_{i=1}^{N}\alpha_{i}y_{i}
∑i=1Nαiyi = 0,
α
i
\alpha_{i}
αi>=0,i=1,2,…N.
由于这里是强对偶问题,所以原问题和对偶问题的解一致。
最后得对偶问题的解可以通过kkt条件求得。
为什么要引入对偶问题:(1)改变了时间复杂度,原始问题与w的维度相关,对偶问题与样本量相关。(2)方便引入核函数。
集成学习
集成学习通过构建并结合多个学习器来完成学习任务。根据个体学习器的生成方式,目前的集成学习方法大致分为两大类,即个体学习器间存在强依赖关系,必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系,可同时生产的并行化方法;前者的代表是boosting,后者的代表是bagging和随机森林。
adaboost
串行的学习多个基分类器。在基分类器分类后,更新训练集的权重,赋予被误分类的样本较高的权重,使得误分类样本在之后的分类器中影响更大。最后生成的最终分类器是多个基分类器的线性组合,系数由每个基分类器的准确率决定。
梯度提升树(gbdt)
提升指采用加法模型(基函数的线性组合)与前向分布算法,树指以决策树(二叉分类树,二叉回归树)为基函数。
分类问题:梯度提升树只是把adaboost中的基分类器固定为二叉分类树。
回归问题:串行的学习多个二叉回归树,每个回归树拟合当前模型的残差。最后将多个回归树的结果累加。
bagging
并行的学习多个基学习器。每个基学习器的样本是通过自助采样法得来的。bagging通常对分类问题采用简单投票法,对回归任务使用简单平均法。
随机森林
RF在以决策树为基函数构建bagging集成的基础上,进一步在决策树的训练过程中引入了了随机属性的选择。具体来说,rf对基决策树的每个结点,先从该结点的属性集合中随机选择一个子集,然后在这个子集中选择一个最优属性用于划分。
gbdt于xgboost的区别
xgboost是gbdt机器学习算法的工程上的实现。
(1)为了防止过拟合,gbdt采用剪枝方法,xgboost是决策树构建阶段就加入了正则项。
(2)gbdt只用了损失函数的一阶导数信息,xgboost对损失函数进行了二阶泰勒展开,同时使用1阶,2阶的导数信息。
(3)gbdt是用的cart作为基分类器,xgboost支持多种类型的基分类器。
(4)gbdt训练时使用全部数据,xgboost中有随机森林的抽样思想。
(5)xgboost自动处理缺失值。
神经网络
多层前馈型神经网络
前馈型神经网络一般由输入层,隐藏层,输出层构成。输入层和隐藏层由多个神经元构成。每层神经元与下层神经元完全互连,神经元之间不存在同层连接,也不存在跨层连接。神经网络的学习过程就是在不断地更新神经元之间的连接权和每个功能神经元的阈值。
一般采用误差逆传播算法(BP),它是基于链式法则得来的。
非监督学习
聚类
聚类是针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个类的数据分析问题。
相似度:闵可夫斯基距离,马氏距离(消除量纲),相关系数,余弦距离
类:本质是子集。如果一个聚类方法假定一个样本只属于一个类,那么该方法称为硬聚类;否则称为软聚类。
类与类的距离:最短距离(两个类中两个最近的样本的距离),最长距离,中心距离(类中心的距离),平均距离(所有距离的平均)
层次聚类
聚合聚类:开始将每个样本各自分到一个类,之后将相距最近的两类合并,建立新的类,重复此操作直到满足停止条件。
分裂聚类:开始将所有样本分到一个类,之后将已有类中相距最远的样本分到两个新的类,重复此操作直到满足停止条件。
k均值聚类
k均值聚类将样本集合划分成k个子集,构成k个类。每个样本到其所属类的中心的距离最小。
策略:通过损失函数最小化选取最优的划分。
算法:(1)数据预处理,归一化,离群点处理。(2)随机选取k个簇中心。 (3)将样本放入最近的簇中心。(4)重新计算簇中心。重复(3)(4)直到簇中心不再变化。
主成分分析
利用正交变换把线性相关的数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。之后再选择方差最大的几个主成分,一般规则是取使得累计方差贡献率达到规定的百分比以上。