自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACdreamer

欢迎关注知乎:https://www.zhihu.com/people/acdreamers/activities

原创 贝叶斯学习及共轭先验

今天的主要任务是来理解共轭先验。最近在研究主题模型,里面提到了这个,所以有必要学习和掌握。  Contents    1. 共轭先验的概念   2. Beta分布和伯努力分布   3. Dirichlet分布和多项式分布  1. 共轭先验的概念    在贝叶斯统计理论中,如果某个随机变量

2015-10-13 22:25:41 13829 4

原创 调度场算法与逆波兰表达式

本文的主要内容是如何求一个给定的表达式的值,具体思路就是先将普通算术的中缀表达式转化为后缀表达式,这一步用到的算法叫做调度场算法。然后对后缀表达式,也就是逆波兰表达式求值。题目:http://acm.hdu.edu.cn/showproblem.php?pid=3596代码:

2015-06-09 21:37:27 5489 3

原创 SlopOne推荐算法

在开源框架taste中有SlopOne的Java实现,效果不错。

2015-06-03 18:41:30 3810

原创 径向基(RBF)神经网络

RBF网络能够逼近任意非线性的函数。可以处理系统内难以解析的规律性,具有很好的泛化能力,并且具有较快的学习速度。当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢,比如BP网络。如果对于输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络,

2015-06-02 16:51:56 18694 2

原创 三种重要哈希介绍

一致性哈希算法是在1997年由麻省理工学院提出,设计的目标是为了解决因特网的热点问题。一致性哈希算法解决了在P2P环境中最为关键的问题,即如何在动态的网络拓扑中分布存储和路由。接下来详细讲述其原理并实现。 Contents   1. 算法简单介绍  2. 算法原理描述  3. 算法具体实现

2015-06-02 13:08:50 4600

原创 L2正则化方法

在机器学习中,无论是分类还是回归,都可能存在由于特征过多而导致的过拟合问题。当然解决的办法有   (1)减少特征,留取最重要的特征。  (2)惩罚不重要的特征的权重。 但是通常情况下,我们不知道应该惩罚哪些特征的权重取值。通过正则化方法可以防止过拟合,提高泛化能力。 先来看看L2正则化方法。对于之前梯度下降讲到的损失函数来说,在代价函数后面加上一个正则化项,得到

2015-05-30 12:51:00 20421

原创 多项式回归模型(Office Prices)

题目:https://www.hackerrank.com/challenges/predicting-office-space-price 分析:还是上次的房价预测题目,指明要用多项式回归拟合。在多元多项式拟合时候,目标函数表示如下            对其目标函数求偏导得到            很容易写出代码。 代码:#coding:ut

2015-05-28 21:00:31 6863

原创 房价预测(HackerRank)

从今天开始要多做一些关于机器学习方面的竞赛题目,题目来源主要是Hackerrank和Kaggle。

2015-05-23 21:50:36 5026

原创 KKT条件

在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。关于拉格朗日乘子法之前介绍过,不再赘述。详见:http://blog.csdn.net/acdreamers/article/details/41413445  接下来主要介绍

2015-04-21 15:05:03 4628 1

原创 协方差与协方差矩阵

本文讲的主要内容是协方差以及协方差矩阵。 在统计学中,我们见过的最基本的三个概念是均值,方差,标准差。假定给定了n个样本的集合,那么公式如下        均值是描述样本的平均值,标准差描述的是样本集合的各个点到均值距离的平均,体现了样本的散步程度。而方差仅仅是标准差的平方。  实际上,上述的方差是针对一维数据的情况进行统计描述。考虑这样一种情况:假设我们需

2015-04-21 14:39:10 3699

原创 蒙特卡洛算法

今天开始研究Sampling Methods,接下来会分为四部分进行讲解。本文是开篇文章,先来讲讲蒙特卡洛算法。  Contents    1. 蒙特卡洛介绍   2. 蒙特卡洛的应用   3. 蒙特卡洛积分   1. 蒙特卡洛介绍    蒙特卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的

2015-04-12 17:23:05 50003 4

原创 关于欧拉工程的一道递推题

今天来讲的是在欧拉工程上的一道递推题,题目描述如下链接。 题目:https://projecteuler.net/problem=492 当然,这道题在51Nod上有一个比较通用的版本,链接如下 题目:http://www.51nod.com/contest/problem.html#!problemId=1361 题意:给定,并且有,给定两个数和,求的值。其中

2015-04-11 20:26:53 3949 2

原创 协同过滤算法

今天要讲的主要内容是协同过滤,即Collaborative Filtering,简称CF。 Contents    1. 协同过滤的简介   2. 协同过滤的核心   3. 协同过滤的实现   4. 协同过滤的应用  1. 协同过滤的简介    关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那

2015-03-30 00:13:37 63325 16

原创 L-BFGS算法

前面的文章中,讲述过BFGS算法,它是用来求解最优化问题的,在这个算法中,相对于普通的牛顿迭代法有很大的改进。链接:http://blog.csdn.net/acdreamers/article/details/44664941。在BFGS算法中,仍然有缺陷,比如当优化问题规模很大时,矩阵的存储和计算将变得不可行。为了解决这个问题,就有了L-BFGS算法。  Contents

2015-03-29 18:12:23 22728 3

原创 FaceBook机器学习开源DL模块

据GIGAOM报道,近日,Facebook人工智能研究院(FAIR)开源了一系列软件库,以帮助开发者建立更大、更快的深度学习模型。开放的软件库在Facebook被称作模块。用它们替代机器学习领域常用的开发环境Torch中的默认模块,可以在更短的时间内训练更大规模的神经网络模型。 如果想了解更多的内容,可以参考下面的一些文章。 1. Facebook开源深度学习软件库,帮助开

2015-03-27 02:03:17 3021

原创 BFGS算法

今天,我来讲一种在机器学习中常用到的优化算法,叫做BFGS算法。BFGS算法被认为是数值效果最好的拟牛顿法,并且具有全局收敛性和超线性收敛速度。那么接下来将会详细讲解。 Contents    1. 什么是拟牛顿法   2. 拟牛顿法原理   3. DFP算法原理   4. BFGS算法原理   5. BFGS算法的实现  1. 什么是拟牛顿法

2015-03-27 01:55:41 47015 12

原创 K-D树

K-D树,即K-Dimensional Tree,是一种高维索引树型数据结构。常用于大规模高维数据空间的最邻近或者K邻近查找,例如图像检索中高维图像特征向量的K邻近匹配,对KNN算法的优化等。 Contents    1. K-D树的基本原理   2. K-D树的改进(BBF算法)   3. K-D树的C++实现   4. K-D树的开源框架介绍  1.

2015-03-27 01:49:11 14519 2

原创 随机森林

前面介绍过决策树的三种实现:ID3算法,C4.5算法和CART算法。虽然这些决策树有很多优良的性质,比如训练时间复杂度较低,模型容易展示等等,但是同时单决策树有一些不好的地方,比如容易over-fitting,虽然剪枝可以减少这种现象的发生,但是还是不够的。为了减少决策树的不足,近年来又提出了许多模型组和+决策树的算法,这些算法都是生成N棵决策树,虽然这N棵树都很简单,但是它们综合起来

2015-03-27 01:45:12 7758 1

原创 决策树之C4.5算法

C4.5算法是机器学习中的一个重要的决策树算法,它是对ID3算法的改进,相对于ID3算法主要有以下几个改进   (1)用信息增益率来选择属性  (2)在决策树的构造过程中对树进行剪枝  (3)对非离散数据也能处理  (4)能够对不完整数据进行处理 接下来分别详细讲述这几点的改进方案 (1)用信息增益率来选择属性     在ID3算法中,我们知道是用信息增

2015-03-27 01:43:29 6856

原创 决策树之CART算法

在之前介绍过决策树的ID3算法实现,今天主要来介绍决策树的另一种实现,即CART算法。 Contents    1. CART算法的认识   2. CART算法的原理   3. CART算法的实现  1. CART算法的认识    Classification And Regression Tree,即分类回归树算法,简称CART算法,它是决策树的一种实

2015-03-27 01:38:05 72692 20

原创 布雷格曼散度

今天来讲一个比较重要的概念,叫做Bregman Divergence,即布雷格曼散度,是一种类似距离度量的方式,用于衡量两者之间差异的大小。接下来会重点进行探讨 Contents    1. 布雷格曼散度的认识   2. 布雷格曼散度的性质   3. 布雷格曼散度与指数分布族  1. 布雷格曼散度的认识    Bregman散度是损失或者失真函数。考

2015-03-27 01:28:49 9734

原创 KNN算法

KNN算法是机器学习里面常用的一种分类算法,假设一个样本空间被分为几类,然后给定一个待分类所有的特征数据,通过计算距离该数据的最近的K个样本来判断这个数据属于哪一类。如果距离待分类属性最近的K个类大多数都属于某一个特定的类,那么这个待分类的数据也就属于这个类。 Contents    1. KNN算法介绍   2. KNN算法的C++实现  1. KNN算法

2015-03-27 01:26:15 4005 2

原创 数据归一化处理

在机器学习中领域中的数据分析之前,通常需要将数据标准化,利用标准化后得数据进行数据分析。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。 Contents    1. 归一化的定义  

2015-03-27 01:22:46 17765

原创 交叉验证

今天来讲一种在机器学习中常用的精度测试方法,叫做交叉验证。它的目的是得到可靠稳定的模型,具体做法是拿出大部分数据进行建模,留小部分样本用刚刚建立的模型进行预测,并求出这小部分样本预测的误差,记录它们的平方和,这个过程一直进行,直到所有的样本都恰好被预测了一次,交叉验证在克服过拟合问题上非常有效。接下来介绍一些常用的交叉验证方法。  1. 10折交叉验证    10折

2015-03-27 01:12:57 11982

原创 非负矩阵分解(NMF)

通常的矩阵分解会把一个大的矩阵分解为多个小的矩阵,但是这些矩阵的元素有正有负。而在现实世界中,比如图像,文本等形成的矩阵中负数的存在是没有意义的,所以如果能把一个矩阵分解成全是非负元素是很有意义的。在NMF中要求原始的矩阵的所有元素的均是非负的,那么矩阵可以分解为两个更小的非负矩阵的乘积,这个矩阵有且仅有一个这样的分解,即满足存在性和唯一性。 Contents    1

2015-03-27 01:00:45 41319 8

原创 softmax回归

在上一篇文章中,讲述了广义线性模型。通过详细的讲解,针对某类指数分布族建立对应的广义线性模型。在本篇文章中,将继续来探讨广义线性模型的一个重要例子,它可以看成是Logistic回归的扩展,即softmax回归。 我们知道Logistic回归只能进行二分类,因为它的随机变量的取值只能是0或者1,那么如果我们面对多分类问题怎么办?比如要将一封新收到的邮件分为垃圾邮件,个人邮件,还是工作

2015-03-27 00:55:16 46316 17

原创 广义线性模型

今天我来介绍一种在机器学习中应用的比较多的模型,叫做广义线性模型(GLM)。这种模型是把自变量的线性预测函数当作因变量的估计值。在机器学习中,有很多模型都是基于广义线性模型的,比如传统的线性回归模型,最大熵模型,Logistic回归,softmax回归,等等。今天主要来学习如何来针对某类型的分布建立相应的广义线性模型。 Contents    1. 广义线性模型的认识

2015-03-27 00:49:27 37453 4

原创 最小二乘的概率解释

在线性回归中,我们以最小二乘来作为损失函数,然后使得这个损失函数的值最小。那么为什么会选择最小二乘而不是其它的指标呢? 今天就用概率方面的知识来解释。首先,设       其中是样本的误差纠正量。由于我们目的是训练出合适的参数,使得的绝对值尽量小,那么可以确定大部分的值集中在0附近,而少数值离0较远,很明显,这可以看成随机变量服从高斯分布。即       那

2015-03-27 00:48:01 3774 3

原创 局部加权回归

通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting),比如数据集是一个钟形的曲线。而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为它导致数据的过拟合(overfitting),不符合数据真实的模型。 今天来讲一种非参数学习方法,叫做局部加权回归(LWR)。为什么局部加权回归叫做非参数学习方法呢? 首先参数学习方法是

2015-03-27 00:46:27 10307

原创 矩阵求导解最小二乘问题

关于最小二乘问题的求解,之前已有梯度下降法,还有比较快速的牛顿迭代。今天来介绍一种方法,是基于矩阵求导来计算的,它的计算方式更加简洁高效,不需要大量迭代,只需解一个正规方程组。 在开始之前,首先来认识一个概念和一些用到的定理。矩阵的迹定义如下 一个的矩阵的迹是指的主对角线上各元素的总和,记作。即

2015-03-27 00:44:12 23638 16

原创 朴素贝叶斯分类

今天,我学习了朴素贝叶斯分类,接下来,我会详细讲述它的原理以及在文本分类中的应用。 Contents   1. 分类问题的定义  2. 贝叶斯定理  3. 贝叶斯分类原理  4. 特征属性划分的条件概率及Laplace校准  5. 贝叶斯文本分类实例  1. 分类问题的定义    已知集合和集合,确定映射规则,使得任意,有且   仅有一个使得

2015-03-27 00:40:47 4773 1

原创 文本特征属性选择

今天,来学习文本的特征属性选择,在机器学习中,特征属性的选择通常关系到训练结果的可靠性,一个好的特征属性通常能起到满意的分类效果。凡是特征选择,总是在将特征的重要程度量化后再进行选择,而如何量化特征的重要性,就成了各种方法间最大的不同。接下来就介绍如何有效地进行文本的特征属性选择。 Contents    1. TF-IDF与特征属性选择   2. 信息增益与特征属性选

2015-03-27 00:36:52 6560

原创 决策树之ID3算法

今天,我来讲解的是决策树。对于决策树来说,主要有两种算法:ID3算法和C4.5算法。C4.5算法是对ID3算法的改进。今天主要先讲ID3算法,之后会讲C4.5算法和随机森林等。 Contents      1. 决策树的基本认识     2. ID3算法介绍     3. 信息熵与信息增益     4. ID3算法的C++实现  1. 决策树的基本认识

2015-03-27 00:32:39 74281 19

原创 梯度下降法终极版

在之前的文章中,我用梯度下降法实现了Logistic回归,当时用的是批量梯度下降法,现在就来进一步了解梯度下降法的原理以及在机器学习中的应用。 常见的梯度下降法主要有两种:(1)批量梯度下降法  (2)随机梯度下降法 现在假设样本的个数为,对单个样本来说,有一个维的向量,代表这个样本的个特征,还有一个值为预测值,要拟合的函数设为,那么误差准则函数为      

2015-03-26 23:03:53 8504 4

原创 Logistic回归与牛顿迭代法

在上一篇文章中,我讲述了Logistic回归的原理以及它的梯度上升法实现。现在来研究Logistic回归的另一种实现,即牛顿迭代法。 在上篇文章中,我们求出Logistic回归的似然函数的偏导数为                由于是一个多元函数,变元是,多元函数求极值问题以前已经讲过,参考如下文章 链接:http://blog.csdn.net/acdream

2015-03-26 22:56:21 13118 3

原创 Logistic回归与梯度下降法

Logistic回归为概率型非线性回归模型,是研究二分类观察结果与一些影响因素之间关系的一种多变量分析方法。通常的问题是,研究某些因素条件下某个结果是否发生,比如医学中根据病人的一些症状来判断它是否患有某种病。 在讲解Logistic回归理论之前,我们先从LR分类器说起。LR分类器,即Logistic Regression Classifier。在分类情形下,经过学习后的LR分

2015-03-26 22:46:49 13229 6

原创 相对熵(KL散度)

今天开始来讲相对熵,我们知道信息熵反应了一个系统的有序化程度,一个系统越是有序,那么它的信息熵就越低,反之就越高。下面是熵的定义 如果一个随机变量的可能取值为,对应的概率为,则随机变量的熵定义为              有了信息熵的定义,接下来开始学习相对熵。 Contents    1. 相对熵的认识   2. 相对熵的性质   3. 相

2015-03-26 22:35:30 71891 8

原创 BP神经网络

今天来讲BP神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据挖掘等领域。接下来介绍BP神经网络的原理及实现。 Contents   1. BP神经网络的认识  2. 隐含层的选取  3. 正向传递子过程  4. 反向传递子过程  5. BP神经网络的注意点  6. BP神经网络的C++实现  1. BP神经

2015-03-26 22:28:25 166472 45

原创 Go语言的分词器(sego)

今天,主要来介绍一个Go语言的中文分词器,即sego。本分词器是由陈辉写的,他的微博在这里,github详见此处。由于之前他在Google,所以对Go语言特别熟悉。sego的介绍如下    sego是Go语言的中文分词器,词典用前缀树实现, 分词器算法为基于词频的最短路径加动态规划。   支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。

2015-03-26 22:15:49 5655

原创 SVD分解的并行实现

在之前的文章中,我对SVD进行了大致的了解,它在互联网高端领域中有广泛的应用,至于它的一些详细应用以后再进一步学习。现在主要的问题是如何有效地实现SVD分解,接下来我会先用两种方法来实现SVD分解,即基于双边Jacobi旋转的SVD和基于单边Jacobi旋转的SVD。 这两种方法重点参考中国知网上的一篇论文:《并行JACOBI方法求解矩阵奇异值的研究》 代码:#incl

2015-03-26 22:07:10 7066 10

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