
机器学习
suibianshen2012
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
朴素贝叶斯(Native Bayes)法简述
1.1、摘要 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本文作为分类算法的第一篇,将首先介绍分类问题,对分类问题进行一个正式的定义。然后,介绍贝叶斯分类算法的基础——贝叶斯定理。最后,通过实例讨论贝叶斯分类中最简单的一种:朴素贝叶斯分类。1.2、分类问题综述 对于分类问题,其实谁都不会陌生,说我们每个人每天都在执行转载 2016-04-26 19:13:24 · 5290 阅读 · 0 评论 -
主成分分析PCA工作原理和简单介绍
PCA原理:PCA的原理就是将原来的样本数据投影到一个新的空间中,相当于我们在矩阵分析里面学习的将一组矩阵映射到另外的坐标系下。通过一个转换坐标,也可以理解成把一组坐标转换到另外一组坐标系下,但是在新的坐标系下,表示原来的原本不需要那么多的变量,只需要原来样本的最大的一个线性无关组的特征值对应的空间的坐标即可。比如,原来的样本是30*1000000的维数,就是说我们有3转载 2016-05-09 15:38:08 · 9657 阅读 · 0 评论 -
用朴素贝叶斯进行文本分类(上)
1. 引言贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来。因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口。2. 贝叶斯公式贝叶斯公式就一行:P ( Y | X ) = P ( X | Y ) P ( Y ) P ( X )而它其实是由以下的联合概率公式推导出转载 2016-06-08 15:57:30 · 4781 阅读 · 0 评论 -
机器学习-KMeans聚类 K值以及初始类簇中心点的选取
KMeans算法是最常用的聚类算法,主要思想是:在给定K值和K个初始类簇中心点的情况下,把每个点(亦即数据记录)分到离其最近的类簇中心点所代表的类簇中,所有点分配完毕之后,根据一个类簇内的所有点重新计算该类簇的中心点(取平均值),然后再迭代的进行分配点和更新类簇中心点的步骤,直至类簇中心点的变化很小,或者达到指定的迭代次数。 KMeans算法本身思想比较简单,但是合理的确定K值和K个初始转载 2016-06-04 15:25:10 · 22338 阅读 · 1 评论 -
基于用户的协同过滤和基于物品的协同过滤推荐算法原理和实现
在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。下面直接进入正题1 什么是协同过滤协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最转载 2016-06-21 20:56:09 · 6096 阅读 · 0 评论 -
文本分类与SVM
1、基础知识1. 1 样本整理文本分类属于有监督的学习,所以需要整理样本。根据业务需求,确定样本标签与数目,其中样本标签多为整数。在svm中其中如果为二分类,样本标签一般会设定为-1和1,而在朴素贝叶斯方法中,一般为0和1,但不是固定的,标签的设置和算法本身的性质有关的。如下面的整理的样本,1为正类,-1为反类(为了能便于展示,这里使用了一些即时聊天工具中的文本,里面的一些转载 2016-06-08 15:20:19 · 4534 阅读 · 0 评论 -
提高机器学习模型准确率的八大方法
导语提升一个模型的表现有时很困难。如果你们曾经纠结于相似的问题,那我相信你们中很多人会同意我的看法。你会尝试所有曾学习过的策略和算法,但模型正确率并没有改善。你会觉得无助和困顿,这是 90% 的数据科学家开始放弃的时候。 不过,这才是考验真本领的时候!这也是普通的数据科学家跟大师级数据科学家的差距所在。你是否曾经梦想过成为大师级的数据科学家呢? 如果是的话,你需要这 8 个经过证实的方法来转载 2016-09-08 21:49:13 · 3130 阅读 · 0 评论 -
信息增益,信息增益率,Gini
信息增益:首先,计算总系统的熵,然后,当某特征固定时,会将系统分成几个(此特征的可能值数目)子系统,分别计算每个子系统的熵,方法同上;而后,将几个子系统的熵加起来,便是“当不包含此特征”时系统的熵;最后,以上两个“包含”和“不包含”此特征情况下系统的熵的差值便是此特征的信息增益。Gini 系数:某个节点的Gini不纯度计算:比如,某节点A样本分属转载 2016-09-27 16:14:13 · 3233 阅读 · 0 评论 -
机器学习中的交叉验证(cross-validation)
交叉验证(Cross validation),交叉验证用于防止模型过于复杂而引起的过拟合.有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力(generalize转载 2016-10-13 13:54:36 · 6850 阅读 · 1 评论 -
scikit-learn使用joblib.dump()持久化模型过程中的问题详解--python
在机器学习过程中,一般用来训练模型的过程比较长,所以我们一般会将训练的模型进行保存(持久化),然后进行评估,预测等等,这样便可以节省大量的时间。在模型持久化过程中,我们使用scikit-learn提供的joblib.dump()方法,但是在使用过程中会出现很多问题。如我们使用如下语句:[python]view plaincopyjoblib.dump(clf,'../../da转载 2016-10-13 17:44:04 · 27549 阅读 · 2 评论 -
AUC简介
AUC是一种用来度量分类模型好坏的一个标准。 ROC分析是从医疗分析领域引入了一种新的分类模型performance评判方法。 ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一个画在二维平面上的曲线——ROC curve。平面的横坐标是false positive rate(FPR),纵坐标是true原创 2016-10-25 11:11:47 · 1619 阅读 · 0 评论 -
短文本分类工具 TextGrocery
>>> fromtgrocery importGrocery# 新开张一个杂货铺,别忘了取名!>>> grocery =Grocery('sample')# 训练文本可以用列表传入>>> train_src =[ ('education', '名师指导托福语法技巧:名词的复数形式'), ('转载 2016-11-07 19:49:11 · 3708 阅读 · 0 评论 -
Gradient Boosting Classifier sparse matrix issue using pandas and scikit
I have been using the following code to do multiclass classification which uses GradientBoostingClassifier from scikit-learn. I am facing a known issue with sparse matrix Conversion to dense matrix.转载 2016-10-19 16:17:18 · 1827 阅读 · 2 评论 -
GBDT(MART) 迭代决策树入门教程 | 简介
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力(g转载 2016-11-02 15:47:08 · 327 阅读 · 0 评论 -
机器学习算法总结
朴素贝叶斯: 有以下几个地方需要注意: 1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。 2. 计算公式如下: 其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是 的计算方法,而由朴素贝叶斯的前提假设可知, = ,因转载 2016-11-02 17:49:45 · 1183 阅读 · 0 评论 -
jieba(结巴)分词种词性简介
jieba为自然语言语言中常用工具包,jieba具有对分词的词性进行标注的功能,词性类别如下:Ag形语素形容词性语素。形容词代码为 a,语素代码g前面置以A。a形容词取英语形容词 adjective的第1个字母。ad副形词直接作状语的形容词。形容词代码 a和副词代原创 2016-12-06 15:13:32 · 35353 阅读 · 0 评论 -
Python 文本挖掘:jieba中文分词和词性标注
转自:http://rzcoding.blog.163.com/blog/static/222281017201310155331241/jieba 分词:做最好的Python 中文分词组件。这是结巴分词的目标,我相信它也做到了。操作简单,速度快,精度不错。而且是Python 的库,这样就不用调用中科院分词ICTCLAS了。妈妈再也不用担心我不会分词啦。jieba转载 2016-12-06 15:18:15 · 6323 阅读 · 0 评论 -
python 结巴分词(jieba)学习
转自:http://www.gowhich.com/blog/147源码下载的地址:https://github.com/fxsjy/jieba演示地址:http://jiebademo.ap01.aws.af.cm/特点1,支持三种分词模式: a,精确模式,试图将句子最精确地切开,适合文本分析; b,全模式,把句子中所有的可以成词的词语转载 2016-12-06 18:51:12 · 1220 阅读 · 0 评论 -
先验概率、后验概率、最大似然估计(MLE)
本文假设大家都知道什么叫条件概率了(P(A|B)表示在B事件发生的情况下,A事件发生的概率)。先验概率和后验概率教科书上的解释总是太绕了。其实举个例子大家就明白这两个东西了。假设我们出门堵车的可能因素有两个(就是假设而已,别当真):车辆太多和交通事故。堵车的概率就是先验概率 。那么如果我们出门之前我们听到新闻说今天路上出了个交通事故,那么我们想算一下堵车的概率,转载 2016-04-25 09:30:53 · 1531 阅读 · 0 评论 -
机器学习中数据归一化和两种常用的归一化方法
机器学习、数据挖掘工作中,数据前期准备、数据预处理过程、特征提取等几个步骤几乎要花费数据工程师一半的工作时间。同时,数据预处理的效果也直接影响了后续模型能否有效的工作。然而,目前的大部分学术研究主要集中在模型的构建、优化等方面,对数据预处理的理论研究甚少,可以说,很多数据预处理工作仍然是靠工程师的经验进行的。从业数据建模/挖掘工作也有近2年的时间,在这里结合谈一谈数据预处理中归一化方法。在转载 2016-05-09 14:07:09 · 17776 阅读 · 1 评论 -
k近邻算法(KNN)及kd树简介(KD-Tree)
在使用k近邻法进行分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决的方式进行预测。由于k近邻模型的特征空间一般是n维实数向量,所以距离的计算通常采用的是欧式距离。关键的是k值的选取,如果k值太小就意味着整体模型变得复杂,容易发生过拟合,即如果邻近的实例点恰巧是噪声,预测就会出错,极端的情况是k=1,称为最近邻算法,对于待预测点x,与x最近的点决定了x的类别。k值得增大意味着整体的转载 2016-04-24 17:40:19 · 21195 阅读 · 5 评论 -
机器学习中的归一化问题
针对这个问题参考了wiki的解释: http://en.wikipedia.org/wiki/Feature_scaling。归一化后有两个好处:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度”。1 归一化为什么能提高梯度下降法求解最优解的速度?斯坦福机器学习视频做了很好的解释: https://class.coursera.org/ml-003/lecture转载 2016-05-10 09:20:27 · 3167 阅读 · 0 评论 -
机器学习中正则化方法简介:L1和L2正则化(regularization)、数据集扩增、dropout
正则化方法:防止过拟合,提高泛化能力在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。为了防止overfitting,可以用的方转载 2016-05-11 10:51:35 · 2406 阅读 · 0 评论 -
随机森林总结
1、什么是随机森林?随机森林是一种多功能的机器学习算法,能够执行回归和分类的任务。同时,它也是一种数据降维手段,用于处理缺失值、异常值以及其他数据探索中的重要步骤,并取得了不错的成效。另外,它还担任了集成学习中的重要方法,在将几个低效模型整合为一个高效模型时大显身手。在随机森林中,我们将生成很多的决策树,并不像在CART模型里一样只生成唯一的树。当在基于某些属性对一个新的对象进行分原创 2016-05-25 23:07:33 · 4403 阅读 · 0 评论 -
随机森林算法
1. 随机森林使用背景1.1 随机森林定义随机森林是一种比较新的机器学习模型。经典的机器学习模型是神经网络,有半个多世纪的历史了。神经网络预测精确,但是计算量很大。上世纪八十年代Breiman等人发明分类树的算法(Breiman et al. 1984),通过反复二分数据进行分类或回归,计算量大大降低。2001年Breiman把分类树组合成随机森林(Breiman 2001a)转载 2016-05-26 08:36:04 · 2951 阅读 · 0 评论 -
Random Forest 随机森林
1 什么是随机森林?作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。最初,我是在参加校外竞赛时接触到随机森林算法的。最近几年的国内外大赛,包括2013年百度校园电影推荐系统大赛、2014年阿里巴巴天池大数据转载 2016-05-26 08:59:36 · 2345 阅读 · 0 评论 -
机器学习:最小二乘法和梯度下降法
一.背景 5月9号到北大去听hulu的讲座《推荐系统和计算广告在视频行业应用》,想到能见到传说中的项亮大神,特地拿了本《推荐系统实践》求签名。讲座开始,主讲人先问了下哪些同学有机器学习的背景,我恬不知耻的毅然举手,真是惭愧。后来主讲人在讲座中提到了最小二乘法,说这个是机器学习最基础的算法。神马,最基础,我咋不知道呢! 看来以后还是要对自己有清晰认识。 回来赶紧上百度,搜转载 2016-05-13 11:17:24 · 3589 阅读 · 0 评论 -
AdaBoost与随机森林 简单区别
AdaBoost首先明确一个大方向:强可学习和弱可学习是等价的。所以,弱可学习方法可以提升为强可学习方法。AdaBoost最具代表性。对于提升方法,有两个问题需要回答:每一轮如何改变训练数据的权值或概率分布?如何将弱分类器组合成一个强分类器?AdaBoost的做法:提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。加权多数表决的方法转载 2016-05-28 19:48:40 · 7677 阅读 · 0 评论 -
AdaBoost算法简介
boosting方法有许多不同的变形。其中最流行的一种就是AdaBoost方法,这个名称是“adaptive boosting”的缩写。这个方法允许设计者不断地加入新的“弱分类器”,直到达到某个预定的足够小的误差率【便于通过扩展来提高分类效果】。在AdaBoost方法中,每一个训练样本都被赋予一个权重,表明它被某个分类分类器选入训练集的概率。如果某个样本点已经被准确分类,那么在构造下一个训练集中,转载 2016-05-28 20:11:31 · 712 阅读 · 0 评论 -
Adaboost 算法的原理与推导(笔记)
0 引言 一直想写Adaboost来着,但迟迟未能动笔。其算法思想虽然简单“听取多人意见,最后综合决策”,但一般书上对其算法的流程描述实在是过于晦涩。昨日11月1日下午,邹博在我组织的机器学习班第8次课上讲决策树与Adaboost,其中,Adaboost讲得酣畅淋漓,讲完后,我知道,可以写本篇博客了。 无心啰嗦,本文结合邹博之决策树与Adaboost 的PPT 跟《统计转载 2016-05-28 20:31:52 · 869 阅读 · 0 评论 -
机器学习算法汇总
学习方式根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。监督式学习:在监督式学习下,输入数据被称为“训练数据”,每组训练数据转载 2016-05-29 10:24:55 · 588 阅读 · 0 评论 -
Apriori算法简介---关联规则的频繁项集算法
由啤酒和尿布引出:在一家超市中,人们发现了一个特别有趣的现象:尿布与啤酒这两种风马牛不相及的商品居然摆在一起。但这一奇怪的举措居然使尿布和啤酒的稍量大幅增加了。这可不是一个笑话,而是一直被商家所津津乐道的发生在美国沃尔玛连锁超市的真实案例。原来,美国的妇女通常在家照顾孩子,所以她们经常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。这个发现为商家带来转载 2016-05-29 11:10:23 · 68331 阅读 · 3 评论 -
最小二乘法以及最小二乘法和梯度下降法的区别
一、背景先看下百度百科的介绍:最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。 通过这段描述可以看出来,最小二乘法也是一种优化方法,求得目标函数的转载 2016-05-29 14:33:58 · 10537 阅读 · 3 评论 -
SVM多分类问题,解决方案
SVM实现多分类的三种方案SVM本身是一个二值分类器 SVM算法最初是为二值分类问题设计的,当处理多类问题时,就需要构造合适的多类分类器。 目前,构造SVM多类分类器的方法主要有两类 (1)直接法,直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。这种方法看似简单,但其计算复杂度比较高,实现起来转载 2016-04-17 20:55:12 · 4223 阅读 · 0 评论 -
梯度下降法详解
1 基本概念1)定义梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小。梯度下降法是2范数下的最速下降法。 最速下降法的一种简单形式是:x(k+1)=x(k)-a*g(k),其中a称为学习速率,可以是较小的常数。g(k)是x(k)的梯度。梯度其实就是函数的偏导数。2)举例对于函数z=f(x,y),转载 2016-05-29 15:46:00 · 9870 阅读 · 0 评论 -
正则化详解
1还是来看预测房价的这个例子,我们先对该数据做线性回归,也就是左边第一张图。如果这么做,我们可以获得拟合数据的这样一条直线,但是,实际上这并不是一个很好的模型。我们看看这些数据,很明显,随着房子面积增大,住房价格的变化趋于稳定或者说越往右越平缓。因此线性回归并没有很好拟合训练数据。我们把此类情况称为欠拟合(underfitting),或者叫作叫做高偏差(bias)。转载 2016-05-31 11:20:25 · 3353 阅读 · 0 评论 -
S折交叉验证 简介
思路:第1步,将数据等分到s份。第2步,下列步骤重复s次。(1)每一次迭代中留存其中一份数据。第一次迭代中留存第1份,第二次留存第2份,其余依此类推,第i次留存第i份。(2)用其他s-1份数据的信息作为训练数据,训练分类器(第一次迭代中利用从第2份到第s份的信息进行训练分类器)。(3)利用留存的数据作为测试数据,来测试分类器并保存测试结果原创 2016-04-24 10:58:13 · 3348 阅读 · 0 评论 -
向量范数和矩阵范数
1、向量范数1-范数:,即向量元素绝对值之和,matlab调用函数norm(x, 1) 。2-范数:,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,matlab调用函数norm(x, 2)。∞-范数:,即所有向量元素绝对值中的最大值,matlab调用函数norm(x, inf)。-∞-范数:,即所有向量元素绝对值中的最小转载 2016-04-24 11:05:42 · 867 阅读 · 0 评论 -
近似最近邻算法查找(ann)--01
Ann, Approximate Nearest Neighbor的缩写,就是近似最近邻搜索。在机器学习领域,语义检索,图像识别,推荐系统等方向常涉及到的一个问题是:给定一个向量X=[x1,x2,x3...xn],需要从海量的向量库中找到最相似的前K个向量。通常这些向量的维度很高,对于在线服务,用传统的方法查找是非常耗时的,容易使得时延上成为瓶颈,因此业界通用的方式就是将最相似的查找转换成An...转载 2019-09-27 10:50:00 · 4444 阅读 · 0 评论