机器学习
文章平均质量分 85
ice110956
全新主页上线:www.huangwc.cn,本blog停止更新,欢迎来访。
展开
-
集成学习——bagging and boosting
作为集成学习的二个方法,其实bagging和boosting的实现比较容易理解,当是理论证明比较费力。下面首先介绍这两种方法。所谓的集成学习,就是用多重或多个弱分类器结合为一个强分类器,从而达到提升分类方法效果。严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。1.baggingbagging算是很基础的集成学习的方法,他的提出是为了增强分类器效果,但是在处理不平衡问题上原创 2013-08-19 20:50:56 · 7383 阅读 · 0 评论 -
朴素贝叶斯模型
在生成学习算法中,特征向量是连续值,从而我们假设一个连续分布,来拟合P(x|y)。如果x是离散的并且维数很大又该怎么处理?以文本分类为例子,引出朴素贝叶斯方法。考虑分类邮件的例子。我们要通过邮件中的文本,来建立模型,从而把垃圾邮件与正常邮件区分开开来。而邮件一般由文字组成,我们要把这些文字提取作为邮件的特征。一个简单的方法就是建立字典,每一维代表一个字母是否出现,于是每个邮件可以提取得到基于此的特征向量。如果我们选择一个5000个单词的字母表,那么邮件的特征便为5000维。根据生成模型的方法,我们要假原创 2014-04-07 11:27:02 · 2225 阅读 · 1 评论 -
核方法原理
核方法原理1.无力的线性分类器一般情况下,我们考虑构造一个线性分类器来解决问题。但是实际中,线性分类器的效果达不到要求,因为大部分数据都不是线性可分的,如下面这幅图。一种改进的方法是把多个弱的线性分类器组合得到一个强分类器,如决策树,booting方法;另一个种方法就是接下来要说的高维投影。2.高维线性可分如果某个分类问题线性不可分,那么我们可以考虑把样本投影到非线性的高维空间上,从而实现高维可分。R(低维)->F(高维)。如下图。3.高维计算的维数灾难上面的映射会大大增加计算复杂度原创 2014-03-04 11:31:23 · 9175 阅读 · 3 评论 -
SVM(一)
SVM(support vector machine,支持向量机)是最好的分类模型之一。通过寻找高维空间上的超平面,把样本分隔为两类,并且计算复杂度并没有因为高维映射而增加。这篇blog从间隔的定义出发,以最优化的形式定义SVM的最大间隔分类问题。在KKT条件下,一个不好解的最优化问题可以转化为其对偶规划求解。SVM运用对偶规划,能够得到关于样本的内积形式。核方法是一种以核函数替代高维点积,而时间复杂度不提高的方法。在SVM中,通过对偶规划得到内积形式后,运用核函数,我们得到高维空间的线性可分的分类器原创 2014-04-11 13:12:05 · 1966 阅读 · 0 评论 -
SVM(二)——宽松SVM
之前的SVM(http://blog.csdn.net/ice110956/article/details/23436171)推导前提条件是样本线性可分,或者至少在高维空间中线性可分。但是许多情况下,并不是高维可分的。还有一种情况,由于一小部分的离群点导致SVM的结果相差很大。为了解决高维线性不可分,以及离群点影响过大的情况,放宽约束,并加入惩罚项,从而构造错分可容忍,离群点鲁棒的宽松SVM方法。在解的时候,使用坐标迭代求解的坐标上升法,每次更新两个变量,虽然增加了迭代次数,但是使得每次都求解相对容易原创 2014-04-11 13:31:26 · 1346 阅读 · 0 评论 -
交叉验证
之前的blog讨论过经验风险与结构风险之间相互限制的关系。http://blog.csdn.net/ice110956/article/details/14002791我们在相同VC维的模型中,选择经验风险最小的模型,能够得到与真实风险误差有一定上限的结果,即这种策略的结果可控,虽然不是最优的。那么,在不同的VC维模型中,比如遇到一个分类问题,是使用SVM,贝叶斯,还是决策树?这时候如何选择呢?一个常见的方法就是交叉验证。 交叉验证就是把训练样本的一部分独立出来作为测试样本,用这时候的测试误差来估计原创 2014-04-11 21:58:08 · 2623 阅读 · 0 评论 -
半监督学习(一)
什么是半监督学习?传统的机器学习技术分为两类,一类是无监督学习,一类是监督学习。无监督学习只利用未标记的样本集,而监督学习则只利用标记的样本集进行学习。但在很多实际问题中,只有少量的带有标记的数据,因为对数据进行标记的代价有时很高,比如在生物学中,对某种蛋白质的结构分析或者功能鉴定,可能会花上生物学家很多年的工作,而大量的未标记的数据却很容易得到。这就促使能同时利用标记原创 2013-10-31 18:05:49 · 57268 阅读 · 12 评论 -
特征选择
特征选择是一种特殊的模型选择方法。考虑一种情况,当样本维数n远大于样本个数m的时候,根据经验风险与结构风险的关系样本维数n很大,那么即使是用最简单的线性回归,模型的VC维也能达到O(n)。样本数量m很小,也会导致模型过拟合。处理这种情况,由于VC维很难再降低了,而样本数的增加也是受限制的,我们选择减小样本维数。 一种方法是PCA,LDA等模式识别中常见的方法,类似小波变换,求得线性高能量子空间。还有一种就是这里要论述的特征选择。原创 2014-04-12 22:32:25 · 2029 阅读 · 0 评论 -
Tanimoto相似度与Bregman距离
之前写过一篇距离与相似性度量的blog,这里添加两个少见的相似性度量方法,并且再扩展一些东西。Tanimoto系数由Jaccard系数扩展而来。用来计算稀疏非二值不平衡向量的相似性,类似cosine距离Bregman距离是一个数学通式,许多的距离,如欧式距离,KL距离等等都可以有Bregman公式推导而来。原创 2014-06-06 20:26:36 · 18943 阅读 · 2 评论 -
决策树扩展
之前写过决策树的一篇blog。这几天看数据挖掘导论发掘一些新的东西,记录下来。增加了过拟合,剪枝,即其他纯度计算方法等内容。原创 2014-06-07 09:59:27 · 2095 阅读 · 0 评论 -
分类器效果分析
假设有两个分类器A,B。A在1000个样本的集合上有75%的准确率;B在200个样本的集合上有85%的准确率。我们要怎样评价这两个分类器的效果?这就是这里要讨论的分类器效果分析。我们先假设一个分布,然后用置信区间来比较两个分类器。原创 2014-06-08 12:43:11 · 2702 阅读 · 0 评论 -
C4.5决策树+代码实践
--------------------------------文章修改与4月1日———————————————————之前的文章排版有点混乱,概念不清,代码没仔细整理过。发现许多人使用这个代码,特此修改这篇blog,希望改进后能叙述地更清晰明朗。 决策树是一种非线性分类器,每次根据某个规则,选择一个特征,并以某个特征的某个值为阈值,把训练样本递归的分为若干子树。以同样的规则递归划分,原创 2013-08-18 18:48:51 · 15465 阅读 · 25 评论 -
SimHash
关键字:字符串降维,汉明匹配,顺序无关基本原理simhash是google用于解决海量数据去重的问题,通过降维到hash_code,在通过降维后的code进行两两匹配。 流程如下: - 1、分词,把需要判断文本分词形成这个文章的特征单词。最后形成去掉噪音词的单词序列并为每个词加上权重。2、hash,通过hash算法把每个词变成hash值,比如“美国”通过hash算法计算为 100101,“5原创 2017-03-29 16:21:40 · 1027 阅读 · 0 评论 -
生成模型之高斯鉴别分析
线性回归中,我们假设Y满足以sita*X为均值的高斯分布。也就是假设P(Y|X)~N(sita*X,yita)。这种假设拟合P(Y|X)的方法我们称为判别法。有这么一种方法,尝试去假设X的分布情况,也就是假设拟合P(X|Y)。这就是生成模型。使用生成模型,得到拟合分布P(X|Y)之后,我们再使用bays规则,求得某个新样本属于某个标签的概率。然后,取其中概率最大的类作为分类结果。高斯分布是熟知的自然分布。我们用多变量的高斯分布,来假设样本特征满足这样的分布,生成高斯鉴别分析模型。原创 2014-04-06 12:17:09 · 2512 阅读 · 0 评论 -
最速下降法与Newton法
一般我们常见的解最优化的方法是解析法,是求导,得极值点。很多情况下解析法很难求解,常会用到一种迭代慢慢逼近的方法,就是迭代法。迭代法由一个基本的可行点出发,依次产生一个可行点列,x1,x2,…,xk,f(xk+1)迭代法基本步骤如下:1. 一个初始的位置x0;2. 一个迭代搜索的方向p3. 一个前进的步长a.原创 2014-04-01 15:33:03 · 7318 阅读 · 0 评论 -
logistic回归
线性分类问题我们看如下这幅图。两类样本直观地可以通过一条直线分隔。这就是常见的线性分类问题。用回归方法解决分类问题分类问题是一种特殊的回归问题,其输出的预测为类标签。如果是0,1两类,则输出0为负类,1为正类。我们把线性回归中的结果,直接做如下处理:也就是把线性回归得到的结果,按照>,这就是简单的感知机模型。 很明原创 2014-04-03 15:21:07 · 1786 阅读 · 0 评论 -
经验风险与结构风险
在机器学习中,我们希望拟合的模型能够在更大的集合上有最小的误差.也就是说,机器学习的目标是,最小化一般误差. 可惜的是,最小化一般误差是NP难题.于是一般的解决方法就是转而最小化经验误差(ERM).现在许多的机器学习方法也都是基于ERM的.比如概率学的最大释然原则,神经网络等等.原创 2013-11-02 10:25:46 · 6360 阅读 · 3 评论 -
深入理解PCA
PCA(主成分分析法)是图像处理,特征提取,机器学习领域比较常用的方法,一般可达到降低维数的目的.PCA的理论中,主要涉及到概率统计中的方差与协方差的概念,是一种基于统计相关性的线性变换.在学习理解的时候,直观地了解一些现实中的例子,能够对于这种统计相关的方法有物理上的直观认识,对于我们学习,理由好这种方法有比较大的帮助.本文通过解析PCA中的数学理论,再到现实中的直观实例,希望能够对于PCA做一个深度的解读.原创 2013-11-06 19:47:33 · 6795 阅读 · 0 评论 -
MP算法与OMP算法
稀疏编码的一般最优化公式为:其中的零范数为非凸优化。那么如何解这么一个非凸优化问题呢?其中一个常用的解法就是MP算法。MP算法是一种贪心算法(greedy),每次迭代选取与当前样本残差最接近的原子,直至残差满足一定条件。首先解决两个问题,怎么定义“最接近原子”,怎么计算残差?选择最接近残差的原子:MP里定义用向量内积原子与残差的距离,我们用R表示残差,di表示原子,则:Ma原创 2014-01-17 13:40:01 · 9366 阅读 · 1 评论 -
稀疏编码最优化解法--概述
稀疏编码的概念来自于神经生物学。生物学家提出,哺乳类动物在长期的进化中,生成了能够快速,准确,低代价地表示自然图像的视觉神经方面的能力。我们直观地可以想象,我们的眼睛每看到的一副画面都是上亿像素的,而每一副图像我们都只用很少的代价重建与存储。我们把它叫做稀疏编码,即Sparse Coding.稀疏编码的目的是在大量的数据集中,选取很小部分作为元素来重建新的数据。稀疏编码难点之一是其最优化目标函数的求解。这篇文章先做一个概述,接着再分别讨论各个解法。原创 2014-01-17 11:24:56 · 3404 阅读 · 0 评论 -
ROC曲线与AUC
对于0,1两类分类问题,一些分类器得到的结果往往不是0,1这样的标签,如神经网络,得到诸如0.5,0,8这样的分类结果.这时,我们人为取一个阈值,比如0.4,那么小于0.4的为0类,大于等于0.4的为1类,可以得到一个分类结果。同样,这个阈值我们可以取0.1,0.2等等。取不同的阈值,得到的最后的分类情况也就不同。阈值不同,可以得到不同的结果,但是由分类器决定的统计图始终是不变的。这时候就需要一个独立与阈值,只与分类器有关的评价指标,来衡量特定分类器的好坏。还有在类不平衡的情况下,如正样本90个,负样本原创 2014-03-02 14:37:58 · 31256 阅读 · 8 评论 -
PCA matlab实现
PCA 流程如下:程序设计步骤: 1、去均值 2、计算协方差矩阵 3.计算协方差特征值和特征向量 4、降序排列特征值选取较大的特征值,选择相应的特征值和特征向量一下按照步骤编写matlab代码。 1. 去均值:Matlab函数mean可得:如下Mean_Image=mean(Train_SET,2); Train_SET=Train_SET-Mean_原创 2014-03-10 18:28:12 · 8621 阅读 · 0 评论 -
在线学习
一般的算法当中,我们有一个训练模型的集合。通过假设,拟合得到模型。而在在线学习模型中,我们是在一个不断扩充的集合中不断训练,不断改变模型参数。这种方法适用于许多在线训练的场景,边测试,边训练,不断优化模型。也就是,每回在线地加入新样本,然后更新模型。根据这种方法只用于训练的,也就是随机下降的方法。边测试,然后把之后得到的真实结果再加入训练集训练,就是在线学习。比如我们预测前一天的天气对第二天穿衣的影响。过了那天之后,原先的测试数据可以转化为训练数据,更新数据集。原创 2014-04-16 18:27:36 · 1410 阅读 · 0 评论 -
推荐系统之改进版SVD
之前的blog(http://blog.csdn.net/ice110956/article/details/21955461 )简单阐述了基于SVD矩阵分解的隐因子模型。隐因子模型通过假设一个隐因子空间,通过矩阵分解,得到隐因子空间上的用户-隐因子属性向量,以及物品-隐因子属性向量。再把两个分解后的矩阵相乘,得到满的用户-物品矩阵。以此来推荐。 隐因子模型运用在推荐系统中,相比与简单的协原创 2014-03-26 15:04:36 · 6053 阅读 · 1 评论 -
线性回归中最小二乘的概率解释
最小二乘法是常见的构造代价函数, 拟合参数的方法,如下:Cost=(h(x)-y)^2这里探讨最小二乘的概率依据。 最大释然理论一个简单的例子:假设一个袋子里有无限个球,白球出现的比例是P,黑球为1-P。那么我从中取10个球,得到了7个白球,很自然的,我们会估计白球出现的比例P=0.7;继续,我们取100个球,得到了75个白球,我们会继续估计P=0.75。也原创 2014-04-02 10:22:09 · 3359 阅读 · 0 评论 -
神经网络
神经网络是常见的机器学习模型。通过模拟人类神经网络的运行方式,来达到学习的目的。基本原理假设如下的图为一个神经元的工作原理:输入N维的X,每个Xi经过权重wi处理后,相加得到能量值,作为神经元的输入。如果这个能量值超过一个阈值,则神经元被激发,输出正信号。原创 2014-03-22 15:17:13 · 2142 阅读 · 0 评论 -
线性回归
Ng的一个例子:假设我们要用房子的大小来预测其价格,得到的数据如下:我们画在二维平面上,得到如下:我们可以大概地用一个函数来拟合如上的数据:Price=h(area),其中h为线性函数,则称为线性回归,得到下面的一条预测直线。 一般化的,我们写成:这里的参数,就是我们训练要得到的参数。 如何得到较好的参数呢?直观的方法就是最小二乘原创 2014-04-01 21:49:48 · 1445 阅读 · 1 评论 -
基于矩阵分解的隐因子模型
推荐系统是现今广泛运用的一种数据分析方法。常见的如,“你关注的人也关注他”,“喜欢这个物品的用户还喜欢。。”“你也许会喜欢”等等。常见的推荐系统分为基于内容的推荐与基于历史记录的推荐。基于内容的推荐,关键在于提取到有用的用户,物品信息,以此为特征向量来进行分类,回归。基于历史记录的推荐,记录用户的评分,点击,收藏等等行为,以此来判断。基于内容的推荐对于用户物品的信息收集度要原创 2014-03-24 14:55:38 · 8568 阅读 · 2 评论