2013年4月17日

Latent Semantic Analysis(LSA/ LSI)算法简介

摘要: 本文地址为:http://www.cnblogs.com/kemaswill/,作者联系方式为kemaswill@163.com,转载请注明出处。1. 传统向量空间模型的缺陷 向量空间模型是信息检索中最常用的检索方法,其检索过程是,将文档集D中的所有文档和查询都表示成以单词为特征的向量,特征值为每个单词的TF-IDF值,然后使用向量空间模型(亦即计算查询q的向量和每个文档di的向量之间的相似度)来衡量文档和查询之间的相似度,从而得到和给定查询最相关的文档。 向量空间模型简单的基于单词的出现与否以及TF-IDF等信息来进行检索,但是“说了或者写了哪些单词”和“真正想表达的意思”之间有很大的区别. 阅读全文

posted @ 2013-04-17 22:50 潘的博客 阅读(19236) 评论(0) 推荐(3) 编辑

2013年4月1日

时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)

摘要: 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在之后的走势,三次指数平滑(Triple/Three Order Exponential Smoothing,Holt-Winters)算法可以很好的进行时间序列的预测。 时间序列数据一般有以下几种特点:1.趋势(Trend) 2. 季节性(Seasonality)。 趋势描述的是时间序列的整体走势,比如总体上升或者总体下降。下图所示的时间序列是总体上升的: 季节性描述的是数据的周期性波动,比如以年或者周为周期,如下图: 三次指数平滑算法可以对同时含有趋势和季节性的时间序列进行预测,该算法是基于一次指数平滑和二次指数平滑算法的。 一次. 阅读全文

posted @ 2013-04-01 15:53 潘的博客 阅读(40918) 评论(0) 推荐(3) 编辑

2013年1月27日

机器学习-核Fisher LDA算法

摘要: 本文在我的上一篇博文 机器学习-特征选择(降维) 线性判别式分析(LDA)的基础上进一步介绍核Fisher LDA算法。 之前我们介绍的LDA或者Fisher LDA都是线性模型,该模型简单,对噪音的鲁棒性较好,不容易过拟合,但是,简单模型的表达能力会弱一些,为了增加LDA算法的表达能力,我们可以将数据投影到非线性的方向上去。为了达到这个目的,我们可以先将数据非线性的投影到一个特征空间F内,然后在这个F空间内计算Fisher 线性判别式,达到降维的目的。 首先介绍一下核函数的概念: 如果F空间的维数非常高甚至是无穷维数,那么单纯的只是将原数据投影到F空间就是一个很大的计算量。但是,我们可以并. 阅读全文

posted @ 2013-01-27 21:24 潘的博客 阅读(8772) 评论(0) 推荐(0) 编辑

机器学习-特征选择(降维) 线性判别式分析(LDA)

摘要: 特征选择(亦即降维)是数据预处理中非常重要的一个步骤。对于分类来说,特征选择可以从众多的特征中选择对分类最重要的那些特征,去除原数据中的噪音。主成分分析(PCA)与线性判别式分析(LDA)是两种最常用的特征选择算法。关于PCA的介绍,可以见我的另一篇博文。这里主要介绍线性判别式分析(LDA),主要基于Fisher Discriminant Analysis with Kernals[1]和Fisher Linear Discriminant Analysis[2]两篇文献。 LDA与PCA的一大不同点在于,LDA是有监督的算法,而PCA是无监督的,因为PCA算法没有考虑数据的标签(类别),只. 阅读全文

posted @ 2013-01-27 19:50 潘的博客 阅读(8107) 评论(2) 推荐(3) 编辑

2013年1月26日

机器学习-KMeans聚类 K值以及初始类簇中心点的选取

摘要: 本文主要基于Anand Rajaraman和Jeffrey David Ullman合著,王斌翻译的《大数据-互联网大规模数据挖掘与分布式处理》一书。 KMeans算法是最常用的聚类算法,主要思想是:在给定K值和K个初始类簇中心点的情况下,把每个点(亦即数据记录)分到离其最近的类簇中心点所代表的类簇中,所有点分配完毕之后,根据一个类簇内的所有点重新计算该类簇的中心点(取平均值),然后再迭代的进行分配点和更新类簇中心点的步骤,直至类簇中心点的变化很小,或者达到指定的迭代次数。 KMeans算法本身思想比较简单,但是合理的确定K值和K个初始类簇中心点对于聚类效果的好坏有很大的影响。 1. 确定K. 阅读全文

posted @ 2013-01-26 00:36 潘的博客 阅读(26685) 评论(8) 推荐(4) 编辑

2013年1月24日

ListNet 算法简介

摘要: 排序一直是信息检索的核心问题之一,Learning to Rank(简称LTR)用机器学习的思想来解决排序问题。LTR有三种主要的方法:PointWise,PairWise,ListWise。ListNet算法就是ListWise方法的一种,由刘铁岩,李航等人在ICML2007的论文Learning to Rank:From Pairwise approach to Listwise Approach中提出。 Pairwise方法的实际上是把排序问题转换成分类问题,以最小化文档对的分类错误为目标。但是评估排序结果的好坏通常采用MAP或NDCG等考虑文档排序的方法,所以Pairwise方法的. 阅读全文

posted @ 2013-01-24 17:50 潘的博客 阅读(9583) 评论(2) 推荐(2) 编辑

2013年1月13日

PCA算法 原理与实现

摘要: 本文主要基于同名的两篇外文参考文献A Tutorial on Principal Component Analysis。 PCA,亦即主成分分析,主要用于对特征进行降维。如果数据的特征数非常多,我们可以认为其中只有一部分特征是真正我们感兴趣和有意义的,而其他特征或者是噪音,或者和别的特征有冗余。从所有的特征中找出有意义的特征的过程就是降维,而PCA是降维的两个主要方法之一(另一个是LDA). Jonathon Shlens的论文中举了一个物理学中测试理想情况下弹簧振动的例子,非常生动,详见[1](中文翻译见[5])。 我们首先看一下给定一个代表数据记录的矩阵A,如果计算其主成分P,并如何利用. 阅读全文

posted @ 2013-01-13 14:26 潘的博客 阅读(6466) 评论(1) 推荐(1) 编辑

2013年1月8日

HIVE QL 杂记

摘要: HIVE QL优化 阅读全文

posted @ 2013-01-08 00:24 潘的博客 阅读(1414) 评论(0) 推荐(0) 编辑

2012年12月28日

Python 正则表达式

摘要: 最近用Python的正则表达式做了许多工作,参考了余晟的《正则指引》,收获颇多,在此一一记录: 1. 正则表达式的几种匹配方法: 有三种方法可以用来进行正则表达式的匹配:search,match,findall (1) re.search(pattern,string[,flags]) 其中pattern为正则表达式,string为待匹配的文本,flags为匹配模式(详细介绍请见(5)). search方法用来测试正则表达式pattern能否在string中找到,如果可以则返回一个MatchObject对象,否则返回None。 MatchObject对象会在用search或match方法匹配. 阅读全文

posted @ 2012-12-28 21:42 潘的博客 阅读(503) 评论(0) 推荐(0) 编辑

2012年12月8日

Python optparser模块简介

摘要: 写Python脚本写多了,有的脚本参数很多,有的脚本参数需要经常调节,直接去脚本中改参数或简单的通过sys.argv来传递参数都不方便,于是就专门学习了一下专用的选项解析器optparser模块。 一个简单的例子: 假设我们需要生成一些服从二维高斯分布的一些随机点,该Python脚本需要用户输入3个参数:生成的随机点的个数,保存这些随机点的文件的路径,以及是否在标准输出上打印这些点。三个参数在执行该Python脚本时由三个选项指定,选项部分的代码如下: from optparse import OptionParser parser=OptionParser() #-n选项,指定生成的随机.. 阅读全文

posted @ 2012-12-08 23:47 潘的博客 阅读(1186) 评论(0) 推荐(0) 编辑

导航