机器学习笔记

基本概念

朴素贝叶斯分类

条件概率: P(AB)=P(AB)P(B)P(A|B) = \dfrac{P(A \cap B)}{P(B)} 贝叶斯定理 因为:P(AB)=P(AB)P(B)P(A|B) = \dfrac{P(A \cap B)}{P(B)} 所以: P(AB)=P(AB)P(B)P(A \cap B) = P(A|B)P(B) 所以:P(BA)=P(AB)P(A)=P(AB)P(B)P(A)P(B|A) = \dfrac{P(A \cap B)}{P(A)} = \dfrac{P(A|B)P(B)}{P(A)} P(BA)P(B|A) 是后验概率,P(A)P(A), P(B)P(B)是先验概率,P(AB)P(A|B)是条件概率 假定有一个很大的训练集,和一个结果集。训练集里面每一条记录,有很多特征,比如 性别:{男,女},学历:{博士,硕士,本科,大专} 结果类别为: {好股,差股} 可以直接计算得到概率P(男|好股) 根据贝叶斯定理,P(好股|男) = P(男|好股)*P(好股)/P(男) 现在,给定一条记录,如果性别是男,学历是博士,用来预测是好股还是差股,即分类。 相当于求P(好股|男)*P(好股|博士)的概率,再求P(坏股|男)*P(坏股|博士)的概率,哪个大则分到哪个类里面 优点:容易实现, 能反映真正的数据 缺点:性能不高

决策树

基尼不纯度

基尼不纯度(Gini Impurity)是决策树里常用的一种衡量划分优劣的指标IG(p)=Σi=1npi(1pi)I_G(p) = \Sigma_{i=1}^n p_i(1 - p_i)#### 熵 熵,表示某个随机变量的不确定性 熵越大,不确定性越大,类别越多,如果只有一个类别,则熵为0 条件熵,表示在某个条件下,某个随机变量的不确定性 信息增益 = 熵 - 条件熵 条件熵越小,说明这个条件对于不确定性贡献越小,那信息增益越大,说明这个条件分类越准确 信息增益值是相对于训练数据集而言的,如果总熵太大,则信息增益也会很大,那就没有可比性。所以要用信息增益比: gR(D,A)=g(D,A)H(D)g_R(D, A) = \dfrac{g(D, A)}{H(D)} 其中,D是数据集,A是特征,H(D)是总熵,g(D, A)是信息增益

ID3

在决策树各结点上应用信息增益选择的规则,取信息增益最大的那个特征(贪心)。相当于用极大似然法选择概率模型 只能用于分类,不能处理连续型数值,所以不能用于回归。不关心是否最优,很贪心。 假定有一个很大的训练集,和一个结果集。训练集里面每一条记录,有很多特征,比如 投票数:{0100, 1001000, 1000以上}, 分别表示为{low, middle, high} 字数:{020, 2050, 50~200, 200以上},分别表示为{less, normal, many, lots} 结果类别为: {好答案,差答案}, 分别表示为{good, worse} 假设训练集总数为120条, 好答案为60条,差答案为60条 好答案的概率: P(good)=goodtotal=60120=0.5P(good) = \dfrac{|good|}{|total|} = \dfrac{60}{120} = 0.5 差答案的概率: P(worse)=worsetotal=60120=0.5P(worse) = \dfrac{|worse|}{|total|} = \dfrac{60}{120} = 0.5 总熵 Entropy=P(good)log2(P(good))P(worse)log2(P(worse))Entropy = -P(good)log2(P(good)) - P(worse)log2(P(worse)) =0.5log2(0.5)0.5log2(0.5)=0.5+0.5=1= -0.5 * log2(0.5) - 0.5 * log2(0.5) = 0.5 + 0.5 = 1 假设好答案中投票数三种类型的记录的条数为: low: 10 middle: 20 high: 30 差答案中投票数三种类型的记录的条数为: low: 30 middle: 20 high: 10 则: P(low)=lowtotal=(10+30)/100=0.4P(low) = \dfrac{|low|}{|total|} = (10 + 30) / 100 = 0.4 P(lowInGood)=lowInGoodlow=10/40=0.25P(lowInGood) = \dfrac{|lowInGood|}{|low|} = 10 / 40 = 0.25 P(lowInWorse)=lowInWorselow=30/40=0.75P(lowInWorse) = \dfrac{|lowInWorse|}{|low|} = 30 / 40 = 0.75 P(middle)=middletotal=(20+20)/100=0.4P(middle) = \dfrac{|middle|}{|total|} = (20 + 20) / 100 = 0.4 P(middleInGood)=middleInGoodmiddle=20/40=0.5P(middleInGood) = \dfrac{|middleInGood|}{|middle|} = 20 / 40 = 0.5 P(middleInWorse)=middleInWorsemiddle=20/40=0.5P(middleInWorse) = \dfrac{|middleInWorse|}{|middle|} = 20 / 40 = 0.5 P(high)=hightotal=(30+10)/100=0.4P(high) = \dfrac{|high|}{|total|} = (30 + 10) / 100 = 0.4 那么条件熵为: Entropy(vote)=[P(good)log2(P(good)P(worse)log2(P(worse))Entropy(vote) = [-P(good)log2(P(good) - P(worse)log2(P(worse))

C4.5

ID3是用信息增益最大的特征,C4.5是用信息增益比最大的特征 C4.5 可以处理连续型的变量,但是还是只能用于分类

CART

classification and regression tree 采用基尼指数来判断划分的好坏 再剪枝: 从根开始遍历,如果2个叶节点合并之后,减少的熵小于某个给定的值,说明这2个叶节点分开来作用不大,合并这2个叶节点

logistic回归

使用最大似然估计,对数似然后,推导出来的损失函数其实就是softmax

梯度下降

导数

当函数定义域和取值都在实数域中的时候,导数可以表示函数曲线上的切线斜率。 除了切线的斜率,导数还表示函数在该点的变化率 导数的物理意义表示函数在这一点的 (瞬时) 变化率 S=vtS = vt a=ΔvΔta = \dfrac{\Delta v}{\Delta t} limt0ΔvΔt=limt0f(v0+Δv)f(v0)Δt\lim_{t\to0}\dfrac{\Delta v}{\Delta t} = \lim_{t\to0}\dfrac{f(v0 + \Delta v) - f(v0)}{\Delta t}

偏导数

其实就是多维的情况下,对某一维进行求导,这个好理解

方向导数

z=f(x,y)z = f(x, y) 在一点 P0(x0,y0)P_0(x_0, y_0)的一个邻域内有定义,又设 l\vec {l} 是给定的一个方向,其方向余弦为cosα,cosβ\cos\alpha, \cos\beta,若极限 limt0f(x0+tcosα,y0+tcosβ)f(x0,y0)t\lim_{t\to0}\dfrac{f(x_0 + t\cos\alpha, y_0 + t\cos\beta) - f(x_0, y_0)}{t} 存在,则称此极限值为函数z=f(x,y)z = f(x, y)P0P_0点沿方向 l\vec {l} 的方向导数,其中点t是点P0(x0,y0)P_0(x_0, y_0)到点Pt(x0+tcosα,y0+tcosβ)P_t(x_0 + t\cos\alpha, y_0 + t\cos\beta)的距离 其实,偏导数是方向导数是特殊形式,是方向为坐标轴方向的方向导数,而导数为偏导数的特殊形式,是一元的偏导数。

梯度

梯度是一个有方向的向量。 梯度的方向呢是使得方向导数达到最大值的方向,它的模就是方向导数的最大值 而把所有的偏导数写成一个向量形式,得到的向量(f'(x),f'(y),f'(z))就是梯度。梯度意味着方向导数变化最大 | 概念|物理意义 | |-------|------| | 导数 | 函数在该点的瞬时变化率| | 偏导数 | 函数在坐标轴方向上的变化率| | 方向导数 | 函数在某点沿某个特定方向的变化率| | 梯度 | 函数在该点沿所有方向变化率最大的那个方向|

支持向量机

Apriori

   

图示

特征处理

NMF

非负矩阵分解,V为原矩阵,W为权重矩阵,H为特征矩阵, VWHV \approx WH

PCA

协同过滤

机器学习的模型的种类

判别模型与生成模型

常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等

参数模型与非参数模型

分类问题/回归问题/标注问题

经验风险最小化与结构风险最小化

准确率/精确率/召回率

各种范数

绝对值其实便是一维向量空间中实数或复数的范数范数的一般化定义xp=(Σi=1nxip)1/p\vert\vert x \vert\vert_p = (\Sigma_{i=1}^n \vert x_i \vert^p)^{1/p}

L0范数

L1范数

即曼哈顿距离

L2范数

欧几里得距离,

EM算法

Expectation Maximization

线性回归

Lasso回归和Ridge回归都是用于解决过拟合问题的。回归问题解决过拟合问题有两种方法

L1(Lasso回归)

损失函数:J(θ)=12mΣi=1m(hθ(xi)yi)2+λΣj=1nθjJ(\theta) = \dfrac{1}{2m}\Sigma_{i=1}^m(h_\theta(x^i) - y^i)^2 + \lambda\Sigma_{j=1}^n | \theta_j |L1范数惩罚项

L2(岭回归)

损失函数:J(θ)=12mΣi=1m(hθ(xi)yi)2+λΣj=1nθj2J(\theta) = \dfrac{1}{2m}\Sigma_{i=1}^m(h_\theta(x^i) - y^i)^2 + \lambda\Sigma_{j=1}^n \theta_j^2L2范数惩罚项

Elastic Net(弹性网络)

J(θ)=12mΣi=1m(hθ(xi)yi)2+λρΣj=1nθj+λ(1ρ)2Σj=1nθj2J(\theta) = \dfrac{1}{2m}\Sigma_{i=1}^m(h_\theta(x^i) - y^i)^2 + \lambda\rho\Sigma_{j=1}^n |\theta_j| + \dfrac{\lambda(1 - \rho)}{2}\Sigma_{j=1}^n \theta_j^2组合了L1和L2惩罚项

广义线性模型(GLM, General linear model)

一个回归模型输出的是连续值,加上一个连接函数后,可以产生离散值或连续值,这就是广义线性模型。 伯努利分布(0-1分布), 根据GLM模型,可推导出sigmoid函数,用于二分类问题。 多项分布推导出softmax函数,用于多分类问题。

集成学习

Bagging

多个分类器集成

boosting

Boosting 树以迭代方式建立在弱学习器身上。在每次迭代中,都会添加一个新的学习器,而所有现有的学习器都保持不变。所有的学习器根据他们的表现(例如,准确性)进行加权,并且在加入弱学习器之后,对数据进行重新加权:错误分类的样例获得更多的权重,而正确分类的样例减少权重。因此,未来的弱学习器会更多地关注之前的弱学习器错误分类的样例 顺序训练,通过减少偏差来降低误差

stacking

首先将训练集分为两个子集:第一个子集用于训练第一层的学习器接下来,第一层学习器被用于对第二子集进行预测(元特征),并且这些预测被用于在第二层训练另一个模型(以获得不同学习器的权重)

凸优化

改进的迭代尺度法

improved iterative scaling , IIS算法

牛顿法和拟牛顿法

牛顿法和拟牛顿法一般收敛比较快,梯度下降法收敛比较慢

梯度下降法

聚类

DBSCAN

基于密度的聚类算法,不用指定聚多少个类