![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
文章平均质量分 84
火贪三刀
这个作者很懒,什么都没留下…
展开
-
理解支持向量机(三)SMO算法
在支持向量机模型的求解中,我们用到了SMO算法来求解向量α。那么什么是SMO算法?在讲SMO算法之前,我们需要先了解以下坐标上升法。 1、坐标上升法 假设有优化问题: W是α向量的函数。利用坐标上升法(当然,求目标函数的最小时即为坐标下降法)求解问题最优的过程如下: 算法的思想为:每次只考虑一个变量进行优化,将其他变量固定。这时整个函数可以看作只关于该变量的函数,可以对其直接原创 2016-03-30 19:17:03 · 6159 阅读 · 1 评论 -
分类模型中的参数估计
在分类模型中,我们常常以联合概率P(X,ω)P(X,\omega)或者后验概率P(ω|X)P(\omega|X)建模,X={x1,x2,…,xd}表示一个d维向量,ω=ω1,ω2,…,ωk表示类别。X=\lbrace x^1,x^2,\ldots ,x^d\rbrace表示一个d维向量,\omega=\omega_1,\omega_2,\ldots,\omega_k 表示类别。其中, P(X,原创 2016-05-29 19:26:40 · 5628 阅读 · 0 评论 -
概率模型与条件随机场
1、概率模型 机器学习中的很多模型可以根据概率分布形式分为生成模型和判别模型,其中生成模型以输入输出的联合分布P(X,Y)为基础建模,如朴素贝叶斯、隐马尔可夫模型;判别模型以条件概率分布P(Y|X)为基础建模,如最大熵模型、条件随机场等。这几个模型之间有一定的关系,它们的关系如下: 其中,NB表示朴素贝叶斯,ME表示最大熵,HMM表示隐马尔科夫,CRF表示条件随机场。joint联合分布,co原创 2016-04-16 21:17:23 · 5911 阅读 · 0 评论 -
利用分类模型学习特征权重
在有的时候,我们需要学习出特征在分类器中所占的比重,例如判断某个人是否具有贷款资格,特征收入应该比年龄要更重要一些,那么具体重要多少,我们可以通过训练数据学习出来。第一个办法可以借鉴决策树中特征选择的思想,以贷款为例,特征向量={年龄,收入,有房子,婚否}。通过计算每个特征AiA_i在训练数据集下的信息增益: gi(D,Ai)=H(D)−H(D|Ai),i=1,2,3,4g_i(D,A_i)=原创 2016-06-02 17:22:10 · 10620 阅读 · 0 评论 -
几种范数的简单介绍
什么是范数?我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,原创 2016-06-25 10:48:05 · 115910 阅读 · 17 评论 -
通俗解释反向传播(Backpropagation)的计算
Backpropagation算法是目前绝大多数神经网络在优化参数时用到的算法,具有快速方便容易实现的优点。那么它是如何实现的呢?首先看一张典型神经网络结构图: 上图是一个包含了输入层L1、一个 隐含层L2和输出层L3的简单神经网络,它的处理流程为根据输入层的input以及相应的权重和偏置(图中黑色带箭头的边),通过隐含层的加工,最终将结果映射到输出层得到结果。模型可以抽象表示为y=f原创 2016-07-16 15:26:44 · 22969 阅读 · 3 评论 -
使用sklearn实现朴素贝叶斯文本分类
本文使用的python版本为3.4。 使用前需要安装numpy、matplotlib、scipy和scikitlearn,建议直接下载后安装,下载地址为:python包,选择相应的版本下载,注意不要使用最新的python3.5版本,其对scipy的兼容性不稳定,安装容易失败。 此外还用到了结巴分词、joblib等python包,可以直接通过pip安装。本文源代码及文本数据集下载地址:https:原创 2016-07-20 22:23:15 · 6938 阅读 · 4 评论 -
理解数学空间,从距离到希尔伯特空间
在数学中有许多空间表示,比如欧几里德空间、赋范空间、希尔伯特空间等。这些空间之间有什么关系呢?首先要从距离的定义说起。 什么是距离呢?实际上距离除了我们经常用到的直线距离外,还有向量距离如Σni=1xi⋅yi−−−−−−−−√\sqrt{\Sigma_{i=1}^nx_i\cdot y_i}, 函数距离如∫ba(f(x)−g(x))2dx\int_a^b(f(x)-g(x))^2d_x、 曲面距离原创 2016-04-03 21:42:09 · 31428 阅读 · 11 评论 -
xgboost的模型推导
1、Boost Tree 模型提升树模型一般是以CART树为基函数,采用加法模型与前向分布算法来拟合目标。第t时刻的模型为: f(t)(x)=f(t−1)(x)+Tt(x;θ)f^{(t)}(x) = f^{(t-1)}(x)+T^{t}(x;\theta) 其中,f(t−1)(x)f^{(t-1)}(x)是t-1时刻的模型,通过经验风险最小化来获得下一棵决策树Tt(x;θ)T^{t}(原创 2017-05-31 22:30:09 · 2516 阅读 · 0 评论 -
Python实现基于朴素贝叶斯的垃圾邮件分类
听说朴素贝叶斯在垃圾邮件分类的应用中效果很好,寻思朴素贝叶斯容易实现,就用python写了一个朴素贝叶斯模型下的垃圾邮件分类。在400封邮件(正常邮件与垃圾邮件各一半)的测试集中测试结果为分类准确率95.15%,在仅仅统计词频计算概率的情况下,分类结果还是相当不错的。实现代码及数据集下载1、准备工作 python3.4开发环境; 结巴分词工具:https://github.com/fxsjy/j原创 2016-04-20 15:09:32 · 20549 阅读 · 6 评论 -
维特比算法
维特比算法在机器学习中非常重要,在求解隐马尔科夫和条件随机场的预测问题中均用到了维特比算法。实际上,维特比算法不仅是很多自然语言处理的解码算法,也是现代数字通信中使用最频繁的算法。以一个简单的隐马尔科夫模型为例, x=(x1,x2,...,xN)x=(x_1,x_2,...,x_N)为观测符号,y=(y1,y2,...,yN)y=(y_1,y_2,...,y_N)为隐状态序列,要求的预测问题为原创 2016-04-17 16:40:01 · 17748 阅读 · 0 评论 -
理解支持向量机(四)LibSVM工具包的使用
LibSVM是一款简单易用的支持向量机工具包,包含了C和Java的开发源码。大家可以访问其官网进行了解和下载相关文件。 这里以其官网的第一个数据集a1a 为例,练习使用多项式核和径向基核来对数据集进行分类。1、准备工作 由于从官网下的最新的2015.12月发布的libsvm-3.21版本中已生成的exe文件不支持Windows32位系统,所以使用的之前的一版libsvm-3.20。将其下下来打开原创 2016-04-02 20:14:30 · 6544 阅读 · 1 评论 -
理解字符串核函数
前面讲支持向量机的时候,提到了核函数,通过核函数可以实现特征点的非线性转换,从而实现分类。 字符串核函数也是一种核函数,但它与一般的核函数不同。其他核函数一般定义在欧氏空间上,而字符串核函数是定义在字符串集合上的核函数。字符串核函数被广泛用在文本分类、信息检索等方面。首先解释下什么是字符串核函数。与一般核函数一样,字符串核函数也需要高维特征空间。特征空间的维度由映射函数决定,例如映射ϕ(x1原创 2016-04-12 19:48:15 · 5768 阅读 · 4 评论 -
理解支持向量机
支持向量机是一个二类分类模型,但也可以扩展为多类分类。其基于间隔最大化和核技巧的特点可以使它可以灵活处理线性或非线性分类问题。 支持向量机可是形式化为一个凸二次规划问题,学习算法是求解基于凸二次规划的最优化算法。 按照训练数据是否线性可分,支持向量机可以分为基于硬间隔的线性可分支持向量机、基于软间隔的线性支持向量机、基于核技巧和软间隔最大化的非线性支持向量机。三者复杂性是依次增加的。 1、基于原创 2016-03-25 17:16:21 · 12301 阅读 · 1 评论 -
理解支持向量机(二)核函数
由之前对核函数的定义(见统计学习方法定义7.6): 设χ是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一个从χ到Η的映射 φ(x): χ→Η 使得对所有的x,z∈χ,函数Κ(x,z)=φ(x)∙φ(z), 则称Κ(x,z)为核函数,φ(x)为映射函数,φ(x)∙φ(z)为x,z映射到特征空间上的内积。 由于映射函数十分复杂难以计算,在实际中,通常都是使用核函数原创 2016-03-28 20:15:10 · 42169 阅读 · 1 评论 -
理解梯度下降法
梯度下降法是求解无约束最优问题中常用到的一种学习方法,形式简单,属于一阶收敛,在空间进行线性搜索。在前面讲到的逻辑斯蒂回归模型中,就常用到梯度下降法来学习参数。 首先给出问题定义(统计学习方法附录A): 假设f(x)是RnR^n上具有一阶连续偏导的函数,求解的目标问题如下:minx∈Rnf(x) \mathop{min}\limits_{x\in R^n}f(x)x∗x^*表示目标函数f(x)f原创 2016-04-11 19:27:24 · 4212 阅读 · 0 评论 -
理解牛顿法
牛顿法与梯度下降法相比,收敛速度更快,在搜索空间中进行二阶收敛,即以椭圆曲面去逼近最优解,也可以将牛顿法看作二次曲面下的梯度下降法。牛顿法对于凸二次最优问题,迭代一次即可得到最优解。首先给出无约束最优目标问题定义(统计学习方法附录B):minx∈Rnf(x)\mathop{min}_{x\in R^n}f(x)其中,x∗x^*为目标函数的极小点。 假设f(x)具有二阶连续偏导,若第k次迭代值为x(原创 2016-04-11 21:17:48 · 4050 阅读 · 0 评论 -
理解逻辑斯蒂回归模型
逻辑斯蒂回归是一个非常经典的二项分类模型,也可以扩展为多项分类模型。其在应用于分类时的过程一般如下,对于给定的数据集,首先根据训练样本点学习到参数w,b;再对预测点分别计算两类的条件概率,将预测点判为概率值较大的一类。1、线性模型 逻辑斯蒂回归属于对数线性模型,那什么是对数线性模型?首先我们介绍下线性模型。 给定包含d个属性的变量x=(x1,x2,...,xdx_1,x_2,...,x_d),x原创 2016-04-07 22:31:55 · 14621 阅读 · 0 评论 -
理解最大熵模型
最大熵模型与逻辑斯蒂回归模型一样,属于对数线性模型,因为推导出的最大熵模型公式满足输入与输出的对数函数成线性关系,如下:Pw(Y|X)=1Zw(x)exp(∑ni=1wifi(x,y))P_w(Y|X)=\frac{1}{Z_w(x)}exp(\sum_{i=1}^nw_if_i(x,y))其中,Zw(x)=∑yexp(∑ni=1wifi(x,y))Z_w(x)=\sum_yexp(\sum_{i=原创 2016-04-11 15:47:56 · 8530 阅读 · 2 评论 -
为什么特征独立型的模型遇到高度相关特征效果会不好?
在利用一些机器学习模型分类的时候,一般都会进行特征选择过程,消除掉冗余特征和高度相关特征,比如朴素贝叶斯,逻辑斯蒂。为什么要这么做呢?主要有以下几个原因。 1) 一个原因比较显而易见,就是若冗余特征过多,会造成特征数目过多,从而分析特征,训练模型所需要的时间就会越长; 2) 特征数目越多,模型就会越复杂,模型越复杂,带来的方差就越大,过拟合的风险就会越大,其泛化能力就会变弱; 3) 冗余特征会原创 2017-07-23 10:33:48 · 6711 阅读 · 4 评论