南昌专业网站优化推广,企业管理咨询公司排行,雄县阿里巴巴网站建设,wordpress 前台密码统计学习方法总结 阅读目录(Content)0. 相关知识点0x1: 监督学习1. 模型假设空间2. 生成模型与判别模型的联系与区别 3. 学习策略4. 分类问题与回归问题5. 利用模型进行预测和分析0x2#xff1a;模型评估与模型选择1. 训练误差与测试误差2. 过拟合与模型选择0x3#xff1a;正… 统计学习方法总结 阅读目录(Content)0. 相关知识点0x1: 监督学习1. 模型假设空间2. 生成模型与判别模型的联系与区别 3. 学习策略4. 分类问题与回归问题5. 利用模型进行预测和分析0x2模型评估与模型选择1. 训练误差与测试误差2. 过拟合与模型选择0x3正则化与交叉验证 - 缓解过拟合的发生1. 正则化 - 结构风险最小化策略的一种具体实现2. 交叉验证0x4学习算法0x5监督学习中的典型问题场景1. 回归问题2. 分类问题3. 标注问题1. 各类算法横向对比0x1: 监督学习算法适用的场景1. 分类2. 标注3. 回归0x2: 模型特点3. 感知机0x1: 适用场景0x2: 模型特点0x3: 学习策略 0x4: 学习算法 4. K近邻法0x1适用场景1. 多分类问题场景2. 回归问题的场景0x2模型特点1. K值选择2. 距离度量3. 分类决策规则0x3学习策略0x4学习算法1. KD树kd tree2. Ball Tree搜索5. 朴素贝叶斯法0x1适用场景 0x2: 模型特点0x3: 学习策略 1. 模型学习过程2. 根据模型进行判断预测0x4学习算法6. 决策树0x1适用场景0x2模型特点0x3学习策略 0x4学习算法 7. 逻辑斯蒂回归与最大熵模型0x1适用场景0x2模型特点0x3学习策略 0x4学习算法 1. 损失函数2. 优化算法7. 支持向量机0x1适用场景 0x2: 模型特点0x3: 学习策略 0x4学习算法8. 提升方法0x1适用场景 0x2: 模型特点0x3: 学习策略 0x4学习算法9. EM算法0x1适用场景 0x2: 模型特点0x3: 学习策略 0x4学习算法10. HMM隐马尔可夫模型0x1适用场景0x2: 模型特点 0x3: 学习策略0x4学习算法回到顶部(go to top)0. 相关知识点 统计学习statistical learning是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习的对象是数据data它从数据出发提取数据的特征抽象出数据的模型发现数据中的知识又回到对数据的分析与预测中去 统计学习关于数据的基本假设是同类数据具有一定的统计规律性例如概率分布这是统计学习的前提。对数据的预测与分析是通过构建概率统计模型来实现的统计学习总的目标就是考虑学习什么样的模型和如何学习模型以使模型能够对数据进行准确的预测与分析同时也要尽可能地提高学习效率 统计学习的方法是基于数据构建统计模型从而对数据进行预测与分析统计学习由下列几种学习方法组成 1. 监督学习supervised learning
2. 非监督学习unsupervised learning
3. 半监督学习semi-supervised learning
4. 强化学习reinforcement learning 0x1: 监督学习 在监督学习中统计学习的方法可以概括如下 1. 从给定的、有限的、用于学习的训练数据training data集合出发训练集是人工给定的、已知label的数据集假设数据是独立同分布产生的
2. 并且假设要学习的模型属于某个函数的集合称为假设空间 hypothesis space
3. 应用某个评价标准evaluation criterion从假设空间中选取一个最优的模型使他对已知训练数据及未知测试数据test data在给定的评价准则下有最优的预测
4. 最优模型的选取由算法实现 这样统计学习的方法包括模型的假设空间、模型选择的准则、以及模型学习的算法称为统计学习方法的三要素简称模型model、策略strategy、算法algorithm 实现统计学习的方法的步骤如下 1. 得到一个有限的训练数据集合包括样本特征的抽取
2. 确定包含所有可能的模型的假设空间即学习模型的集合对应判别模型和生成模型的训练中就是建立目标模型的数学公式描述
3. 确定模型选择的准则即学习的策略
4. 实现求解最优模型的算法即学习的算法这块常常是学习策略的具体数学化表示算法作为策略实现的手段
5. 通过学习方法选择最优模型这部分又可以分为直接求出解析最优解、和逐步迭代求每轮的局部最优解从而逼近全局最优解例如SGD
6. 利用学习的最优模型对新数据进行预测或分析 监督学习supervised learning的任务是学习一个模型包括生成模型和判别模型使模型能够对任意给定的输入对其相应的输出做出一个好的预测 1. 模型假设空间 监督学习的目的在于学习一个由输入到输出的映射这一映射由模型来表示。模型属于由输入空间到输出空间的映射的集合这个集合就是假设空间hypothesis space。监督学习的模型可以是概率模型或者非概率模型决策函数 概率模型在学习的过程中监督学习假设输入与输出的随机变量X和Y满足联合概率分布这是监督学习的基本假设即数据本身的规则必须确实存在建模训练才能有效 决策函数decision function由 Y fX表示 2. 生成模型与判别模型的联系与区别 生成的联合概率和决策函数又可以称为生成方法generative approach和判别方法discriminative approach训练得到的模型分别称为生成模型generative model和判别模型discriminative model 生成方法由数据学习学习联合概率分布然后求出条件概率分布作为预测的模型即生成模型。这样的方法之所以称为生成方法是因为模型表示了给定输入 X 产生输出 Y 的生成关系典型的生成模型有朴素贝叶斯法和隐马尔科夫模型 向生成方法输入X生成模型的条件概率会给出整个概率分布上所有类别Y的概率我们根据argmax取概率最大的那一类作为预测结果 判别方法由数据直接学习决策函数或者条件概率分布作为预测的模型即判别模型。判别模型关心的对给定的输入X应该预测什么样的输出Y。典型的判别模型包括K近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、条件随机场等 向判别方法输入X判别方法会得出一个Y然后拿这个Y与一个阈值比较根据比较的大小结果得到属于哪个类 生成算法尝试去找到底这个数据是怎么生成的产生的然后再对一个信号进行分类。基于你的生成假设那么那个类别最有可能产生这个信号这个信号就属于那个类别。判别模型不关心数据是怎么生成的它只关心信号之间的差别然后用差别来简单对给定的一个信号进行分类 直接学习条件概率分布 PY | X或决策函数 Y fX的方法为判别方法对应的模型是判别模型。感知机、k近邻、决策树、逻辑斯蒂回归、最大熵模型、支持向量机、提升方法、条件随机场是判别方法 首先学习联合概率分布 PXY从而求得条件概率分布 PY | X的方法是生成方法对应的模型是生成模型。朴素贝叶斯法、隐马尔科夫模型是生成方法。 下图给出了部分模型之间的关系 在监督学习中生成方法和判别方法各有优缺点适合于不同条件下的学习问题 1. 生成方法的特点1) 生成方法可以还原出联合概率分布PXY而判别方法则不能2) 生成方法的学习收敛速度更快即当样本容量增加时学到的模型可以更快地收敛于真实模型3) 当存在隐变量时生成方法仍可以学习此时判别方法则不能用4) 生成模型的模型数学定义更困难例如常用高斯模型需要假设样本数据特征满足高斯分布但是我们知道实际问题中样本的特征分布规律是十分复杂有时候难以用一个直观的数学表达式进行描述5) 生成方法学习联合概率密度分布P(X,Y)所以就可以从统计的角度表示数据的分布情况能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。2. 判别方法的特点 1) 判别方法直接学习的是条件概率PY|X或决策函数fX直接面对越策往往学习的准确率更高 2) 由于直接学习PY|X或fX可以对数据进行各种程度上的抽象例如DNN多层抽象、SVM升维扭曲、定义特征并使用特征因此可以简化学习问题 3) 判别模型由于不存在模型数序定义的问题因此适合于复杂问题的场景当样本中的规律分布不是十分明显满足某个已知概率分布的时候可以尝试用判别模型训练分类器 4) 判别方法直接学习的是决策函数Yf(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面反映的是异类数据之间的差异 从生成模型可以推导出判别模型但是从判别模型无法反向推导。换句话训练样本满足生成模型的概率分布是一个强假设这个强假设可以推导出一个弱假设例如一个训练集满足高斯判别模型生成模型则这个训练集一定能用逻辑斯蒂回归判别模型进行分类反之则不行
例如也是两类w1和w2那么我们通过生成模型求得了P(w1|X)和P(w2|X)那么实际上判别函数就可以表示为Y P(w1|X)/P(w2|X)如果Y大于1或者某个阈值那么X就属于类w1如果小于阈值就属于类w2
本质上分类器的设计就是在给定训练数据的基础上估计其概率模型P(Y|X)。如果可以估计出来那么就可以分类了。但是一般来说概率模型是比较难估计的实际问题中样本背后的概率分布数学模型数学建模往往是十分复杂的我们很难或者需要花费很大精力来进行建模所以就有了不依赖概率模型直接设计分类器呢分类器就是一个决策函数或决策面它能够从要解决的问题和训练样本出发直接求出判别函数就不用估计概率模型了
例如支持向量机我已经知道它的决策函数分类面是线性的了也就是可以表示成Yf(X)WXb的形式那么我们通过训练样本来学习得到W和b的值就可以得到Yf(X)了
还有一种更直接的分类方法它不用事先设计分类器而是只确定分类原则根据已知样本训练样本直接对未知样本进行分类。包括近邻法它不会在进行具体的预测之前求出概率模型P(Y|X)或者决策函数Yf(X)而是在真正预测的时候将X与训练数据的各类的Xi比较和哪些比较相似就判断它X也属于Xi对应的类。
举一个由高斯生成模型推导逻辑回归判别模型的例子
这里我们来讨论一个简单的例子高斯生成模型也即每个类别的数据分布都可以由高斯模型进行建模 类别概率为伯努利分布即二类概率分布在这个问题中所涉及到的未知参数包括ϕ,Σ,μ0,μ1参数的求解可以通过最大化联合概率分布求得即 最终求得的各个参数计算公式为 我们以图示来说明其中圆圈和叉号分别表示两类数据分别使用高斯模型对两类数据分布进行建模由于两个高斯模型的协方差参数是一致的所以这两个高斯分布的形状是一样的只是中心位置不一致
图示中的直线表示的是高斯模型生成的决策面表示p(y1|x)p(y0|x)0.5表示属于两个类别的概率大小是一样的否则的话根据数据属于两个类别的概率大小阈值决定数据所属于的类别这就是生成模型的预测方式 接下来我们继续推导值得注意的是高斯生成模型中p(y1|x;ϕ,μ0,μ1,Σ)是可以表示为输入变量 x 的函数的即 而这个形式恰好是逻辑回归的基本模型这说明我们在使用高斯模型对每一类别的特征数据进行建模时其生成式p(y|x)是符合逻辑回归模型的但是如果满足有p(y|x)符合逻辑回归模型并不能一定得到数据特征分布是高斯分布这个结论所以反向推导是不成立的
实际上当类别数据特征分布满足如泊松分布Poisson Distribution时也可以得到p(y|x)是满足逻辑回归模型的同样反向推导不成立 总的说来GDA高斯生成算法对数据分布进行了一定的假设假设数据分布是高斯分布的当数据确实符合或近似符合高斯分布时这种计算方法是比较高效准确的但是当数据并不符合高斯分布时这种计算方法的效果并不是很好而逻辑回归并不存在这样的假设所以当数据不满足高斯分布时逻辑回归分类的效果要更好一些
这也就是说判别模型更适合对样本数据概率分布未知难以建模的情况判别模型能自动进行特征抽象和分类 3. 学习策略
有了模型的假设空间统计学习接着要考虑的是按照什么样的准则学习或选择最优的模型统计学习的目标在于从假设空间中选取最优模型
损失函数和风险系数 - 期望风险体现当前选择模型对待推导规律的拟合程度
监督学习问题是在假设空间中选取模型作为决策函数对于给定的输入X由给出相应的输出Y这个输出的预测值与真实值Y可能不一致因此统计学习用一个损失函数loss function或代价函数cost function来度量预测错误的程度损失函数是和Y的非负实值函数记作
统计学习常用的损失函数有以下几种
10-1损失函数0-1 loss function
2平方损失函数quadratic loss function
3绝对值损失函数absolute loss function
4对数损失函数logarithmic loss function或对数似然损失函数loglikelihood loss function
不管损失函数的形式如何但本质来说它们的目的都是一样的即损失函数值越小模型就越好。由于模型的输入、输出XY是随机变量遵循联合分布PXY所以损失函数的期望是 这是理论上模型关于联合分布PXY的平均意义下的损失称为风险函数risk function或期望损失expected loss
理论上来说统计学习的目标就是选择期望风险最小的模型但是联合分布PXY是未知的事实上联合分布也正是我们需要通过机器学习去求得的结果某种程度上来说联合分布就是规律本身。因此期望风险就只能是一个理论值不具有实际工程化价值我们需要引入经验风险的概念
经验风险 - 反映当前选择的模型对样本的拟合程度
给定一个训练数据集模型关于训练数据集的平均损失称为经验风险empirical risk或经验损失empirical loss期望风险是模型关于联合分布的期望损失经验风险是模型关于训练样本集的平均损失。根据大数定律当样本量趋于无穷时经验风险无限趋近于期望风险所以我们可以近似地用经验风险估计期望风险。但是在实际中样本数目往往是有限的甚至较少的所以直接用经验风险估计期望风险就会遇到不准确的问题例如过拟合这对需要对经验风险进行一定的矫正这就引出接下来要讨论的2个策略经验风险最小化和结构风险最小化
经验风险最小化
在假设空间、损失函数以及训练数据集确定的情况下经验风险函数可以唯一确定。经验风险最小化empirical risk minimization ERM的策略认为经验风险最小的模型就是最优的模型根据这一策略按照经验风险最小化求最优模型就是求解最优化问题 。当样本量足够大时经验风险最小化能保证有很好的学习效果例如极大似然估计maximum likelihood estimation就是经验风险最小化的一个例子
当时当样本容量很小时经验风险最小化学习的效果就会产生误差甚至出现“过拟合over-fitting”的现象
结构风险最小化
结构风险最小化structural risk minimization SRM就是为了防止过拟合而提出的策略。结构风险最小化等价于正则化regularization。结构风险在经验风险之上加上了表示模型复杂度的正则化项regularizer或惩罚项penalty term式中为模型的复杂度是定义在假设空间模型 f 越复杂复杂度就越大。复杂度表示了对复杂模型的惩罚。是系数用以权衡经验风险和模型复杂度
模型复杂度是一个泛函 1. 在生成模型中它往往是先验概率分布
2. 在判别模型中它往往和模型原子单元例如决策树结点或神经元 结构风险最小化的策略认为结构风险最小的模型就是最优的模型所以求最优模型就是求解最优化问题这样监督学习问题就变成了经验风险或结构风险函数的最优化问题。
不同算法模型中使用的损失函数在思想的一致
1判别模型
学习策略需要通过损失函数来数学化表示。在二分类的监督学习中支持向量机、逻辑斯蒂回归、最大熵模型、提升方法各自使用的损失函数为 1. 支持向量机合页损失函数
2. 逻辑斯蒂回归逻辑斯蒂损失函数
3. 最大熵模型指数损失函数
4. 提升方法和基函数有关 这3种损失函数都是0-1损失函数的上界具有相似的形状如下图所示 所以可以认为支持向量机、逻辑斯蒂回归、最大熵模型、提升方法使用不同的代理损失函数surrogate loss function表示分类的损失定义经验风险或结构风险函数实现二类分类学习任务。学习的策略是优化以下结构风险函数 第一项为经验风险经验损失第二项为正则化项为损失函数为模型的复杂项为系数。
支持向量机用 L2 范数表示模型的复杂度。原始的逻辑斯蒂回归与最大熵模型有没正则化项可以给它们加上 L2 范数正则化项。提升方法没有显式的正则化项通常通过早停止early stopping的方法达到正则化的效果。
2概率模型
概率模型的学习可以形式化为极大似然估计或贝叶斯的极大后验概率估计。这时学习的策略是极小化对数似然函数或极小化正则化的对数似然损失。对数似然损失可以写成
极大后验概率估计时正则化项是先验概率的负对数 4. 分类问题与回归问题
监督学习中根据输入变量和输出变量的数据类型对预测任务分为以下几类 1. 回归问题输入变量与输出变量均为连续变量的预测问题
2. 分类问题输出变量为有限个离散变量的预测问题
3. 标注问题输入变量与输出变量均为变量序列的预测问题 但是这里需要补充一句分类问题和回归问题的分解并不是那么绝对 分类模型和回归模型本质一样分类模型可将回归模型的输出离散化回归模型也可将分类模型的输出连续化
下面举例说明它们之间的转换关系 1. Logistic Regression 和 Linear Regression1) Linear Regression: 输出一个标量 wxb这个值是连续值所以可以用来处理回归问题2) Logistic Regression把上面的 wxb 通过 sigmoid 函数映射到(0,1)上并划分一个阈值大于阈值的分为一类小于等于分为另一类可以用来处理二分类问题3) 更进一步: 对于N分类问题则是先得到N组w值不同的 wxb然后归一化比如用 softmax 函数最后变成N个类上的概率根据argmax取概率最大的那一类为最后的预测结果可以处理多分类问题 2. Support Vector Regression 和 Support Vector Machine: SVR: 1) SVR输出 wxb即某个样本点到分类面的距离是连续值所以是回归模型 2) SVM: 把这个距离用 sign(·) 函数进行离散化处理距离为正(在超平面一侧)的样本点是一类为负的是另一类所以是分类模型
3. Naive Bayes 用于分类 和 回归: 1) 用于分类: y是离散的类别所以得到离散的 p(y|x)给定 x 输出每个类上的概率 2) 用于回归: 对上面离散的 p(y|x)求期望 ΣyP(y|x)即得到概率密度就得到连续值
4. 前馈神经网络(如 CNN 系列) 用于 分类 和 回归: 1) 用于回归: 最后一层有m个神经元每个神经元输出一个标量m个神经元的输出可以看做向量 v然后全部连到一个输出神经元上则这个神经元输出 wvb是一个连续值可以处理回归问题跟上面 Linear Regression 思想一样 2) 用于N分类: 现在这m个神经元最后连接到 N 个神经元就有 N 组w值不同的 wvb同理可以归一化比如用 softmax 变成 N个类上的概率然后取概率最大的那一类作为N分类的预测结果 3) 用于多标签: 如果不用 softmax而是每个 wxb 用一个 sigmoid就变成多标签问题跟多分类的区别在于样本可以被打上多个标签
5. 循环神经网络(如 RNN 系列) 用于分类 和 回归: 1) 用于回归 和 分类 跟 CNN 类似输出层的值 y wvb可做分类可做回归只不过区别在于RNN 的输出跟时间有关即输出的是 {y(t), y(t1),…}序列 回归问题和分类问题的本质区别在于它们采用的策略不同 1. 回归问题的策略是模型的拟合函数和样本点的距离要尽可能近优化的方向也是朝着不断靠近的方向优化的
2. 分类问题的策略是模型的分界面本质也是一个函数和样本点的距离尽可能远优化的方向是朝着不断远离的方向优化的 5. 利用模型进行预测和分析
在学习过程中学习系统利用给定的训练数据集通过学习或训练得到一个模型表示为条件概率分布或决策函数条件概率分布或决策函数描述输入与输出随机变量之间的映射关系
在预测过程中预测系统对于给定的测试样本集中的输入由模型或给出相应的输出 0x2模型评估与模型选择 1. 训练误差与测试误差
统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。训练误差的大小对判定给定的问题是不是一个容易学习的问题是有意义的它表明了模型对训练数据的拟合程度但本质上并不重要。测试误差反映了学习方法对未知的测试数据集的预测能力是学习中的重要概念通常将学习方法对未知数据的预测能力称为泛化能力generalization ability 2. 过拟合与模型选择
当假设空间含有不同复杂度例如不同的参数个数的模型时例如深度深度网络的神经元个数、或决策树的结点个数就要面临模型选择model selection的问题。我们希望选择或学习一个合适的模型如果在假设空间中存在“真”模型那么所选择的模型应该逼近真模型。如果一味追求提高对训练数据的预测能力所选模型的复杂度则往往会比真模型更高这种现象称为过拟合over-fitting。过拟合是指学习时选择的模型所包含的参数过多以致于出现这一模型对已知数据预测得很好但对未知数据预测得很差的现象
下图描述了训练误差和预测误差与模型的复杂度之间的关系。当模型的复杂度增大时训练误差会逐渐减小并趋向于0而测试误差会先减小达到最小值后又增大。当选择的模型复杂度过大时过拟合现象就会发生。 这样在学习时就要防止过拟合进行最优的模型选择即选择复杂度适当的模型以达到使测试误差最小的学习目的。达到这个目的需要借助一些数学工具和工程化方法 0x3正则化与交叉验证 - 缓解过拟合的发生 1. 正则化 - 结构风险最小化策略的一种具体实现
模型选择的典型方法是正则化regularization正则化是结构风险最小化策略的实现是在经验风险上加上一个正则化项regularizer或惩罚项penalty term。正则化项一般是模型复杂度的单调递增函数模型越复杂正则化值就越大。正则化是对经验风险函数的一种扩展一般具有如下形式 第一项是经验风险第二项是正则化项为调整两者之间关系的系数。
我们在学习具体算法的时候会频繁看到这个函数形式或其变体正则化是机器学习算法常用甚至标配的一种损失函数形式。值得注意的是上面的公式是正则化项的泛表达式根据损失函数的不同正则化项可以取不同的形式例如回归问题中损失函数是平方损失正则化项可以是参数向量的L2范数
正则化项符合奥科姆剃刀Occam;s razor原理 在所有可选的模型中能够很好解释已知数据并且十分简单才是最好的模型也就是应该选择的模型
1. 从贝叶斯估计的角度来看正则化项对应模型的先验概率可以假设复杂的模型有较大的先验概率简单的模型有较小的先验概率
2. 从线性分类器的角度来看正则化项对应模型的参数个数可以假设复杂的模型有较多的参数个数简单的模型有较少的参数个数 注意正则化不产生新的模型它只是帮助我们在模型空间中选择一个尽量好的模型 2. 交叉验证
另一种常用的模型选择方法是交叉验证across validation在很多实际应用中我们的训练数据往往不够充分为了选择好的模型可以采用交叉验证方法它的基本思想是重复地使用数据把给定的数据进行切分将切分的数据集组合为训练集与测试集在此基础上反复地进行训练、测试以及模型选择
简单交叉验证 1. 首先将数据分为两部分一部分作为训练集70%另一部分作为测试集30%
2. 然后用训练集在各种条件下例如不同的参数个数训练模型从而得到不同的模型
3. 在测试集上评价各个模型的测试误差选出测试误差最小的模型 S折交叉验证S-fold cross validation 1. 首先随机地将数据切分为S个互不相交的大小相同的子集
2. 然后利用 S-1 个子集的数据训练模型利用余下的 1 个子集测试模型
3. 将这一过程对可能的 S 种选择重复进行即进行S次
4. 最后选出 S 次测评中平均测试误差最小的模型 留一交叉验证
S 折交叉验证的特征情况是 S NN是给定数据集的容量称为留一交叉验证leaver-one-out cross validation往往在数据缺乏的情况下使用 0x4学习算法
统计学习的问题有了具体的形式之后就变成了纯数学上的最优化问题。
有时最优化问题比较简单解析解存在最优解可以由公式简单计算。
但在多数情况下最优化问题没有解析解需要用数值计算或启发式的方法求解。
朴素贝叶斯法与隐马尔科夫模型的监督学习最优解即极大似然估计值可以由概率计算公式直接计算
感知机、逻辑斯蒂回归与最大熵模型、条件随机场的学习无法直接求得解析解需要用到梯度下降法、拟牛顿法进行迭代优化。这些都是一般的无约束最优化问题的解法
支持向量机学习可以解凸二次规划的对偶问题。有序列最小最优化算法等方法
决策树学习是基于启发式算法的典型例子可以认为特征选择、生成、剪枝是启发式地进行正则化的极大似然估计
提升方法利用学习的模型是加法模型、损失函数是指数损失函数的特点启发式地从前向后逐步学习模型以达到逼近优化目标函数的目的
EM算法是一种迭代的求解含隐变量模型参数的方法它的收敛性可以保证但是不能保证收敛到全局最优 0x5监督学习中的典型问题场景 1. 回归问题
回归regression是监督学习中的一个很重要的问题。回归用于预测输入变量自变量和输出变量隐变量之间的关系特别是当输入变量发生变化时输出变量的值随之发生的变化。回归模型正是表示从输入变量到输出变量之间映射的函数。 回归问题的学习等价于函数拟合选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据 回归问题按照输入变量的个数分为一元回归和多元回归按照输入变量和输出变量之间关系的类型即模型的类型分为线性回归和非线性回归
回归问题最常用的损失函数是平方损失函数也可以用其他损失函数在此情况下回归问题的求解就是最小二乘法least squares求解 2. 分类问题
分类问题是监督学习的一个核心问题在监督学习中当输出变量Y取有限个离散值时预测问题便成了分类问题这时输入变量X可以是离散的也可以是连续的。监督学习从数据中学习一个分类模型或分类决策函数分类器 classifier 3. 标注问题
标注tagging也是一个监督学习问题可以认为标注问题是分类问题的一种推广同时标注问题又是更复杂的结构预测structure prediction问题的简单形式。标注问题的输入是一个观测序列输出是一个标记序列或状态序列。
标注问题的目标在于学习一个模型使它能够对观测序列给出标记序列作为预测需要注意的是可能的标记个数是有限的但其组合所成的标记序列的个数是依序列长度呈指数级增长的。
所以可以认为分类问题是标注问题的特殊情况分类问题中可能的预测结果是二类或多类而标注问题中可能的预测结果是所有的标记序列其数目是指数级的。
Relevant Link: http://open.163.com/movie/2008/1/A/R/M6SGF6VB4_M6SGHMFAR.html
http://blog.csdn.net/u014791046/article/details/51762888
http://blog.csdn.net/daijiguo/article/details/52218207
http://www.jdon.com/bigdata/a-tour-of-machine-learning-algorithms.html
https://www.zhihu.com/question/38677354?sortcreated
https://www.zhihu.com/question/21329754
http://blog.csdn.net/zouxy09/article/details/8195017
http://blog.csdn.net/Fishmemory/article/details/51711114
https://www.zhihu.com/question/22374366/answer/21224060
https://segmentfault.com/q/1010000000687677?_ea963786
http://blog.csdn.net/zouxy09/article/details/8195017
http://blog.csdn.net/wolenski/article/details/7985426
http://www.jianshu.com/p/d195b887a32e
http://www.cnblogs.com/fanyabo/p/4067295.html 回到顶部(go to top)
1. 各类算法横向对比
这章节对所有算法的适用场景模型特点学习策略等进行框架性的横向对比之后的章节再深入到细节中进行细致考量 0x1: 监督学习算法适用的场景
监督学习可以认为是学习一个模型使它能对给定的输入预测相应的输出。监督学习包括分类、标注、回归 1. 分类
分类问题是从实例的特征向量到类标记的预测问题。常见的分类方法有 1. 感知机1针对二分类的可以将其扩展到多类分类2具有模型直观、方法简单、实现容易等特点
2. k近邻法1常用语多分类问题2具有模型直观、方法简单、实现容易等特点
3. 朴素贝叶斯法1可以解决二分类、多类分类问题2具有模型直观、方法简单、实现容易等特点
4. 决策树1可以解决二分类、多类分类问题2具有模型直观、方法简单、实现容易等特点
5. 逻辑斯蒂回归1可以解决二分类、多类分类问题2模型更复杂但更有效的分类方法往往分类准确度更高
6. 最大熵模型1可以解决二分类、多类分类问题2模型更复杂但更有效的分类方法往往分类准确度更高
7. 支持向量机1针对二分类的可以将其扩展到多类分类2模型更复杂但更有效的分类方法往往分类准确度更高
8. 提升方法 2. 标注
标注问题是从观测序列到标记序列或状态序列的预测问题。可以认为分类问题是标注问题的特殊情况。分类问题中可能的预测结果是二类或多类而标注问题中可能的序列预测结果是所有的标记序列其数目是指数级的序列的顺序性本身也是预测的范围所以是类别数的指数次方
常见的标注方法有 1. 隐马尔可夫模型
2. 条件随机场 3. 回归
回归问题是实例的特征向量到一个连续性值结果的预测问题可以认为分类问题是回归问题的一种离散化特例 0x2: 模型特点
undone
Relevant Link:
https://www.zhihu.com/question/26726794
https://zhuanlan.zhihu.com/p/25327755 回到顶部(go to top)
3. 感知机
感知机perceptron是二类分类的线性分类模型其输入为样本实例的特征向量输出为实例的类别是一种判别模型感知机得到的超分类面并不能表达出训练样本包含的概率分布它只是能“尽可能好地”完成对训练样本的二分类任务 0x1: 适用场景
感知机模型基于超平面将实例分到超平面的某一边所以感知机只能用于二分类的场景 0x2: 模型特点
假设输入空间特征空间 是输出空间是二分类。由输入空间到输出空间的如下函数称为感知机。其中w权值向量和b偏置称为感知机模型参数表示w和x的内积sign是符号函数即
感知机是一种线性分类模型属于判别模型。感知机模型的假设空间是定义在特征空间中的所有线性分类模型linear classification model或线性分类器linear classification即函数集合
感知机有如下几何解释
线性方程对应于特征空间中的一个超平面S其中 w 是超平面的法向量b 是超平面的截距。这个超平面将特征空间划分为两个部分位于两部分的点特征向量分别被分为正、负两类。因此超平面 S 称为分离超平面separating hyperplane 关于权重向量w和偏置b的内在含义我们还需要深入思考下 1. 如果说w和b两个参数确定一个超平面的话w决定的就是这个超平面的方向即这个超平面“倾向于”哪个维度的特征
2. 而截距b决定了分界面的数值位置即分界点选在特征值的哪里 0x3: 学习策略
假设训练数据集是线性可分的感知机学习的目标是 求得一个能够将训练集正实例和负实例点完全分开的分离超平面只要分对了就行甚至都不关注被分对的那些样本是不是太靠近分界面了太靠近分界面意味着模型的泛化能力可能不足预测的时候特征有一些扰动就可能产生误报。从这点上来看SVM的寻找分界面的策略要优于感知机 为了找到这样一个超平面即确定感知机模型参数w和b需要确定一个学习策略即定义经验损失函数并将损失函数极小化学习策略是抽象的我们需要数学化的定量描述 1. 损失函数的一个可能的选择是误分类点的总个数但是这样的损失函数是一个离散函数不是参数w和b的连续可导函数不易进行迭代优化
2. 损失函数的另一个选择是误分类点到超平面S的总距离这是感知机所采用的这意味着损失函数需要是一个连续可导且存在极值的函数 我们首先定义输入空间中任一点到超平面S的距离这里是w的L2范数。然后对于误分类的数据来说因此误分类点到超平面S的距离是。这样假设超平面S的误分类点集为M那么所有误分类点到超平面S的总距离为不考虑就得到了感知机学习的损失函数数学公式这种纯粹基于样本推导得到的损失函数也叫做经验风险函数同时给定训练集T损失函数是wb的连续可导函数 感知机算法求损失函数最小值经验风险最小寻找分界面的本质和极大似然求解是一样的都是在寻找一个有最大概率产生当前观察样本的模型 0x4: 学习算法
感知机寻找最优超分界面的问题转化为了求解损失函数最优解的问题它们是等价的。感知机的损失函数是一个非常光滑的连续曲线 因此最优化的方法是随机梯度下降法stochastic gradient descent
感知机学习算法是误分类驱动的首先随机选取一个超平面w0、b0然后用梯度下降法不断地极小化目标函数
在一轮梯度下降迭代中假设误分类点集合M是固定的那么损失函数的梯度由给出 可以看到权重w的调整和样本特征以及分类结果共同决定并调整偏置b的调整只和分类结果决定 随机选取一个误分类点对wb进行更新式中是步长在统计学习中又称为学习率learning rate。这样通过迭代可以让损失函数不断减小
这样的算法过程在直观上有如下解释当一个实例点被误分类即位于分离超平面的错误一侧时则调整wb的值使分离超平面向该误分类点的一侧移动以减少该误分类点与超平面间的距离直至超平面越过该误分类点使其被正确分类 回到顶部(go to top)
4. K近邻法
K近邻法k-nearest neighbor KNN是一种数据驱动基于实例的算法Instance-based Algorithms的分类与回归方法。它属于一种判别模型
基于实例的算法有时也称为基于记忆的学习是这样学习算法不是明确归纳概率分布或者分界面而是将新的问题例子与训练过程中见过的例子进行对比这些见过的例子就在存储器中。之所以叫基于实例的算法是因为它直接从训练实例中建构出假设。这意味这假设的复杂度能随着数据的增长而变化最糟的情况是假设是一个训练项目列表分类一个单独新实例计算复杂度为 On 0x1适用场景 1. 多分类问题场景
在多分类问题中的k近邻法k近邻法的输入为实例的特征向量对应于特征空间的点输出为实例的类别。k近邻法假设给定一个训练数据集其中的实例类别已定分类时对新的实例根据其k个最近邻的训练实例的类别通过多数表决等方式进行预测。因此k近邻法不具有显示的学习过程k近邻法实际上利用训练数据集对特征向量空间进行划分并作为其分类的“模型” 2. 回归问题的场景
KNN算法不仅可以用于分类还可以用于回归。通过找出一个样本的k个最近邻居将这些邻居的属性的平均值赋给该样本就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight)如权值与距离成正比 0x2模型特点
输入训练数据集其中为实例的特征向量为实例的类别。根据给定的距离度量在训练集中找出与 x 最邻近的 K需要人工设定调参 个点在由这 K 个点组成的邻域中根据分类决策规则决定 x 的类别 y
k近邻法的特殊情况是k1的情形称为最近邻算法即对于输入的实例点特征向量x最近邻法将训练数据集中与x最邻近的类作为x的类 k近邻法没有显示的学习过程作为判别模型的一种k近邻法的判别函数的具体形式也不是很明显 k近邻法使用的模型实际上对应于特征空间的划分某种意义上来说k近邻的模型就是样本特征空间本身。在k近邻法中当训练集、距离度量、k值、分类决策规则确定后对于任何一个新的输入实例它所属的类唯一地确定。这相当于根据上述基本要素将特征空间划分为一些子空间确定子空间里的每个点所属的类
特征空间中对每个训练实例点x1距离改点比其他点更近的所有点组成一个区域叫作单元cell。每个训练实例点拥有一个单元所有训练实例点的单元构成对特征空间的一个划分 k近邻很好地体现了判别式模型的思想k近邻不生成概率分布函数它只是通过三个基本要素尽可能地“捕捉”训练样本中的概率密度特征。之所以输入样本会被分到不同的类别其本质就在于在训练样本中存在不均匀的概率密度分布即某一个区域某一个类别密度占比比其他的类多 模型由三个基本要素 - k值选择、距离度量、分类决策规则组成下面我们逐个讨论 1. K值选择
K值的选择会对k近邻法的结果产生重大影响。 1. 如果选择较小的K值就相当于用较小的邻域中的训练实例进行预测1“学习”的近似误差approximation error会减少只有与输入实例较近的相似的、Lp距离较小的训练实例才会对预测结果起作用2但缺点是“学习”的估计误差estimation error会增大预测结果会对近邻的实例点非常敏感如果近邻的实例点恰巧是噪声预测就会出错可以理解为模型的容错性较差
换句话说k值的减小就意味着整体模型变得复杂因为搜索范围小了所以总的需要的搜索结果的存储单元就变多了容易发生过拟合2. 如果选择较大的K值就相当于用较大邻域中的训练实例进行预测 1优点是可以减少学习的估计误差即不容易受到近邻点的波动影响 2但缺点是学习的近似误差会增大这时与输入实例较远的不相似的训练实例也会对预测其作用使预测发生错误 总体来说K值的增大就意味着整体模型变得简单 近似误差和估计误差的核心区别在于是假设临近点的噪音扰动比较多还是远点的噪音扰动比较多。在实际应用中k值一般选取一个比较小的数值即我们基本上认为近邻点的相关性是比较大的而原点的相关性比较小
在实际项目中K值的选择和样本中的概率密度分布有关并没有一个定式的理论告诉我么该选什么样的K值好在的是这个K值的搜索空间并不是很大通常我们可以采取一个for循环交叉验证来搜索所有可能的K值通过重复进行多次实验每次随机选取不同的train set和validate set查看KNN模型对train set和validate set的拟合和泛化能力来选择一个最好的K值 2. 距离度量
特征空间中两个实例点的距离是两个实例点相似程度的反映。K近邻模型的特征空间一般是n维实数向量空间计算两个向量之间的距离有很多种方法注意这不是KNN独有的算法向量间距离模型是数学中的基础概念
设特征空间是n维实数向量空间的Lp距离定义为
P 1曼哈顿距离Manhattan distance
P 2欧式距离Euclidean distance
P 正无穷各个坐标距离的最大值
下图给出了二维空间中p取不同值时与原点的Lp距离为1Lp 1的点的集合图形 这张图很好地说明了取不同的距离策略对于KNN对于紧邻点的搜索范围是不同的进而影响随后的判别分类结果
有一个例子说明由不同的距离度量所确定的最近邻点是不同的。已知二维空间的3个点我们来对比一下在p取不同的值时Lp距离下X1的最近邻点
P值和X2距离和X3距离146244.24343.78443.57
可以看到p 1/2时X2是X1的最近邻点P 3X3是X1的最近邻点 3. 分类决策规则
k近邻法中的分类决策规则往往是多数表决即由输入实例的k个临近的训练实例中的多数的label决定输入实例的类
多数表决规则majority voting rule有如下解释如果分类的损失函数为0-1损失函数分类函数为那么误分类的概率是。对给定的实例其最近邻的 k 个训练实例点构成集合如果涵盖的区域的类别是Cj那么误分类率是
要使误分类率最小即经验风险最小就要使最大即模型对训练样本的预测准确度拟合程度最大。所以多数表决规则等价于经验风险最小化 KNN中的多数表决思想和朴素贝叶斯中选择最大后验概率的类作为实例的类的思想是一致的都等价于期望风险最小化关于朴素贝叶斯法预测过程中选择最大后验概率作为预测类别和期望风险最小化的等价推导请参阅这篇文章0x1期望风险最小化 0x3学习策略
KNN的学习策略很简单就是在训练集中寻找最近邻的K个实例点并进行voting选择最多类别的那个即经验风险最小化。这同样体现了极大似然估计的核心思想 0x4学习算法
KNN的策略非常直观易理解算法要解决是具体的工程化问题即如何在高维空间中选出 k 个近邻点当维度很高且样本量很大的时候如果不采取一些高效的算法而直接暴力搜索的话是非常耗时的
解决该问题的思路就是利用特殊构造的存储数据结构以及特殊的搜索方法来完成 1. KD树kd tree
kd树是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。kd树是二叉树表示对k维空间的一个划分partition构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分构成一系列的k维超矩形区域。kd树的每个结点对应于一个k维超矩形区域
构造平衡kd树
输入k维空间数据集样本数量是N每个样本的维度是k
1构造根节点根节点对应于k维空间中包含所有实例点的超矩形区域 2选择为坐标轴以数据集T中所有实例的坐标的中位数做i为切分点将根节点对应的超矩形区域切分为两个子区域切分由通过切分点并与坐标轴垂直的超平面实现。由根节点生成深度为1的左右子节点左子结点对应坐标小于切分点的子区域右子节点对应于坐标大于切分点的子区域
3重复过程2对深度为 j 的结点选择为切分的坐标轴取模循环不断根据每个维度进行二叉切分以该节点的区域中所有实例的坐标的中位数作为切分点将该结点对应的超矩形区域切分为两个子区域。切分由通过切分点并与坐标轴垂直的超平面实现。由该结点生成深度为 j 1 的左、右子节点左子节点对应坐标小于切分点的子区域右子节点对应坐标大于切分点的子区域将刚好落在切分超平面上的实例点保存在该结点
4直到两个子区域没有实例存在时停止即所有实例点都在超平面上从而形成kd树的区域划分最后一次切分得到的左、右子矩形空间就是叶节点
用一个例子来说明kd树构造过程 给定一个二维空间的数据集
1根节点对应包含数据集 T 的超矩形区域
2选择轴6个数据点的坐标的中位数是7以平面将空间分为左、右量子子矩形子结点
3接着左矩形的第二个维度的中位数是4所以以再分为两个子矩形右矩形以分为两个子矩形
4继续切分知道所有的实例点都被分到一个超平面上所切出的空间是一个不包含任何实例点的纯超矩形空间为止最后一次切分得到的左、右子矩形空间就是叶节点 搜索kd树
完成了kd树建树后接下来讨论如何利用kd树进行k近邻搜索 输入根据train set构造的kd树目标点x
输出x的最近邻1. 在kd树中找出包含目标点x的叶节点叶子节点寻找的过程是从根节点出发递归地向下访问kd树若目标点x当前维的坐标小于切分点的坐标则移动到左子结点否则移动到右子节点直到子节点为叶子节点某个不含训练实例的超矩形区域为止
2. 包含目标点的叶节点对应包含目标点的最小超矩形区域以此叶节点的实例落在切分超平面上的点暂时作为“当前最近点“注意这里说暂时是因为不一定该叶节点的实例点就真的是最近邻点了理论上目标点的最近邻一定在以目标点为中心并且圆周通过当前最近点的超球体内部(局部最优原理)接下来的逆向回溯的目的就是尝试寻找在这个超球体区域内是否还存在其他叶节点内的实例点比“当前最近点”更近
3. 以此叶节点为当前最近点递归的向上回退在每个结点(父节点)进行以下操作 1) 如果该结点保存的实例点比当前最近点距离目标点更近则已该实例点为当前最近点 2) 如果该结点的另一子结点的超矩形区域与超球体相交(可能存在另一个局部最优)那么在相交的区域内寻找与目标点更近的实例点。如果存在这样的点将此点作为新的当前最近邻点算法转到更上一级的父节点 3) 如果父节点的另一个子结点的超矩形区域与超球体不相交说明另一个分支不存在另一个局部最优则继续该分支的逆向回溯
4. 重复此过程依次回退到根节点搜索结束最后查看存储的当前最近点即为x的最近邻点 在回退的过程中不断查找与目标点最邻近的结点当确定不存在更近的结点时终止。这样搜索就被限制在空间的局部区域上效率大为提高了(这也是二叉树的核心思想 - 分而治之)
用下图来说明kd树的搜索过程根节点为A子节点是BCDEFG目标实例点S求S的最近邻 1. 首先在kd树中正向搜索定位到最右下角那个矩形区域随后开始逆向回溯过程
2. 该矩形区域的实例点是D所以暂时以D作为近似最近邻。但是理论上最近邻一定在以点S为中心通过点D的圆的内部(局部最优)因此需要继续逆向回溯
2. 然后返回节点D的父节点B在节点B的另一子结点F的区域内尝试搜索但是因为节点F的区域与超圆不相交不可能有最近邻点
4. 继续返回上一级父节点A在节点A的另一子节点C的区域内尝试搜索结点C的区域与圆相交在超矩形区域在园内的实例点有点E点E比点D更近因此成为新的最近似点
5. 最后得到点E是点S的最近邻 2. Ball Tree搜索
kd tree的思想非常精妙但是也存在一些问题 形并不是用到这里最好的方式。偏斜的数据集会造成我们想要保持树的平衡与保持区域的正方形特性的冲突。另外矩形甚至是正方形并不是用在这里最完美的形状由于它的角。为了解决这些问题引入了ball tree即使用超球面而不是超矩形划分区域 ball tree就是一个k维超球面来覆盖训练样本点上图a显示了一个2维平面包含16个观测实例的图,图b是其对应的ball tree其中结点中的数字表示包含的观测点数。树中的每个结点对应一个圆结点的数字表示该区域保含的观测点数但不一定就是图中该区域囊括的点数因为有重叠的情况并且一个观测点只能属于一个区域。实际的ball tree的结点保存圆心和半径。叶子结点保存它包含的观测点。
构造ball tree
ball tree的建树过程和kd tree大体上一致区别在于ball tree每次的切分点都是当前超球体的圆心选择一个距离当前圆心最远的观测点i1和距离i1最远的观测点 i2将圆中所有离这两个点最近的观测点都赋给这两个簇的中心然后计算每一个簇的中心点和包含所有其所属观测点的最小半径这样左、右子节点又构成了新的超球体
搜索ball tree
使用ball tree时先自上而下找到包含target的叶子结点从此结点中找到离它最近的观测点。这个距离就是最近邻的距离的上界。检查它的兄弟结点中是否包含比这个上界更小的观测点和kd tree一样检查的标准就是兄弟的超球体和当前结点的超球体是否有交集如果没有交集则这个兄弟结点不可能包含“更近邻点” kdtree和balltree的区别和联系
kd-tree基于欧氏距离的特性balltree基于更一般的距离特性因此kd-tree只能用于欧氏距离并且处理高维数据效果不佳。balltree在kd-tree能够处理的数据范围内要慢于kd-tree。
Relevant Link: http://blog.csdn.net/pipisorry/article/details/53156836 回到顶部(go to top)
5. 朴素贝叶斯法
朴素贝叶斯naive Bayes法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集首先基于特征条件独立假设学习输入/输出的联合概率分布然后基于此模型对给定的输入x利用贝叶斯定理求出后验概率最大的输出y 0x1适用场景
朴素贝叶斯法可以基于最大后验概率argmax进行多分类它适用于样本集中不同维度之间相关性较小的情况即大致符合条件独立性假设的情况 0x2: 模型特点 http://www.cnblogs.com/LittleHann/p/7199242.html 0x3: 学习策略 1. 模型学习过程
经验风险最小化最大似然估计MLE和结构风险最小化最大后验概率估计MAP 2. 根据模型进行判断预测
期望风险最小化
朴素贝叶斯法预测过程中根据最大后验概率argmax的结果作为预测结果的思想和KNN中选择K近邻的结果作为类预测结果的思想是一致的 0x4学习算法
朴素贝叶斯法的学习算法有三种可能不只我了解到的只有3种极大似然估计、贝叶斯估计、最大后验估计可以理解为正则化的极大似然估计详细的讨论我在另一篇文章已经讨论了 回到顶部(go to top)
6. 决策树
决策树(decision tree)是一种基本的分类与回归方法。决策树模型呈树形结构(二分类思想的算法模型往往都是树形结构) 0x1适用场景
因为它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构数据分析师希望更好的理解手上的数据的时候往往可以使用决策树。同时它也是相对容易被攻击的分类器。
这里的攻击是指人为的改变一些特征使得分类器判断错误。常见于垃圾邮件躲避检测中。因为决策树最终在底层判断是基于单个条件的攻击者往往只需要改变很少的特征就可以逃过监测。
受限于它的简单性决策树更大的用处是作为一些更有用的算法的基石。 0x2模型特点
在分类问题中表示基于特征对实例进行分类的过程它可以被看作是if-then的规则集合也可以被认为是定义在特征空间与类空间上的条件概率分布
关于决策树的模型特点这里说一些我自己在实践中的理解 1. 我们的原始数据集有很多不同的字段因为每条日志都代表了一个事件单独看一条记录不一定包含有足够的有价值信息所以很多时候我们需要进行group by聚类处理
2. group by聚类背后体现的就是以一个特征为索引得到该特征在不同label的的概率密度分布数值聚类的结果label就是特征labelcount就是其概率分布数值
3. 我们可以逐一循环所有特征进行group by从而得到所有特征的概率密度分布数值然后根据一个主键将其多路join merge到一个宽表中
4. 之后的判断就很接近决策树的思维方式了从不同特征进行超平面切分对所有特征进行综合判断得到分类器 0x3学习策略
决策树的建树过程遵循了经验风险最小化原则。决策树的剪枝过程体现了结构风险最小化 0x4学习算法
决策树的学习算法即工程化实现有ID3、C4.5、CART算法等。具体可以参阅另一篇文章 回到顶部(go to top)
7. 逻辑斯蒂回归与最大熵模型 0x1适用场景
多类分类问题因为逻辑斯蒂回归的二项分类模型二项条件概率可以推广到多项逻辑斯蒂回归多项条件概率 0x2模型特点
特征条件下类别label的条件概率分布它本质上是一个对数线性模型
值得注意的是逻辑斯蒂模型并没有学习到特征和类别label的联合概率密度分布它是一个判别模型
详细讨论可以参阅这篇文章 0x3学习策略
极大似然估计或正则化的极大似然估计例如L1惩罚 0x4学习算法 1. 损失函数
逻辑斯蒂回归的损失函数采用了逻辑斯蒂损失 即对数损失对数损失是用于最大似然估计的。一组参数在一堆数据下的似然值等于每一条数据的概率之积。而损失函数一般是每条数据的损失之和为了把积变为和就取了对数。再加个负号是为了让最大似然值和最小损失对应起来。 可以把logloss分解成真实分布的熵真实分布与预测分布的相对熵KL散度前半部分是固定的所以最小化logloss相当于在最小化真实分布与预测分布之间的差异 2. 优化算法
改进的迭代尺度算法梯度下降拟牛顿法
Relevant Link: https://www.zhihu.com/question/47744216?fromprofile_question_card 回到顶部(go to top)
7. 支持向量机
支持向量机support vector machine SVM是一种二类分类模型。它的基本模型是定义在特征空间feature space上的间隔最大线性分类器
因为SVM加入了间隔最大这项约束所以SVM有别于别的感知机即有唯一最优解这一约束使其具备了结构化风险最小策略特性除此之外支持向量机还包括核技巧这使它成为实质上的非线性分类器。
支持向量机的模型是支持向量和超分类面的距离学习策略就是间隔最大化求解最优解的过程的算法根据待分类问题数据集的线性性决定是否需要用到kernel trick进行非线性求解但总的来说求解过程即求解凸二次规划convex quadratic programming问题也等价于正则化的合页损失函数的最小化问题 0x1适用场景
支持向量机方法论可以用于二类分类也可以进行无监督异常outerlier检测one-class svm 0x2: 模型特点 http://www.cnblogs.com/LittleHann/p/5717892.html 0x3: 学习策略
分离超平面 - 硬/软间隔最小化策略
核技巧 0x4学习算法
序列最小最优化算法SMO 回到顶部(go to top)
8. 提升方法
提升boosting方法是一种常用的统计学方法在分类问题中它通过逐轮不断改变训练样本的权重学习多个分类器并将这些分类器进行线性组合提高分类的性能。 0x1适用场景
提升方法论可以用于二类分类也可以用在回归拟合问题中 0x2: 模型特点 http://www.cnblogs.com/LittleHann/p/7512397.html 0x3: 学习策略
极小化加法模型的指数损失但是也可以用MSE损失和一般化损失函数只是优化过程会有所变化 0x4学习算法
前向分布加法算法forward stagewise algorithm 回到顶部(go to top)
9. EM算法
EM算法是一种迭代算法1977年由Dempster等人总结提出用于含有隐变量hidden variable的概率模型参数的极大似然估计或极大后验概率估计。EM算法的每轮迭代由两步组成E步求期望 expectationM步求极大似然所以这一算法称为期望极大算法expectation maximization algorithm EM算法 0x1适用场景
在包含隐变量的概率模型中进行参数估计。 0x2: 模型特点 http://www.cnblogs.com/LittleHann/p/7565525.html
http://www.cnblogs.com/LittleHann/p/8446491.html 0x3: 学习策略
E极大似然估计、M极大后验概率估计交替进行 0x4学习算法
迭代算法 回到顶部(go to top)
10. HMM隐马尔可夫模型
隐马尔可夫模型是关于时序的概率模型描述有一个隐藏的马尔柯夫链随机生成不可观测的状态随机序列隐状态序列再由各个状态生成一个观测结果而产生观测随机序列可见状态序列的过程 0x1适用场景
解码问题场景例如语音解码、标注问题求隐状态序列、似然概率求解概率预测 0x2: 模型特点 http://www.cnblogs.com/LittleHann/p/7609060.html 观测序列与状态序列的联合概率分布模型 0x3: 学习策略
极大似然估计、极大后验概率估计 0x4学习算法
概率计算公式、以及EM算法
Copyright (c) 2017 LittleHann All rights reserved分类: 概率统计与算法,机器学习 上一篇机器学习中的特征建模特征工程和算法选型建模 - 以暴力破解识别为例» 下一篇浅议极大似然估计MLE背后的思想原理原文http://www.cnblogs.com/LittleHann/p/7749661.html#_label3_0_2_1