代码改变世界

随笔分类 -  机器学习

熵、信息增益以及其他

2014-03-09 18:28 by 夜与周公, 2048 阅读, 收藏, 编辑
摘要: 很长一段时间,都对熵、信息增益懵懵懂懂,一知半解。最近,正巧碰到研究决策树算法,于是乎,恶补了这方面的知识。 1.什么是熵(Entropy) 在信息论里面,熵是对不确定性的测量,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。熵度衡量了系统的不确定性,当我们缺乏对某个系统的知识,... 阅读全文

文本挖掘之特征选择(python 实现)

2013-08-15 10:32 by 夜与周公, 33334 阅读, 收藏, 编辑
摘要: 机器学习算法的空间、时间复杂度依赖于输入数据的规模,维度规约(Dimensionality reduction)则是一种被用于降低输入数据维数的方法。维度规约可以分为两类: 特征选择(feature selection),从原始的d维空间中,选择为我们提供信息最多的k个维(这k个维属于原始空间的子集)特征提取(feature extraction),将原始的d维空间映射到k维空间中(新的k维空间不输入原始空间的子集) 在文本挖掘与文本分类的有关问题中,常采用特征选择方法。原因是文本的特征一般都是单词(term),具有语义信息,使用特征选择找出的k维子集,仍然是单词作为特征,保留了语义信息... 阅读全文

文本挖掘之文本表示

2013-07-25 16:56 by 夜与周公, 10680 阅读, 收藏, 编辑
摘要: 当我们尝试使用统计机器学习方法解决文本的有关问题时,第一个需要的解决的问题是,如果在计算机中表示出一个文本样本。一种经典而且被广泛运用的文本表示方法,即向量空间模型(VSM),俗称“词袋模型”。 我们首先看一下向量空间模型如何表示一个文本: 空间向量模型需要一个“字典”:文本的样本集中特征词集合,这个字典可以在样本集中产生,也可以从外部导入,上图中的字典是[baseball, specs, graphics,..., space, quicktime, computer]。 有了字典后便可以表示出某个文本。先定义一个与字典长度相同的向量,向量中的每个位置对应字典中的相应位置的单词,比... 阅读全文

SVM学习资料

2013-06-21 17:29 by 夜与周公, 1999 阅读, 收藏, 编辑
摘要: SVM(support vector machine),被认为是“off-the-shelf”最好的监督机器学习算法之一,甚至很多人认为可以把“之一”去掉。SVM有着天然的intuition,大量的数学推导和优雅的解形式(有了大量的数学推导,自然就容易发paper啦)。实际上SVM在工业界也有着广泛的应用如,文本分类、图像分类、生物医学诊断和手写字符识别等。有关SVM资源非常之多,本文尝试总结一些比较好的SVM学习资源。 0.维基百科 如果想迅速的了解SVM一些基础概念,维基百科是一个不错的选择,SVM在维基百科的地址是:http://en.wikipedia.org/wiki/Sup... 阅读全文

logistic regression C++实现

2013-06-11 20:14 by 夜与周公, 5020 阅读, 收藏, 编辑
摘要: 在“逻辑斯特回归模型(logistic regression)”一文中阐述了logistic regression模型的理论基础,本节采用C++实现logistic regression。算法是由笔者跟我们老板一起合作完成(老板提供算法框架和理论上的支持,笔者编写代码,准备开源发布)。下面分数据结构、模型实现、模型训练、模型预测与usage五个部分介绍logistic regression模型的实现与用法。 1.数据结构/********************************************************************* Logistic Regre... 阅读全文

逻辑斯特回归模型(logistic regression)

2013-05-23 15:23 by 夜与周公, 8574 阅读, 收藏, 编辑
摘要: 本节开始线性分类器的另一种模型:模型斯特回归(logistic regression)。 在之前介绍的线性分类器中,h(x)=ΘTx+Θ0,如果h(x)>0,则样本x属于正类,否定x属于负类。直观上的认识,如何h(x)越大,我们更加确信样本属于正类,相应的,h(x)越小,我们更加确信样本属于负类,而h(x)在0之间徘徊,很难确信属于某一类。为了与概率统计知识想结合,可以将h(x)这种“值"上的特性映射到[0,1]之间,logistic 函数(又成sigmoid)函数,就是一个非常优越的选择,logistic 函数定义如下: 函数图象如下: 于是,我们的模型假设为: ... 阅读全文

朴素贝叶斯模型(NB model)

2013-05-08 16:58 by 夜与周公, 1627 阅读, 收藏, 编辑
摘要: 本节开始介绍第一个生成式模型:朴素贝叶斯模型(NB model)。生成式模型与判别式模型的区别在于,生成式模型对样本的联合分布建模: 因此我们需要求出样本的类别分布p(y)与,样本类概率分布p(x|y)。生成式模型的困难在于p(x|y)计算,有时我们很难去估计类概率分布。因此,我们会做出一些假设,Naive Bayes Assumption 是指:样本在给定类别的条件下,各个特征之间相互独立: 根据p(xi|y)分布的假设不同,我们可以分成两种假设模型:muti-variate Bernouli model 与 multinomial event model,以下将分两个部分介绍这两... 阅读全文

感知机算法C++实现

2013-05-06 13:14 by 夜与周公, 1441 阅读, 收藏, 编辑
摘要: 本节介绍感知机分类器的C++实现,其分类器实现框架会在后续的一些算法实现都会使用到。 1、类的设计 感知机类设计如下:View Code #pragma once#include <iostream>#include <fstream>#include <iomanip>#include <string>#include <vector>#include <set>#include <map>#include <algorithm>#include <cmath>#include < 阅读全文

多分类问题与多类感知机算法

2013-05-06 12:50 by 夜与周公, 4883 阅读, 收藏, 编辑
摘要: 本节延续线上节感知机算法,继续探讨多分类的线性感知机算法。 多分类问题首先可以看成是二元分类的一个拓展,具体的有两种方法:1.one vs rest;2.one vs one。 1.one vs rest 对于K(k>=3),我们可以用K-1个分类器,组合实现多分类: 这种方法被一些知名的开源工具支持实现(如Libsvm),绿色部分属于决策结果重叠部分,C1与C2均将其纳入决策区域。 2.one vs one 这种方法在每一类之间训练一个分类器,对于K分类问题需要训练(k-1)*k/2个二元分类器: 这种方法,可能会产生决策模糊区域,如上图绿色标记的区域无法判断属于哪一类... 阅读全文

线性分类器之感知机算法

2013-05-04 15:17 by 夜与周公, 1382 阅读, 收藏, 编辑
摘要: 感知机算法(The perceptron algorithm),应该是最早运用的机器学习算法,在模式识别与机器学习占有者非常重要的位置,人们尝试通过模拟大脑神经元的工作模式,创造机器智能。随后的neural network、最近很火的deeper learning,我们可以认为是对感知机算法的一种深度扩充。 感知机模型的直接将线性模型的输出映射到样本的标签: (1) 感知机属于判别式模型,按照一般判别式模型的求解思路:1、确定线性判别函数;2、按需要确定一个准则函数J;3、最优化方法求解J达到极限值时的参数Θ。对于参数的求解我们一般通过最大似然估计或者最大后验概率估计的方法。然而,感知... 阅读全文

线性回归模型之之概率解释

2013-03-30 17:45 by 夜与周公, 411 阅读, 收藏, 编辑
摘要: 上一节从最小二乘函数损失函数优化求解线性回归模型参数,本节将通过概率统计的角度求解线性回归模型参数,为最小二乘算法给出其概率上解释。 首先假设输出变量与输入变量之间存在关系: (1)其中,ε(i) 模型的预测值与真实值之间的噪声,我们假设预测值的噪声是随机独立的,服从分布: (2)因此,我们可以得到: (3)对于N个样本我们得到它的似然函数: (4)最大化对数似然函数L(Θ): (5)该式等于最小化: (6)当前这个公式正是在 ”线性回归模型之一“一文中提到的最小二乘的损失函数。 阅读全文

线性回归模型之一

2013-03-27 14:35 by 夜与周公, 536 阅读, 收藏, 编辑
摘要: 本节开始介绍第一个机器学习模型:线性回归模型(Linear Regression Model)。线性回归的目的是预测连续变量的值,比如股票走势,房屋的价格预测。从某种程度上说,线性回归模型,就是函数拟合。而线性回归,针对线性模型拟合,是回归模型当中最简单一种。形式化描述回归模型:对于给定的训练样本集包含N个训练样本{x(i)}相应的目标值{t(i)}}(i=1,2,....N),我们的目的是给定一个新样本x 预测其值 t,注意与分类问题不同是{t(i)}属于连续变量。 最简单的线性回归模型: (1)其中,x={x1,x2,x3,...xD},D个特征项,w={w1,w2,w3...... 阅读全文

机器学习的那些事

2013-03-22 22:00 by 夜与周公, 1634 阅读, 收藏, 编辑
摘要: 本系列是对机器学习常用的一些算法总结,本节主要概况后续的一些章节内容。 什么事机器学习?定义这个概念的自然是机器学习的大牛要做的事情。但机器学习的目的是,让我们的算法能够像人一样,通过学习以往的经验(数据),得到某种问题的解决方法(模型),并对新的问题(预测样本)做出自己的判断。对于某些问题来说,很难去编写一个算法完成任务。给出一些人脸图像,要求我们去编写一个程序,去识别这些人脸属于哪个人的。在计算机中,一幅人脸图像表示成一个矩阵,显然,很难通过传统的编程方法,去判断这幅图像到底是谁的人脸,机器学习在这个时候就发挥到她的作用了。 典型的机器学习任务可以几类呢?对于特定的任务,如何选择机... 阅读全文