算法
小飞侠-2
我的github地址https://github.com/liujiekasini 欢迎大家分享讨论
展开
-
决策分类树算法之ID3,C4.5算法系列
一、引言在最开始的时候,我本来准备学习的是C4.5算法,后来发现C4.5算法的核心还是ID3算法,所以又辗转回到学习ID3算法了,因为C4.5是他的一个改进。至于是什么改进,在后面的描述中我会提到。二、ID3算法ID3算法是一种分类决策树算法。他通过一系列的规则,将数据最后分类成决策树的形式。分类的根据是用到了熵这个概念。熵在物理这门学科中就已经出现过,表示是一个物质的稳定转载 2015-12-17 17:25:53 · 585 阅读 · 0 评论 -
Java常用排序算法及性能测试集合
现在再回过头理解,结合自己的体会, 选用最佳的方式描述这些算法,以方便理解它们的工作原理和程序设计技巧。本文适合做java面试准备的材料阅读。先附上一个测试报告:Array length: 20000bubbleSort : 766 msbubbleSortAdvanced : 662 msbubbleSortAdvanced2 : 647 msselectSort转载 2016-01-06 15:41:17 · 556 阅读 · 0 评论 -
各种排序算法的分析及java实现
排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以转载 2016-01-06 15:40:03 · 380 阅读 · 0 评论 -
关于SVM一篇比较全介绍的博文 [复制链接]
转自:http://blog.csdn.net/v_july_v/article/details/7624837前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但在描述数转载 2016-01-07 15:21:21 · 1075 阅读 · 0 评论 -
堆排序详解【java版附流程图】
堆排序详解——java版 近期一直再看别人的源码,无意中发现了他里面使用了堆排序算法,由于以前对于堆的排序问题都只是听过,而没有真正的理解过它和实践过它。于是也借本次机会了解了一下堆排序的算法。其实堆的排序是通过二叉树的形式对元素进行排序,它的规律是:ki>=k2i并且ki>=k2i+1或者是ki2i并且ki2i+1,意思就是它的父节点一定大于(小于)它的两个孩子们他转载 2015-12-23 16:19:50 · 1469 阅读 · 0 评论 -
四种聚类方法之比较
聚类分析是一种重要的人类行为,早在孩提时代,一个人就通过不断改进下意识中的聚类模式来学会如何区分猫狗、动物植物。目前在许多领域都得到了广泛的研究和成功的应用,如用于模式识别、数据分析、图像处理、市场研究、客户分割、Web文档分类等[1]。 聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能转载 2015-12-24 09:33:12 · 1029 阅读 · 0 评论 -
分类算法总结
目前看到的比较全面的分类算法,总结的还不错. 2.4.1 主要分类方法介绍解决分类问题的方法很多[40-42] ,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、K-近邻、支持向量机和基于关联规则的分类等;另外还有用于组合单一分类方法的集成学习算法,如Bagging和Boosting等。 (1)决策树 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,转载 2015-12-24 09:33:53 · 650 阅读 · 0 评论 -
常用方法的总结
(1)最简单的当然是词频方法(Word Frequency):词频是一个词在文档中出现的次数。通过词频进行特征选择就是将词频小于某一闭值的词删除,从而降低特征空间的维数。这个方法是基于这样一个假设,即出现频率小的词对过滤的影响也较小。但是在信息检索的研究中认为,有时频率小的词含有更多的信息。因此,在特征选择的过程中不宜简单地根据词频大幅度删词。(2)对于多文档最简单的方法:文档原创 2016-01-08 13:34:40 · 687 阅读 · 0 评论 -
这些年,这些挖掘机算法,这些反思
写这篇文章,缘自于前几天部门内部成员们进行了一次部门内部现有涉及的一些算法的review以及整理。不过比较囧的就是,由于boss不在,我们讨论讨论着就成了吐槽大会,倒是有一半时间在吐槽产品以及业务部门了。 不过这也算是一件可喜可贺的事情了,这也可以看做是我们数据部门,已经由开轻型挖掘机向深挖阶段迈步了。 因此,借此机会,也对自己接触过的,了解过的,或者做过的一些勉强称得上算法的转载 2016-01-08 14:19:04 · 799 阅读 · 0 评论 -
开源机器学习软件
编程语言:搞实验个人认为当然matlab最灵活了(但是正版很贵),但是更为前途的是python(numpy+scipy+matplotlib)和C/C++,这样组合既可搞研究,也可搞商业开发,易用性不比matlab差,功能组合更为强大,个人认为,当然R和java也不错.1.机器学习开源软件网(收录了各种机器学习的各种编程语言学术与商业的开源软件)http://mloss.org转载 2016-01-08 14:42:36 · 481 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策转载 2016-01-06 15:26:24 · 598 阅读 · 0 评论 -
代码面试最常用的10大算法
面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。转载 2016-01-06 15:09:04 · 336 阅读 · 0 评论 -
应用各种算法都要分词计算权重
从接触算法到现在大概有1个月的时间了,有监督的分类即分类算法都要开始对文本预料输入进行处理,处理流程如下分词关于分词处理,暂时用过这三个分词器,只是简单的应用,没有考虑正最大匹配,最长匹配等,其中ansj对于词性的标注最详细,并且有自动学习功能,对于保留名词,动词,形容词,并且去除虚词,连词等没多大实用价值的词方面优势很明显,当然mmseg,中科院分词中也有些简单的标注。去除停原创 2016-01-06 11:35:04 · 3982 阅读 · 0 评论 -
各种分类算法的优缺点
1决策树(Decision Trees)的优缺点决策树的优点:一、 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。二、 对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。三、 能够同时处理数据型和常规型属性。其他的技术往转载 2015-12-18 14:01:19 · 5273 阅读 · 1 评论 -
论贝叶斯分类、决策树分类、感知器分类挖掘算法的优势与劣势,以及解决维度效应的策略
摘要 本文介绍了在数据挖掘中数据分类的几个主要分类方法,包括:贝叶斯分类、决策树分类、感知器分类,及其各自的优势与劣势。并对于分类问题中出现的高维效应,介绍了两种通用的解决办法。关键词 数据分类 贝叶斯分类 决策树分类 感知器分类 引言数据分类是指按照分析对象的属性、特征,建立不同的组类来描述事物。数据分类是数据挖掘的主要内容之一,主要是通过分析训练数据转载 2015-12-18 14:26:00 · 7667 阅读 · 1 评论 -
经典算法试题及答案
1. 时针分针重合几次表面上有60个小格,每小格代表一分钟,时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以60/(1-1/12)=720/11每隔720/11分才重合一次(而并不是每小时重合一次)1440里有22个720/11,如果说算上0点和24点,那也是重合23次而已,但我觉得0点应该转载 2015-12-18 15:05:53 · 1808 阅读 · 0 评论 -
数据结构与算法试题80道
1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \4 8 12 16 转换成双向链表4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的数据结转载 2015-12-18 15:14:47 · 1445 阅读 · 0 评论 -
卡方检验
基本思想在分类资料统计分析中我们常会遇到这样的资料,如两组大白鼠在不同致癌剂作用下的发癌率如下表,问两组发癌率有无差别?处理发癌数未发癌数合计发癌率%甲组52197173.24乙组转载 2016-01-06 09:52:35 · 3582 阅读 · 0 评论 -
文档的词频-反向文档频率(TF-IDF)计算
TF-IDF计算:TF-IDF反映了在文档集合中一个单词对一个文档的重要性,经常在文本数据挖据与信息提取中用来作为权重因子。在一份给定的文件里,词频(termfrequency-TF)指的是某一个给定的词语在该文件中出现的频率。逆向文件频率(inversedocument frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目转载 2016-01-06 09:59:44 · 1435 阅读 · 0 评论 -
文本特征提取
文本挖掘模型结构示意图1. 分词分词实例: 提高人民生活水平:提高、高人、人民、民生、生活、活水、水平分词基本方法: 最大匹配法、最大概率法分词、最短路径分词方法1.1 最大匹配法 中文分词在中文信息处理中是最最基础的,无论机器翻译亦或信息检索还是其他相关应用,如果涉及中文,都离不开中文分词,因此中转载 2016-01-06 10:00:41 · 506 阅读 · 0 评论 -
文本特征提取方法研究
一、课题背景概述文本挖掘是一门交叉性学科,涉及数据挖掘、机器学习、模式识别、人工智能、统计学、计算机语言学、计算机网络技术、信息学等多个领域。文本挖掘就是从大量的文档中发现隐含知识和模式的一种方法和工具,它从数据挖掘发展而来,但与传统的数据挖掘又有许多不同。文本挖掘的对象是海量、异构、分布的文档(web);文档内容是人类所使用的自然语言,缺乏计算机可理解的语义。传统数据挖掘所处理的数据是结构化转载 2016-01-06 10:13:01 · 1205 阅读 · 0 评论 -
特征选择和特征抽取(学习小结)
本篇博客的目的不是深刻的讲解特征提取和特征选择的方法,而是区分清楚他们之间的关系和区别,让大家对特征抽取 特征选择 PCA LDA有个概念框架上的了解,为大家的下一步的深入理解打好基础。 如果我的理解有问题,请大家提出意见,互相交流。 1.特征抽取 V.S 特征选择 特征抽取和特征选择是DimensionalityReduction(降维)的两种方法,针对于the转载 2016-01-06 11:11:11 · 2229 阅读 · 0 评论 -
Tmsvm_基于SVM的文本挖掘系统
开源系统 主页:http://code.google.com/p/tmsvm/文本挖掘无论在学术界还是在工业界都有很广泛的应用场景。而文本分类是文本挖掘中一个非常重要的手段与技术。现有的分类技术都已经非常成熟,SVM、KNN、Decision Tree、AN、NB在不同的应用中都展示出较好的效果,前人也在将这些分类算法应用于文本分类中做出许多出色的工作。但在实际的商业应用中,仍然有很多问题转载 2015-12-25 11:05:58 · 1528 阅读 · 0 评论 -
文本分类与SVM
之前做过一些文本挖掘的项目,比如网页分类、微博情感分析、用户评论挖掘,也曾经将libsvm进行包装,写了一个文本分类的开软软件Tmsvm。所以这里将之前做过一些关于文本分类的东西整理总结一下。1 基础知识1. 1 样本整理文本分类属于有监督的学习,所以需要整理样本。根据业务需求,确定样本标签与数目,其中样本标签多为整数。在svm中其中如果为二分类,样本标签一般会设定转载 2015-12-25 11:21:39 · 1588 阅读 · 0 评论 -
基于K-Means的文本聚类
何为聚类 “聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性。”转载 2015-12-26 17:43:55 · 966 阅读 · 0 评论 -
weka支持的算法和weka简单的聚类例子
weka是数据挖掘的平台,集成了很多算法。下面做最新版本的weka-3-6-10.exe(下载页面:http://www.cs.waikato.ac.nz/ml/weka/downloading.html)展示:分类算法: 聚类算法:转载 2015-12-26 17:56:16 · 1271 阅读 · 0 评论 -
Weka聚类算法的两个实现算法
在这里将使用Weka自带的K-means以及EM算法对同一份数据进行聚类。目前使用的是自带的数据集。我也不太清楚这样聚类的效果如何 sigh... Weka Version: 3.7.10 K-Means K-均值算法Java代码 import java.io.File; import weka.clusterer转载 2015-12-26 16:57:57 · 880 阅读 · 0 评论 -
数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文本分类器的JAVA实现(下)
本文接 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文档分类器的JAVA实现(上) (update 2012.12.28 关于本项目下载及运行的常见问题 FAQ见 newsgroup18828文本分类器、文本聚类器、关联分析频繁模式挖掘算法的Java实现工程下载及运行FAQ )上文中描述了newsgroup18828文档集的预处理及贝叶斯算法的JAVA实现,下转载 2015-12-26 16:45:46 · 1139 阅读 · 0 评论 -
算法在文本挖掘中应用流程-svm
最近项目中用到自动分先分类,svm算法技术,看了好多博客与文章,总结了下算法svm在文本挖掘中的应用。画的不好或者不对请指教,谢谢原创 2015-12-26 18:08:32 · 761 阅读 · 0 评论 -
svm学后理解
随着oec项目4版本的开发,学习svm算法也有段时间了,对于其理解做些总结。首先svm是有监督的分类回归算法,对于自动识别分类效果比较好,具体流程如下:1.对语料每个分类打标签,并对每个分类下面的txt文本进行分词。分词器有好多种,自己可以选择适合自己的,我用过mmseg4j,ansj和中科院三种分词器,其中ansj对词的标注和自动学习词性方面最好。2.去停用词。3.根据你想用的提原创 2016-01-11 16:32:59 · 408 阅读 · 0 评论 -
向量空间模型(VSM)在文档相似度计算上的简单介绍
http://blog.csdn.net/Felomeng/archive/2009/03/25/4023990.aspx向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理。假设共有十个词:w1,w2,......,w10,而共有三篇文章,d1,d2和d3。统计所得的原创 2016-01-11 17:04:45 · 3066 阅读 · 0 评论 -
语义分析和文本分析区别
1,语义分析是编译过程的一个逻辑阶段, 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。比如语义分析的一个工作是进行类型审查,审查每个算符是否具有语言规范允许的运算对象,当不符合语言规范时,编译程序应报告错误。如有的编译程序要对实数用作数组下标的情况报告错误。又比如某些某些程序规定运算对象可被强制,那么当二目原创 2016-01-12 10:20:15 · 5683 阅读 · 0 评论 -
数据挖掘-聚类-K-means算法Java实现
K-Means算法是最古老也是应用最广泛的聚类算法,它使用质心定义原型,质心是一组点的均值,通常该算法用于n维连续空间中的对象。K-Means算法流程step1:选择K个点作为初始质心step2:repeat 将每个点指派到最近的质心,形成K个簇 重新计算每个簇的质心转载 2015-12-26 16:54:50 · 1137 阅读 · 0 评论 -
Mahout机器学习平台之聚类算法详细剖析(含实例分析)
第一部分:学习 Mahout 必须要知道的资料查找技能:学会查官方帮助文档: 解压用于安装文件( mahout-distribution-0.6.tar.gz ),找到如下位置,我将该文件解压到 win7 的 G 盘 mahout 文件夹下,路径如下所示:G:\mahout\mahout-distribution-0.6\docs学会查源代码的注转载 2015-12-26 16:54:01 · 869 阅读 · 0 评论 -
数据挖掘--kmeans聚类算法mapreduce实现 代码
分类:数据挖掘算法 | 标签: 数据挖掘 kmeans mapreduce 2012-11-14 13:36阅读(4148)评论(1)==================cluster.txt===========================A 2 2B 2 4C 4 2D 4 4E 6转载 2015-12-26 16:52:30 · 1405 阅读 · 0 评论 -
基于svm的中文文本自动分类系统
今天刚改完成了软件工程的大作业展示,即:基于内容的文本分类系统,使用libsvm 进行分类。在百度谷歌了很久之后,发现很少有这样的源码可以下载,本人便想着写完之后上传上去。 首先介绍一下流程: 1.先使用中科院的分词器ICTLAS对训练集进行分词 2.将所有的词构建成一个字典,以label item的形式,后面svm要用到。如:1 中国3转载 2015-12-25 13:55:31 · 4457 阅读 · 4 评论 -
文档的词频-反向文档频率(TF-IDF)计算
TF-IDF计算:TF-IDF反映了在文档集合中一个单词对一个文档的重要性,经常在文本数据挖据与信息提取中用来作为权重因子。在一份给定的文件里,词频(termfrequency-TF)指的是某一个给定的词语在该文件中出现的频率。逆向文件频率(inversedocument frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目转载 2015-12-25 16:59:07 · 8985 阅读 · 0 评论 -
数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(上)
(update 2012.12.28 关于本项目下载及运行的常见问题 FAQ见 newsgroup18828文本分类器、文本聚类器、关联分析频繁模式挖掘算法的Java实现工程下载及运行FAQ )本文要点如下:对newsgroup文档集进行预处理,按照DF法及SVD分解法抽取特征词,实现降维实现了K-Means,MBSAS,DBSCAN三种聚类算法用weka工具进行newsg转载 2015-12-26 16:35:32 · 824 阅读 · 0 评论 -
数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(下)
本文接数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(上).(update 2012.12.28 关于本项目下载及运行的常见问题 FAQ见 newsgroup18828文本分类器、文本聚类器、关联分析频繁模式挖掘算法的Java实现工程下载及运行FAQ )本文要点如下:介绍基于LSI(隐性语义索引)中SV转载 2015-12-26 16:36:27 · 989 阅读 · 0 评论 -
k-means聚类JAVA实例
《mahout in action》第六章。datafile/cluster/simple_k-means.txt数据集如下: 1 12 11 22 23 38 88 99 89 91. k-means聚类算法原理1、从D中随机取k个元素,作为k个簇的各自的中心。2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异转载 2015-12-26 16:37:53 · 360 阅读 · 0 评论