自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

slx_share的博客

记录&分享&交流

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 支持向量机分类中的SMO算法以及Python实现

上一篇博客讲到支持向量机分类,而本文将介绍支持向量机分类最常用的学习算法序列最小最优化(SMO)。SMO算法是分解方法(decomposition method)的一种极端情况,即每次迭代的工作子集(working set)只含有两个变量。SMO算法存在多种不同的WSS(working set selection)启发式搜索准则。本文主要讲Platt(1999)年首次提出的SMO算法以及Fan(2...

2018-04-28 21:33:01 1598 1

原创 分类——支持向量机分类

上篇博客讲到感知机是支持向量机(SVM)的基础。支持向量机同样采用分离超平面(或超曲面)来分离正负样本,故支持向量机是二分类分类器。支持向量机是一个非常广泛的领域,不是一两篇博客就能说清楚的,本文简单说下支持向量机的分类原理。支持向量机按简单到复杂分为线性可分支持向量机、线性支持向量机以及非线性支持向量机。核心思想找到分离超平面(超曲面),使得距离超平面最近的点到超平面距离最大。...

2018-04-28 17:16:28 4127

原创 分类回归——感知机以及Python实现

感知机感知机(perceptron)是支持向量机的和神经网络的基础。优点是简单易实现,缺点是只能分离线性可分数据集, 否则不收敛,且感知机学习得到的分离超平面不是唯一解,会因为初始值的选择以及选择训练样本的次序而改变。核心思想建立分离超平面,将正负实例点划分到超平面的两侧模型输入到输出的函数:f(x)=sign(wx+b)f(x)=sign(wx+b)f(x)=sign(w...

2018-04-28 11:21:55 1203

原创 分类——组合算法之装袋:随机森林以及Python实现

前面的博客讲到装袋(bagging)是一种一次性综合多个基本分类器的预测结果,进行多数表决(分类)或取均值(回归)的组合算法。 装袋又称自助聚集:以均匀概率有放回从原训练数据集中挑选出与原数据集相同数量的样本作为当前基本分类器的训练数据集(自主样本集, 大约含有原数据集63.2%的样本),重复k次建立k个基本分类器。注意,自助样本集通常含有重复元素。算法简介随机森林(Random For...

2018-04-27 21:01:24 3117 4

原创 分类回归——组合算法之提升2:提升树以及Python实现

提升树是以分类树或回归树为基本分类器的提升算法。算法简介上一篇博客讲到,提升算法需要解决两个基本问题: 1. 更改训练数据集或更改训练数据集的权重,以便下一基本分类器预测。 2. 各个基本分类器之间如何线性组合 。 以CART回归树为例,其解决这两个问题的方法就是: 1. 以上一轮的组合树预测结果的残差作为当前的训练数据集y。 2. 对回归而言,平方误差逐渐减小,故对于基本...

2018-04-27 19:49:51 1543

原创 分类——组合算法之提升1:AdaBoost提升算法以及Python实现

组合算法(ensemble)核心思想:综合多个专家决策比单独一个专家决策要好。即“三个臭皮匠顶个诸葛亮”。这里的“专家”就是一个个的基本分类器。分类提升(boosting):顾名思义,逐渐加入“专家预测”,从而使预测更精准。是一个递进过程。即第i个基本分类器的预测是建立在第i-1个基本分类器之上的。所以,这种模型又被称为加法模型,相应的学习算法称为前向分步算法。 提升算法...

2018-04-27 17:27:33 1262

原创 分类——最大熵模型以及Python实现

最大熵模型是一种分类模型,常用于自然语言处理。优点是能充分考虑限制条件,缺点是非常耗时。核心思想满足既定事实情况下,模型对不确定部分的预测应该是等可能的,即熵最大。算法简介模型热力学中有熵增定理,意思是系统与外界隔离时,系统的熵将趋于增长。将这种思想应用到机器学习模型中,外界意味着约束,即既定的事实。那么模型只要满足既定的事实,其他不确定的部分就应该”熵增”,故熵最...

2018-04-26 17:31:50 6421 4

原创 Python可迭代对象(Iterable)、迭代器(Iterator)和生成器(generator)

Python可迭代对象(Iterable)、迭代器(Iterator)和生成器(generator)是三个不同的概念。 可迭代对象:实例化的类中含有__iter__函数 迭代器:实例化的类中含有__iter__以及__next__ 生成器:将一个函数变成生成器,只需在函数中加入 yield 关键字for循环实质上执行两个过程,__iter__调用,__next__获取。 这里注意一点:...

2018-04-25 10:51:51 593

原创 分类——Logistic回归与SoftMax回归以及Python实现

Logistic 回归逻辑斯谛回归实质上是一种分类算法。由于历史原因名称中带有“回归”二字。核心思想求解输入向量x属于正类和负类的概率,概率较大的即为预测类。属于正类的概率服从logistic分布。算法简介模型逻辑斯谛回归模型参数较少。与朴素贝叶斯相比,使用了属于正类的概率服从logisticf分布(逻辑函数)这一先验信息。即p(y=1|x)=11+e−wxp(...

2018-04-24 16:03:26 2332

原创 分类——朴素贝叶斯分类器以及Python实现

核心思想:根据训练数据获取模型的后验概率,对应后验概率越大的类即预测类。算法简介:模型:先验概率:p(y=Ck)p(y=Ck) p(y=C_{k})条件概率:p(X=x|y=Ck)p(X=x|y=Ck)p(X=x|y=C_{k}) 后验概率:p(y=Ck|X=x)p(y=Ck|X=x)p(y=C_{k}|X=x)$ 朴素的含义:输入向量x的各个维度间是相互独立的,...

2018-04-23 17:22:16 9006

原创 机器学习——极大似然估计与贝叶斯估计

学习朴素贝叶斯分类器时,接触到贝叶斯估计,查阅了很多资料,发现对贝叶斯估计这一名词的具体解释不一,故做如下梳理。极大似然估计极大似然估计是频率派提出的参数的点估计方法。 基于参数theta是固定的这一条件, 即使得当前数据集D出现概率最大的参数就是实际参数。 具体求解方法就是对似然函数求导。 贝叶斯估计贝叶斯估计是贝叶斯派提出的参数估计方法。可分为贝叶斯点估计,贝叶...

2018-04-23 16:08:33 4893

原创 分类——kd树与k近邻算法以及Python实现

kd树: kd树是一种树形数据结构。 构造kd树核心思想:依次对输入X的各个维度上的中位数为切分平面划分k维样本空间。 算法流程: *Input:样本数据集X *Output: kd树 *Step1: 初始化空树,以及构建所有维度的cycle迭代器。 *Step2: 求解当前维度上,数据的中位数,根据对应的样本点构建节点。然后依据该中位数建立分割平面,将数据集分割成左(小于中位数)右...

2018-04-20 20:50:32 531

原创 分类回归——CART分类与回归以及Python实现

CART分类与回归树本质上是一样的,构建过程都是逐步分割特征空间,预测过程都是从根节点开始一层一层的判断直到叶节点给出预测结果。只不过分类树给出离散值,而回归树给出连续值(通常是叶节点包含样本的均值),另外分类树基于Gini指数选取分割点,而回归树基于平方误差选取分割点。CART分类树:核心思想:以特征及对应特征值组成元组为切分点,逐步切分样本空间基本概念:基尼指数(Gini):样...

2018-04-18 16:54:25 10986 18

原创 分类——决策树ID3与C4.5以及Python实现

决策树算法是一个分类算法,ID3以及C4.5决策树是多叉树。核心思想:根据特征及对应特征值组成元组为切分点切分样本空间。基本概念:熵(entropy):该词最初来自于热力学,用来表示系统的混乱程度。香农借用该词表示一个随机过程的不确定性程度,即香农熵。式中Pi指随机变量取某个值的概率。条件熵(conditional entropy):给定一个划分数据的条件X=x,那么随...

2018-04-18 09:43:11 1385 2

原创 浅谈对统计机器学习的认识

        最早是在《数据处理与优化算法》课堂上接触到数据挖掘(Data Mining),接着自学Pang-Ning Tan et al.的《数据挖掘导论》入门数据挖掘。所以我先讲一下数据挖掘、机器学习(Machine Learning)和统计学(Statistics)的关系。个人理解是传统统计学往往是更加偏向于纯粹的数学,偏向于理论。机器学习偏向于数学与计算机的交叉,统计的理论往往需要通过机...

2018-04-16 15:01:48 10698

用Python写网络爬虫

作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用。使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站。, 《用Python写网络爬虫》作为使用Python来爬取网络数据的杰出指南,讲解了从静态页面爬取数据的方法以及使用缓存来管理服务器负载的方法。此外,本书还介绍了如何使用AJAX URL和Firebug扩展来爬取数据,以及有关爬取技术的更多真相,比如使用浏览器渲染、管理cookie、通过提交表单从受验证码保护的复杂网站中抽取数据等。本书使用Scrapy创建了一个高级网络爬虫,并对一些真实的网站进行了爬取。, 《用Python写网络爬虫》介绍了如下内容:, 通过跟踪链接来爬取网站;, 使用lxml从页面中抽取数据;, 构建线程爬虫来并行爬取页面;, 将下载的内容进行缓存,以降低带宽消耗;, 解析依赖于JavaScript的网站;, 与表单和会话进行交互;, 解决受保护页面的验证码问题;, 对AJAX调用进行逆向工程;, 使用Scrapy创建高级爬虫。, 本书读者对象, 本书是为想要构建可靠的数据爬取解决方案的开发人员写作的,本书假定读者具有一定的Python编程经验。当然,具备其他编程语言开发经验的读者也可以阅读本书,并理解书中涉及的概念和原理。

2018-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除