AI
文章平均质量分 76
orisun
数据挖掘
展开
-
FP-Tree算法的实现
在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库。于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效的一种。支持度和置信度严格地说Apriori和FP-Tree都是寻找频繁项集的算法,频繁项集就是所谓的“支持度”比较高的项集,下面解释一下支持度和置信度的概念。设事务数据库为:A原创 2013-01-05 18:27:41 · 900 阅读 · 3 评论 -
curse of dimensionality维数灾难
或者翻译成维度的咒语,这个咒语出现在很多方面:sampling采样如果数据是低维的,所需的采样点相对就比较少;如果数据是高维的,所需的采样点就会指数级增加,而实现中面对高维问题时往往无法获得如此多的样本点(即使获得了也无法处理这么庞大数据量),样本少不具有代表性自然不能获得正确的结果。combinatorics组合数学由于每个维度上候选集合是固定的,维度增加后所有组合的总数就会指数原创 2013-01-05 18:32:19 · 608 阅读 · 0 评论 -
线性判别分析LDA
首先搞清楚什么叫判别分析?Discriminant Analysis就是根据研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。根据判别标准不同,可以分为距离判别、Fisher判别、Bayes判别法等。比如在KNN中用的就是距离判别,当然这里的“距离”又有好几种:欧氏距离、街区距离、甚至可以用皮尔森相关系数等。朴素贝叶斯分类用的就是Bayes判别法。本文要讲的线性判别分析就是用是F原创 2013-01-05 18:31:04 · 645 阅读 · 0 评论 -
自组织映射网络和学习向量量化网络
在人的视网膜、脊髓中有一种现象,当一个神经细胞兴奋后,会对周围神经细胞产生抑制作用。极端情况下,不允许其他细胞兴奋,这就是上文提到的学习规则中的胜者为王。竞争学习算法分为3步:向量归一化输入的模式向量X和竞争层各细胞的内星权向量Wj(j-1,2,...,m)都是进行归一化。并且每次迭代都要进行归一化操作。寻找获胜神经元竞争层各细胞的内星权向量Wj(j-1,2,...,m)与输入向量原创 2013-01-05 18:30:19 · 715 阅读 · 0 评论 -
神经网络基础和感知器
神经元的变换函数从净输入到输出的变换函数称为神经元的变换函数,即阈值型变换函数比如符号函数非线性变换函数比如单极性Sigmoid函数又比如双极性S型(又曲正切)函数分段性变换函数比如概率型变换函数这时输入与输出之间的关系是不确定的,需要用一个随机函数来描述输出状态为1或为0的原创 2013-01-05 18:30:16 · 567 阅读 · 0 评论 -
举例说明利用《知网》计算词语相似度
首先去《知网》的官方网站上下载WordSimilarity.rar,解压后有两个文件是我们需要的:whole.dat和glossary.dat,关于那个《基于知网的词汇语义相似度计算.doc》建议不要看,那是个老版本的,写的不清楚,可以去这里看Final版(刘群等著),本博客就是按照这个版本来计算词语相似度的,只是个细节略有改动。现在很多人提出的“改进”算法实际上只是“拓展”,因为他们忘了刘群原创 2013-01-05 18:29:57 · 1201 阅读 · 1 评论 -
主成分分析PCA
降维的必要性1.多重共线性--预测变量之间相互关联。多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯。2.高维空间本身具有稀疏性。一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有0.02%。3.过多的变量会妨碍查找规律的建立。4.仅在变量层面上分析可能会忽略变量之间的潜在联系。例如几个预测变量可能落入仅反映数据某一方面特征的一个组内。降维的目的:1.减原创 2013-01-05 18:27:56 · 672 阅读 · 0 评论 -
聚类算法之DBScan(Java实现)
DBScan是一种基于密度的聚类算法,它有一个核心点的概念:如果一个点,在距它Eps的范围内有不少于MinPts个点,则该点就是核心点。核心和它Eps范围内的邻居形成一个簇。在一个簇内如果出现多个点都是核心点,则以这些核心点为中心的簇要合并。下图给出DBScan的聚类结果: 可以看到DBScan可以发现噪声,即它把(3,14)判定为噪声。到这里你一定有个疑问:为什么(8,原创 2013-01-05 18:27:27 · 793 阅读 · 0 评论 -
信息论
信息论(Information Theory)是概率论与数理统计的一个分枝。用于信息处理、信息熵、通信系统、数据传输、率失真理论、密码学、信噪比、数据压缩和相关课题。基本概念先说明一点:在信息论里面对数log默认都是指以2为底数。自信息量联合自信息量条件自信息量信息熵条件熵联合熵根据链式规则,有可以得出信息增益Inform原创 2013-01-05 18:31:21 · 608 阅读 · 0 评论 -
Ridge Regression岭回归
数值计算方法的“稳定性”是指在计算过程中舍入误差是可以控制的。对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”。有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态。对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征。回归分析中常用的最小二乘法是一种无偏估计。当X列满秩时,有原创 2013-01-05 18:32:21 · 1474 阅读 · 0 评论 -
聚类算法之KMeans(Java实现)
KMeans算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。然后按平均法重新计算各个簇的质心,从而确定新的簇心。一直迭代,直到簇心的移动距离小于某个给定的值。当初始簇心选行不好时,KMeans的结果会很差,所以一般是多运行几次,按照一定标准(比如簇内的方差最小化)选择一个比较好的结果。下图给出对坐标点的聚类结果:下面给出核心算法的代码:/**原创 2013-01-05 18:27:24 · 752 阅读 · 0 评论 -
用遗传算法走出迷宫(Java版)
在百度文库上看到一篇文章《遗传算法及神经网络在游戏开发中的应用》,里面讲到了用遗传算法走迷宫的小游戏,我自己编程实现了一下,并用SWT把游戏的界面做出来了。算法我就不多说了,上述文章里面讲得很清楚。直接看我做的小软件吧。刚开始初始化一个迷宫,一般是走不通的,但你点击一个格子它就会变色,由路变为墙,或由墙变为路。点击“Run"之后,遗传算法在后台运行,把出路给你找出来,然后在迷宫上把原创 2013-01-05 18:27:46 · 950 阅读 · 2 评论 -
归纳决策树ID3(Java实现)
先上问题吧,我们统计了14天的气象数据(指标包括outlook,temperature,humidity,windy),并已知这些天气是否打球(play)。如果给出新一天的气象指标数据:sunny,cool,high,TRUE,判断一下会不会去打球。table 1outlooktemperaturehumiditywindyplaysunny原创 2013-01-05 18:27:39 · 771 阅读 · 0 评论 -
C4.5决策树
C4.5决策树在ID3决策树的基础之上稍作改进,请先阅读ID3决策树。C4.5克服了ID3的2个缺点:1.用信息增益选择属性时偏向于选择分枝比较多的属性值,即取值多的属性2.不能处理连贯属性OutlookTemperatureHumidityWindyPlayGolf?sunny8585FALSEnosunny原创 2013-01-05 18:32:23 · 833 阅读 · 0 评论 -
分类回归树CART(上)
分类回归树(CART,Classification And Regression Tree)也属于一种决策树,上回文我们介绍了基于ID3算法的决策树。作为上篇,这里只介绍CART是怎样用于分类的。分类回归树是一棵二叉树,且每个非叶子节点都有两个孩子,所以对于第一棵子树其叶子节点数比非叶子节点数多1。表1名称体温表面覆盖胎生产蛋能飞水生有腿冬眠原创 2013-01-05 18:31:55 · 957 阅读 · 0 评论 -
协同过滤推荐算法
Collaborative Filtering Recommendation向量之间的相似度度量向量之间的相似度方法很多了,你可以用距离(各种距离)的倒数,向量夹角,Pearson相关系数等。皮尔森相关系数计算公式如下:分子是协方差,分子是两个变量标准差的乘积。显然要求X和Y的标准差都不能为0。因为,所以皮尔森相关系数计算公式还可以写成:当两个变量的线性关系增强时,原创 2013-01-05 18:31:26 · 655 阅读 · 1 评论 -
回归分析
回归分析本质上就是一个函数估计的问题(函数估计包括参数估计和非参数估计),就是找出因变量(DV,Dependent Variable)和自变量(IV,Independent Variable)之间的因果关系。本文讲两种回归分析的方法:一般线性回归(ordinary linear regression)和逻辑斯谛回归(logistic regression)。更确切地讲线性回归和Logistic回归原创 2013-01-05 18:30:55 · 586 阅读 · 0 评论 -
高阶HMM中文分词
模型的建立一句话中出现的汉字构成观察序列,如“希腊的经济结构较特殊”对应的观察序列O={希,腊,的,经,济,结,构,较,特,殊}。所有观察值的集合至少应该包含训练集和测试集中出现的所有汉字。状态有4种:B表示词首的汉字;M表示词语中间的汉字;E表示词尾的汉字;S表示单独的汉字构成一个词。举例:希/B腊/E 的/S 经/B济/M结/M构/E 较/S 特/B殊/E文本的预处理原创 2013-01-05 18:30:09 · 702 阅读 · 0 评论 -
用神经网络指挥坦克扫雷(Java实现)
想法来自于《游戏编程中的人工智能》,坦克扫雷的相关介绍zzwu老兄的博客上有,原版是VC++写的,我重写了个Java版。初始,在随机的位置上布置地雷和坦克,未扫的地雷是红色,扫过的是绿色。单击游戏界面,则游戏暂停。再次单击则游戏继续。Game over后报告本次游戏所用的时间。可以点击这里下载我的源代码。原创 2013-01-05 18:27:48 · 674 阅读 · 0 评论 -
独立性检验
本文给出基于两种统计量的假设检验,来检验变量间是否独立--χ2与秩和。χ2越小说明越独立。你可能会参考另一篇博客相关性检验。假设检验假设检验(Test of Hypothesis)又称为显著性检验(Test of Ststistical Significance)。在抽样研究中,由于样本所来自的总体其参数是未知的,只能根据样本统计量对其所来自总体的参数进行估计,如果要比较两个或几个总体原创 2013-01-05 18:30:57 · 757 阅读 · 0 评论 -
相关性检验
本文给出两种相关系数,系数越大说明越相关。你可能会参考另一篇博客独立性检验。皮尔森相关系数皮尔森相关系数(Pearson correlation coefficient)也叫皮尔森积差相关系数(Pearson product-moment correlation coefficient),是用来反应两个变量相似程度的统计量。或者说可以用来计算两个向量的相似度(在基于向量空间模型的文本分类、原创 2013-01-05 18:30:48 · 1325 阅读 · 0 评论 -
高斯混合模型
本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程。单高斯分布模型GSM多维变量X服从高斯分布时,它的概率密度函数PDF为:x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个原创 2013-01-05 18:30:43 · 469 阅读 · 0 评论 -
对偶传播神经网络
对偶传播神经网络(Counter-Propagation Network,CPN)能存储二进制或模拟值的模式对,因此这种网络模型也可用于联想存储、模式分类、函数逼近、统计分析和数据压缩等功能。对偶传播神经网络的拓扑结构跟误差反向传播(BP)网络的一样,不同之处在于,CPN采用两个阶段来分别训练竞争层的内星权向量和外星权向量,即第一阶段完全不顾输出层,采用SOFM的方法来训练竞争层的内星权向量,原创 2013-01-05 18:30:21 · 1085 阅读 · 0 评论 -
朴素贝叶斯分类
先上问题吧,我们统计了14天的气象数据(指标包括outlook,temperature,humidity,windy),并已知这些天气是否打球(play)。如果给出新一天的气象指标数据:sunny,cool,high,TRUE,判断一下会不会去打球。table 1outlooktemperaturehumiditywindyplaysunnyho原创 2013-01-05 18:30:14 · 619 阅读 · 0 评论 -
求TnaCorp的文档向量
我下载的是TanCorp-12预处理格式step1.编码转换刚下载下来的语料库编码是cp936即gb2312,所以下先转换成utf-8编码。转码工作在windows下进行,用到一个工具iconv.exe.iconv *.txt -p E:\\TanCorp-12-Txt -f gb2312 -t utf-8 -v -sstep2.去掉文件的前3个字节utf-8格式一个汉字是3个原创 2013-01-05 18:29:45 · 432 阅读 · 0 评论 -
自适应遗传算法
上回文说到基于误差梯度下降的BP网络算法容易陷入局部极小,通常的改进方法先使用遗传算法生成比较好的权重值,再交给神经网络训练。遗传算法随着进化的进行,其选择率、交叉算子、变异率应该是动态改变的。编码方式在使用BP网络进行文本分类时,大都是采用实数编码,把权值设为[0,1]上的实数,这是因为要使用权值调整公式要求权值是实数。但是在使用遗传算法优化这些权值时,完全可以把它们编码为整数。比如原创 2013-01-05 18:28:36 · 2371 阅读 · 0 评论 -
聚类算法之BIRCH(Java实现)
BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)天生就是为处理超大规模(至少要让你的内存容不下)的数据集而设计的,它可以在任何给定的内存下运行。关于BIRCH的更多特点先不介绍,我先讲一下算法的完整实现细节,对算法的实现过程搞清楚后再去看别人对该算法的评价才会感受深刻。你不需要具备B树的相关知识,我接下来会讲原创 2013-01-05 18:27:44 · 457 阅读 · 0 评论 -
LibSVM使用指南
本文包含以下几个部分:支持向量机--SVM简介LibSVM的安装LibSVM的使用LibSVM参数调优Java版LibSVM库函数的调用SVM简介在进行下面的内容时我们认为你已经具备了数据挖掘的基础知识。SVM是新近出现的强大的数据挖掘工具,它在文本分类、手写文字识别、图像分类、生物序列分析等实际应用中表现出非常好的性能。SVM属于监督学习算法,样本以属性向原创 2013-01-05 18:27:31 · 545 阅读 · 0 评论 -
从原始文档到KNN分类算法实现(二)
1.复旦语料库train集中有6个类是多于1000个文档的,把它们取出来,分别删减至1000个文档,构成接下来我们要进行实验的训练集。2.执行Predeal.java,它依次进行三项操作:把文件重命名为顺序的数字编号;把文件编号(即文件名)写入文档开头,用一个空格与正文内容隔开,去除正文每行末的换行符,把整个文档合并为一行,去除正文行间的空格;用ICTCLAS进行中文分词.由于一次运行对6000个原创 2013-01-05 18:27:17 · 522 阅读 · 0 评论 -
谱聚类
广义上来说,任何在算法中用到SVD/特征值分解的,都叫Spectral Algorithm。顺便说一下,对于任意矩阵只存在奇异值分解,不存在特征值分解。对于正定的对称矩阵,奇异值就是特征值,奇异向量就是特征向量。传统的聚类算法,如K-Means、EM算法都是建立在凸球形样本空间上,当样本空间不为凸时,算法会陷入局部最优,最终结果受初始参数的选择影响比较大。而谱聚类可以在任意形状的样本空间上聚类原创 2013-01-05 18:30:52 · 610 阅读 · 0 评论 -
SVM速览
SVM属于一种前馈神经网络,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势。对于两类分类问题,有训练样本{(X1,y1),(X2,y2),...,(Xn,yn)},y是分类标记,取值于+1和-1。a和b都可以作为分类超平面,但最优超平面只有一个,最优分类平面使间隔最大化。0,y_i=+1" alt="" width="158" height="15" />统一起来就原创 2013-01-05 18:31:00 · 474 阅读 · 0 评论 -
从原始文档到KNN分类算法实现(一)
建立原始文档~/corpus/C1下建三个文件:0,1,2。内容分别为: 0眼睛 明亮 健康 身体 发达1高大 身材 胳膊 勇猛 四肢2胳膊 健康 身体 高大 健康~/corpus/C2下建三个文件:3,4,5。内容分别为: 3美国 很 发达原创 2013-01-05 18:27:15 · 769 阅读 · 1 评论 -
EM算法
本文试图用最简单的例子、最浅显的方式说明EM(Expectation Maximization)算法的应用场景和使用方法,而略去公式的推导和收敛性的证明。以下内容翻译自《Data-Intensive Text Processing with MapReduce》。Maximum Likelihood EstimationMaximum Likelihood Estimation(MLE原创 2013-01-05 18:30:36 · 483 阅读 · 0 评论 -
径向基函数(RBF)神经网络
RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。简单说明一下为什么RBF网络学习收敛得比较快。当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个原创 2013-01-05 18:30:24 · 1120 阅读 · 0 评论 -
一阶HMM词性标注
手头的语料库依然是msr_training.utf8和msr_test.utf8,它来自于自于SIGHAN Bakeoff 2005的 icwb2-data.rar1.rmspace.cpp研究院的训练文档是已经分好词,但我们并不需要这个结果,我们要使用计算所有分词系统重新进行分词并进行词性标注,所以第一步要把训练文档中行内的空格去掉。#include#include#incl原创 2013-01-05 18:30:07 · 987 阅读 · 0 评论 -
BP网络算法及其改进
书上的一个例子,是要识别英文字符C、I、T。 则XC=(1,1,1,1,0,0,1,1,1),XI=(0,1,0,0,1,0,0,1,0),XT=(1,1,1,0,1,0,0,1,0)。1.标准BP算法网络图我就不画了。输入层X=(x0,x1,x2,...xi,...,xn)隐藏层Y=(y0,y1,y2,...,yj,...,ym)x0=y0=-1输出层O=(o1原创 2013-01-05 18:28:34 · 858 阅读 · 1 评论 -
向前-向后算法(forward-backward algorithm)
本文承接上篇博客《隐马尔可夫模型及的评估和解码问题》,用到的概念和例子都是那里面的。学习问题在HMM模型中,已知隐藏状态的集合S,观察值的集合O,以及一个观察序列(o1,o2,...,on),求使得该观察序列出现的可能性最大的模型参数(包括初始状态概率矩阵π,状态转移矩阵A,发射矩阵B)。这正好就是EM算法要求解的问题:已知一系列的观察值X,在隐含变量Y未知的情况下求最佳参数θ*,使得:原创 2013-01-05 18:27:53 · 1820 阅读 · 0 评论 -
隐马尔可夫模型及的评估和解码问题
HMM介绍Hidden Markov Models是一种统计信号处理方法,模型中包含2个序列和3个矩阵:状态序列S、观察序列O、初始状态矩阵P、状态转移矩阵A、混淆矩阵B。举个例子来说明。你一个异地的朋友只做三种活动:散步、看书、做清洁。每天只做一种活动。假设天气只有两种状态:晴和兩。每天只有一种天气。你的朋友每天告诉你他做了什么,但是不告诉你他那里的天气。某一周从周一到周五每天的活动原创 2013-01-05 18:27:51 · 482 阅读 · 0 评论 -
BOW使用指南
先规范一下发间:bow的韵音同low而不是cow。 bow包含三个项目:rainbow用于文本分类;arrow用于文本检索;crossbow用于文本聚类。这三个程序是独立的。Rainbow使用rainbow前首先要建立原始文档的一个model----包含了原始文档的一些统计信息,使用rainbow命令时通过-d选项来指定model的路径。rainbow -d ~/model --i原创 2013-01-05 18:27:36 · 1287 阅读 · 0 评论 -
聚类算法之CHAMELEON(Java实现)
CHAMELEON是一种两阶段聚类法。第一阶段把点分成很多小的簇;第二阶段根据相近程度合并这些小的簇。第一阶段采用K最邻近法,即把一个点和它最邻近的K个点连接起来。第二阶段计算任意两个簇的互连性RI和紧密性RC,当两个指标都比较大时才合并这两个簇。相对互连度相对紧密度|Ci|表示簇i内数据点的个数;EC(Ci)表示簇i内所有边的权重和;EC(Ci,Cj)表示跨越两个簇的所有边的权重和。原创 2013-01-05 18:27:29 · 742 阅读 · 0 评论