
Machine Learning&&Data Mining
文章平均质量分 59
bigface1234fdfg
贴在地上过日子,有个好处就是,摔也摔不到哪儿去。
展开
-
分类树和回归树的区别
分类树 以C4.5分类树为例,C4.5分类树在每次分枝时,是穷举每一个feature的每一个阈值,找到使得按照feature<=阈值,和feature>阈值分成的两个分枝的熵最大的阈值(熵最大的概念可理解成尽可能每个分枝的男女比例都远离1:1),按照该标准分枝得到两个新节点,用同样方法继续分枝直到所有人都被分入性别唯一的叶子节点,或达到预设的终止条件,若最终叶子节点中的性别不唯一,则以多数人的性别原创 2015-03-24 16:16:56 · 36523 阅读 · 2 评论 -
复习机器学习算法:贝叶斯分类器
朴素贝叶斯算法是寻找一个极大后验假设(MAP),即候选假设的最大后验概率。 如下:在朴素贝叶斯分类器中,假设样本特征之间是独立的,则有:计算每个假设的后验概率,选出最大的概率,对应的类别就是样本的分类结果。 优缺点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。当时,需要样本的特征之间独立性较高,不能有太多的相关性。对输入数据的表达形式很敏原创 2015-03-02 09:44:16 · 971 阅读 · 0 评论 -
Stanford机器学习课程笔记——单变量线性回归和梯度下降法
Stanford机器学习课程笔记——单变量线性回归和梯度下降法 1. 问题引入 单变量线性回归就是我们通常说的线性模型,而且其中只有一个自变量x,一个因变量y的那种最简单直接的模型。模型的数学表达式为y=ax+b那种,形式上比较简单。Stanford的机器学习课程引入这个问题也想让我们亲近一下machine learning这个领域吧~吴恩达大神通过一个房屋交易的问原创 2015-01-23 11:27:44 · 2304 阅读 · 1 评论 -
Stanford机器学习课程笔记——多变量线性回归模型
Stanford机器学习课程笔记——多变量线性回归模型 1. 多变量线性回归模型引入 前面一篇中学习了单变量的线性回归模型,那么自然就会想到多变量线性回归模型,以及非线性模型。这篇我们就学习。 其实,前面的单变量,顾名思义就是样本的特征只有1个,那么多变量就是样本的特征有多个。同样是前面的房屋价格的例子,吴恩达大叔给出了多变量的例子,如下:原创 2015-01-23 14:32:17 · 4706 阅读 · 0 评论 -
调用python的sklearn实现Logistic Reression算法
调用python的sklearn实现Logistic Reression算法 先说如何实现,其中的导入数据库和类、方法的关系,之前不是很清楚,现在知道了。。。 from numpy import * from sklearn.datasets import load_iris # import datasets# load the dataset原创 2015-01-21 18:10:20 · 29592 阅读 · 1 评论 -
文档摘要自动提取算法——抽取式
文档摘要自动提取算法——抽取式 自动提取文档摘要的算法,主流方法分为两类:Extractive 抽取式、Abstractive 概要式。这篇我们主要将抽取式。抽取式: 从原始文档集中抽取一些具有代表性的文本片段构成摘要,这些片段可以是整个文档中的句子、子句、段落或者小节。 抽取式方法有两个问题,如何对文本单元排序打分;如何抽取文本单元的原创 2015-02-09 11:15:43 · 12951 阅读 · 1 评论 -
再理解RankNet算法
再理解RankNet算法 前面的一篇博文介绍了学习排序算法(Learning to Rank)中的RankNet算法。如下:http://blog.youkuaiyun.com/puqutogether/article/details/42124491 那次的入门对其中的算法流程和基本原理没有深入了解,这次看自动摘要提取算法的时候,里面有一个排序单元,使用到的原创 2015-02-09 09:44:09 · 7513 阅读 · 1 评论 -
协同过滤算法简介
协同过滤算法简介 协同过滤算法在推荐系统算法领域中也已经被研究了许多年,提出了不少的方法,我们就来把这些算法归类一下。 协同过滤方法的一个基本假设就是,如果用户A和用户B在一些物品偏好上,具有相似的历史标注模式或者行为习惯,那么他们在其余项目上都具有一定相似的兴趣。 协同过滤算法主要分为两大类:基于内存的方法、基于模型的方法。而协同过滤算法原创 2015-02-05 14:57:41 · 2125 阅读 · 0 评论 -
协同过滤算法——入门
协同过滤算法——入门 协同过滤算法(Collaborative Filtering, CF)是推荐系统算法中的重头,也是推荐系统算法的入门必备,这篇我们入门一下,主要说它的两大分支:基于用户的协同过滤算法(user based CF);基于物品的协同过滤算法(item based CF)。1. 基于用户的协同过滤算法 这类方法的基原创 2015-02-05 10:32:42 · 1645 阅读 · 1 评论 -
理解随机森林
理解随机森林 随机森林利用随机的方式将许多决策树组合成一个森林,每个决策树在分类的时候投票决定测试样本的最终类别。下面我们再详细说一下随机森林是如何构建的。随机森林主要包括4个部分:随机选择样本;随机选择特征;构建决策树;随机森林投票分类。原创 2014-12-11 11:23:59 · 2868 阅读 · 1 评论 -
复习机器学习算法:决策树
决策树就是不断选择信息增益最大的属性,进行分类。核心部分是使用信息增益判断属性的分类性能。信息增益计算如下:信息熵:允许有多个类别。计算所有属性的信息增益,选择最大的作为决策树的根节点。然后,样本分枝,继续判断剩余的属性的信息增益。 信息增益有缺点:信息增益偏袒具有较多值的属性。分裂信息,用增益比率作为衡量标准,如下: 决策树原创 2015-03-02 11:39:47 · 1147 阅读 · 0 评论 -
复习机器学习算法:SVM
SVM的本质是寻找最大间隔的分割超平面。SVM的假设也是在样本的每个属性前面乘以一个系数,代价函数是基于LR演化而来的。LR中是S型函数的假设,SVM中是分段函数cost的形式,再包括正则项,最后SVM的代价函数为: 当C一般要设置地很大,这样子的SVM才能够找到最大间隔的超平面,thetaT*x>=1或者thetaT*x我们构建拉格朗日函数:分别对原创 2015-03-05 10:34:18 · 1416 阅读 · 0 评论 -
深入解析python版SVM源码系列(四)——SMO算法是如何更新的?
SMO算法在SVM源码中的更新步骤是最为重要的,如下:#是否可以继续优化 if ((labelMat[i]*Ei < -toler) and (alphas[i] < C)) or ((labelMat[i]*Ei > toler) and (alphas[i] > 0)): j = selectJrand(i,m) # 随机选择第j个样本原创 2015-03-24 10:50:41 · 2418 阅读 · 1 评论 -
深入解析python版SVM源码系列(三)——计算样本的预测类别
系列(二)中,对于SMO算法中有一个重要的代码:计算样本的预测类别。如下:fXi = float(multiply(alphas,labelMat).T*(dataMatrix*dataMatrix[i,:].T)) + b # 第i样本的预测类别我们知道原始的预测类别计算公式是用决策面的参数w和b表示的,那么为什么这里的貌似不一样呢? 原始的预测类别计算公式为: 其中w可以表示为: 然后分原创 2015-03-24 09:54:50 · 3217 阅读 · 0 评论 -
理解GBDT算法(三)——基于梯度的版本
上一篇中我们讲到了GBDT算法的第一个版本,是基于残差的学习思路。今天来说第二个版本,可以说这个版本的比较复杂,涉及到一些推导和矩阵论知识。但是,我们今天可以看到,两个版本之间的联系,这个是学习算法的一个重要步骤。这篇博文主要从下面这几个方面来说基于梯度的GBDT算法: (1)算法的基本步骤; (2)其中的学数学推导; (3)基于梯度的版本和基于残差的版本之间的联系;在讲解算法的详细步骤之前,原创 2015-03-31 16:13:42 · 12517 阅读 · 10 评论 -
深入解析python版SVM源码系列(二)——简化版SMO算法
SVM使用SMO算法来解决其中涉及到的二次规划问题。一个简单版本的SMO算法的实现如下:'''随机选择随机数,不等于J'''def selectJrand(i,m): j=i #we want to select any J not equal to i while (j==i): j = int(random.uniform(0,m)) # 一直在挑选随机原创 2015-03-23 15:57:54 · 5787 阅读 · 4 评论 -
深入解析python版SVM源码系列(一)——添加数据库和绘制效果图
这部分的代码是python版实现SVM分类器的源码,采集于《Machine Learning in Action》的作者公布代码。本文的工作就是深入解析为什么这样实现SVM,以及其中涉及到的python函数。 这部分的源码如下:'''Created on Nov 22, 2010@author: Peter'''from numpy import *import matplotlibim原创 2015-03-23 10:56:18 · 3736 阅读 · 1 评论 -
理解GBDT算法(二)——基于残差的版本
GBDT算法有两种描述思路,一个是基于残差的版本,一个是基于梯度gradient的版本。这篇我们先说说基于残差的版本。前面一篇博文已经说了该版本的大致原理,请参考。 http://blog.youkuaiyun.com/puqutogether/article/details/41957089这篇我们再总结一个几个注意点:这个版本的核心思路:每个回归树学习前面树的残差,并且用shrinkage把学习到的结果原创 2015-03-30 16:18:41 · 8403 阅读 · 1 评论 -
复习机器学习算法:Boosting
Boosting的思想是集成学习,把许多个弱分类器结合起来,构成一个强分类器。 首先输入原始的训练样本,得到一个弱分类器,可以知道它的正确率和错误率。计算该弱分类器的权重,如下:然后提高错误分类样本的权重,让后面的分类器focus它们,调整样本的权重:如果原本分类正确:如果样本分类错误: 把新的样本输入到后面学习,重复这个过程,得到许多个弱分类器,及其分类器原创 2015-03-05 10:40:33 · 1467 阅读 · 0 评论 -
复习机器学习算法:线性回归
Logistic回归用来分类,线性回归用来回归。 线性回归是把让样本的属性前面加系数,相加。代价函数是误差平方和形式。所以,在最小化代价函数的时候,可以直接求导,令导数等于0,如下: 也可以使用梯度下降法,学习的梯度和Logistic回归形式一样。 线性回归的优点:计算简单。缺点:不好处理非线性数据。原创 2015-03-05 10:31:07 · 1372 阅读 · 0 评论 -
复习机器学习算法:Logistic 回归
区别于线性回归,不是把每个特征直接乘以系数,而是用一个S型函数(Logistic函数)。如下:使用这种形式函数的原因(概率、求导)。 代价函数,也不是线性回归中的误差平方和,而是基于对数似然函数,如下: 单个样本的后验概率为:(y = 0, 1) 类似于二项分布的概率密度函数。整个样本集的后验概率:对数似然函数对于代价函数,如下: 梯度下降法原创 2015-03-05 10:03:49 · 1058 阅读 · 0 评论 -
Python实现KNN算法
Python实现KNN算法 KNN算法的实际用处很多,主要用于分类阶段,是一个基础的分类算法。KNN主要基于距离的计算,一般可以在原始的欧氏空间中计算样本之间的距离。改进版本有:先特征提取到一个更加鉴别的空间中,然后计算距离;或者先使用metric learning度量学习的技术来获得一个鉴别的度量空间,然后计算样本间的马氏距离。 不管怎么说,KNN在很多算法的分类阶段都可以用到,我们这里用python实现KNN。原创 2015-01-16 16:16:13 · 2116 阅读 · 0 评论 -
PLSA模型的再理解以及源码分析
PLSA模型的再理解以及源码分析 之前写过一篇PLSA的博文,其中的收获就是知道PLSA是LSA在概率层面的扩展,知道了PLSA是一种主题模型,知道了PLSA中的参数估计使用的是EM算法。当时我就认为,这样子经典好用的算法,我是会回头再来理解它的,这样子才会有更加深刻的心得。所以有了这篇PLSA模型的再理解。1. 两种思路解PLSA模型 参考了很多原创 2015-01-30 17:48:58 · 4923 阅读 · 2 评论 -
理解谱聚类
前面介绍过K-means聚类方法,这个方法简单易懂,主要在于如何定义距离计算公式(一般使用欧氏距离),如何选择K值,这两个问题。这次我们介绍谱聚类,它是K-means的升级版。我们计划从这样几个方面介绍谱聚类:K-measn聚类有什么缺点?谱聚类的基本思想,以及谱聚类的算法步骤。原创 2014-12-04 13:37:54 · 2576 阅读 · 1 评论 -
理解SVM(二)——线性不可分的情况
理解SVM(二)——线性不可分的情况 前面一篇介绍了SVM的原创 2014-11-20 11:06:28 · 32736 阅读 · 2 评论 -
理解SVM(一)——入门SVM和代码实现
这篇博客我们来理解一下SVM。其实,之前好多大牛的博客已经对SVM做了很好的理论描述。例如优快云上july的那篇三层境界介绍SVM的博文,连接如下:http://blog.youkuaiyun.com/v_july_v/article/details/7624837那么我这里抛去一些复杂的公式推导,给出一些SVM核心思想,以及用Python实现代码,再加上我自己的理解注释。原创 2014-10-08 15:55:52 · 21372 阅读 · 5 评论 -
Scikit-Learn学习笔记——Ordinary Least Squares
Scikit-Learn学习笔记——线性模型原创 2014-10-23 16:18:02 · 5092 阅读 · 0 评论 -
关联分析算法
关联分析算法原创 2014-10-16 11:14:33 · 4308 阅读 · 0 评论 -
K均值聚类——如何提高聚类的性能
K均值聚类——如何提高聚类的性能 我们原创 2014-10-14 15:22:24 · 2809 阅读 · 0 评论 -
Adaboost算法
基于多分类器Adaboost的问题相似度匹配算法IntroductionAdaboost是一种分类器,核心思想就是针对同一个训练集,训练不同的弱分类器,然后把这些弱分类器集合起来,构成一个强分类器。Adaboost算法本身是通过改变数据分布来实现的,它根据每次训练集之中,每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权重。将修改过的权重的新数据集送给下层分类器进行原创 2014-09-27 17:24:06 · 1379 阅读 · 0 评论 -
Scikit-Learn学习笔记系列
Scikit-Learn学习笔记系列关于Python中的e原创 2014-11-03 14:51:57 · 1431 阅读 · 0 评论 -
贝叶斯学习
贝叶斯学习的基础是其遵循某种概率分布,根据这些概率及已观察到的数据进行推理,以做出最优的决策。贝叶斯学习的特性:观察到的每个训练样本都可以增量地降低或升高某假设的估计概率。而其他算法会在某个假设与任一样本不一致的时候完全去掉该假设;先验知识可以与观察数据一起决定假设的最终概率。这里的先验知识可以是每个候选假设的先验概率,以及每个可能假设在可观察数据上的概率分布;贝叶斯学习可允许假设原创 2014-09-27 16:13:02 · 2203 阅读 · 0 评论 -
初窥决策树中的ID3和C4.5
初窥决策树中的ID3和C4.5虽说教研室机器学习中,原创 2014-05-10 10:19:33 · 1251 阅读 · 0 评论 -
理解GBDT算法(一)——理论
这篇讲到的GBDT的基本思想是“积跬步以至千里”!也就是说我每次都只学习一点,然后一步步的接近最终要预测的值(完全是gradient的思想~)。换句话来说,我们先用一个初始值来学习一棵决策树,叶子处可以得到预测的值,以及预测之后的残差,然后后面的决策树就要基于前面决策树的残差来学习,直到预测值和真实值的残差为零。最后对于测试样本的预测值,就是前面许多棵决策树预测值的累加。整个过程都是每次学习一点(真实值的一部分),最后累加,所以叫做“积跬步以至千里”!原创 2014-12-16 10:32:18 · 30062 阅读 · 8 评论 -
理解SVM(三)——扩展到多类
前面两个系列分别讲诉了SVM的基本原理和代码实现,如何解决线性不可分情况。这一次我们讲解一下SVM的最后一篇:SVM解决多类分类问题。原创 2014-12-02 15:44:46 · 4942 阅读 · 0 评论 -
理解线性回归(三)——岭回归Ridge Regression
Scikit-Learn学习笔记——岭回归Ridge Regression原创 2014-11-06 16:52:51 · 16743 阅读 · 0 评论 -
Stanford机器学习课程笔记——SVM
Stanford机器学习课程笔记——SVM 前面已经学习过SVM,写了几片博文,如下:入门SVM:http://blog.youkuaiyun.com/puqutogether/article/details/39894835SVM中的线性不可分情况:http://blog.youkuaiyun.com/puqutogether/article/details/41309745SVM中的原创 2015-01-29 12:12:02 · 1539 阅读 · 0 评论 -
Stanford机器学习课程笔记——神经网络学习
Stanford机器学习课程笔记——神经网络学习 前面引入了神经网络的概念,也说了如何通过输入层、中间层和输出层来表示一个神经网络,也说了如何通过前向传递来得到每一层的元素,最后可以得到输出层的假设。 这一篇中,我们来学习如何通过神经网络来训练它,具体而言,如何通过代价函数来学习每一层的每一个元素。 要完成神经网络的学习需要有如下两个步骤:1)原创 2015-01-28 14:45:46 · 1084 阅读 · 0 评论 -
理解线性回归(一)——回归的思想
回归的思想原创 2014-10-09 14:06:46 · 5438 阅读 · 0 评论 -
理解线性回归(四)——总结线性回归
Scikit Learning 学习笔记——总结线性回归原创 2014-11-07 10:50:13 · 4169 阅读 · 0 评论