Apriori 关联分析算法原理分析与代码实现

转自穆晨阅读目录前言关联分析领域的一些概念Apriori算法基本原理频繁项集检索实现思路与实现代码关联规则学习实现思路与实现代码小结回到顶部      想必大家都听过数据挖掘领域那个经典的故事-"啤酒与尿布"的故事。       那么,具体是怎么从海量销售信息中挖掘出啤酒和尿布之间的关系呢?       这就是关联分析所要完成的任务了。       本文将讲解关联分析领域中最为经典的Apriori算法,并给出具体的代码实现。回到顶部       1. 频繁项集:数据集中经常出现在一起的物品的集合。例如"啤酒和尿布"       2. 关联规则:指两个物品集之间可能...

使用 AdaBoost 元算法提高分类器性能

阅读目录前言一种原始的元算法-bagging(自举汇聚法)boost(提高任意给定学习算法精确度算法)vsbagging(自举汇聚法)AdaBoost元算法的基本原理基于单层决策树的AdaBoost元算法分类器实现小结回到顶部      有人认为AdaBoost是最好的监督学习的方式。       某种程度上因为它是元算法,也就是说它会是几种分类器的组合。这就好比对于一个问题能够咨询多个"专家"的意见了。       组合的方式有多种,可能是不同分类算法的分类器,可能是同一算法在不同设置下的集成,还可以是数据集在不同部分分配给不同分类器之后的集成等等。       本文将给出的AdaBoost分类器实现基于第二种(另外几种实现在此基础上稍作改动即可)。回到顶部     &...

Logistic回归分类算法原理分析与代码实现

阅读目录前言算法原理  回归分类器的形式最佳回归系数的确定基于梯度上升法的最佳回归参数拟合拟合结果展示更好的求最值方法-随机梯度上升小结回到顶部      本文将介绍机器学习分类算法中的Logistic回归分类算法并给出伪代码,Python代码实现。      (说明:从本文开始,将接触到最优化算法相关的学习。旨在将这些最优化的算法用于训练出一个非线性的函数,以用于分类。)回到顶部      首先要提到的概念是回归。      对于回归这个概念,在以后的文章会有系统而深入的学习。简单的说,回归就是用一条线对N多数据点进行一个拟合,这个拟合的过程就叫做回归。      Logistic回归分类算法就是对数据集建立回归公式,以此进行分类。     ...

基于朴素贝叶斯分类算法的邮件过滤系统

转自穆晨阅读目录前言准备数据:切分文本训练并测试小结回到顶部      朴素贝叶斯算法最为广泛而经典的应用毫无疑问是文档分类,更具体的情形是邮件过滤系统。      本文详细地讲解一个基于朴素贝叶斯分类算法的邮件过滤系统的具体实现。      本文侧重于工程实现,至于其中很多算法的细节请参考之前的一篇文章:朴素贝叶斯分类算法原理分析与代码实现。回到顶部      获取到文本文件之后,首先要做的是两件事情:      1.将文本文件转换为词汇列表      2.将上一步的结果进一步转换为词向量      对于1,具体来说,就是将文本文件以非字母或数字之外的字符为界进行切割。&...

基于K-近邻分类算法的手写识别系统

本文转自:穆晨补充:2000个训练集也是32x32矩阵。阅读目录前言第一步:收集并准备数据第二步:测试算法小结回到顶部      本文将继续讲解K-近邻算法的项目实例-手写识别系统。      该系统在获取用户的手写输入后,判断用户写的是什么。      为了突出核心,简化细节,本示例系统中的输入为32x32矩阵,分类结果也均为数字。但对于汉字或者别的分类情形原理都是一样的。      有了前面学习的基础,下面直接进入项目开发步骤。回到顶部      在用户主目录的trainingDigits子目录中,存放的是2000个样本数据。      每个样本一个文件,其中一部分如下所示:    &nb...

决策树介绍及算法

定义:决策树是一种分而治之(DivideandConquer)的决策过程。一个困难的预测问题,通过树的分支节点,被划分成两个或多个较为简单的子集,从结构上划分为不同的子问题。将依规则分割数据集的过程不断递归下去(RecursivePartitioning)。随着树的深度不断增加,分支节点的子集越来越小,所需要提的问题数也逐渐简化。当分支节点的深度或者问题的简单程度满足一定的停止规则(StoppingRule)时,该分支节点会停止劈分,此为自上而下的停止阈值(CutoffThreshold)法;有些决策树也使用自下而上的剪枝(Pruning)法。分支节点正如名称所指,分支节点决定输入数据进入哪一个分支。每个分支节点对应一个分支函数(劈分函数),将不同的预测变量的值域映射到有限,离散的分支上。根节点根节点是一个特殊的分支节点,它是决策树的起点。对于决策树来说,所有节点的分类或者回归目标都要在根节点已经定义好了。如果决策树的目标变量是离散的(序数型或者是列名型变量),则称它为分类树(ClassificationTree);如果目标变量是连续的(区间型变量),则称它为回归树(Regressio...
代码星球 代码星球·2021-02-23

knn算法介绍以及实例演示

本文参考:常用数据挖掘算法总结及Python实现,机器学习实战,以及网友http://www.cnblogs.com/jtianwen2014/p/4249003.html算法思路:  存在一个样本数据集,也称作训练样本集,并且样本中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系,输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似的数据(最近邻)的分类标签。一般来说,我们只选择样本集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数,最后,选择k个最相似的数据中出现次数最多的分类,作为新数据的分类。算法优缺点1)优点简单,易于理解,易于实现,无需估计参数,无需训练;适合样本容量比较大的分类问题特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好2)缺点懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢;可解释性较差,无法给出决策树那样的规则对于样本量较小的分类问题,会产生误差适用情况:由于k...

本篇内容简要介绍BASE64、MD5、SHA、HMAC几种加密算法

BASE64编码算法不算是真正的加密算法。     MD5、SHA、HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法。我们通常只把他们作为加密的基础。单纯的以上三种的加密并不可靠。 BASE64 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(TheBase64Content-Transfer-Encodingisdesignedtorepresentarbitrarysequencesofoctetsinaformthatneednotbehumanlyreadable.) 常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。  通过java代码实现如下: Java代码  /**  * BASE64解密  * &nbs...

Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

本文由网络资料整理转载而来,如有问题,欢迎指正!分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。先来看看8种排序之间的关系:1.直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 [java]viewplaincopy1.packagecom.njue;2.3.publicclassinsertSort{4.5.publicinsertSort(){6.inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};7.inttemp=0;8.for(inti=1...

TF-IDF算法

1...
代码星球 代码星球·2021-02-22

算法学习1-插入排序

学习算法,简单做了个小练习,插入算法:1<scripttype="text/javascript">2varn=100;3vararray=newArray(n);4//用A来进行排序5varA=newArray();6//生成100个随机数的数组7for(vari=0;i<array.length;i++)8{9array[i]=Math.floor(Math.random()*n);10document.writeln(array[i]);11}12//插入算法函数13functioninsertSort()14{15A[0]=array[0];16varj=1;17vari=0;18for(j;j<array.length;j++)19{20//从第二个数开始把已经有的数组中的数据赋值给A,然后排序21A[j]=array[j];22varkey=array[j];23i=j-1;24//当前数据比已经排好序的数据最末尾要小时,则要插入。使用循环,直到把这个数插入到比它大的第一个数前面25//相当于对当前数据和已经排好序的做一次冒泡排序,小的冒到前面去26...
代码星球 代码星球·2021-02-21

javascript学习6-练习之3二分查找算法

二分查找算法,对数据进行查找并且显示位置。核心思想:将所查找数据与查询数组中间的数进行比较,findVal<midVal,则在左边进行二分查找,否则在右边进行二分查找递归调用具体代码如下:1//二分查找2varstring2=[1,3,42,88,123,143];3varleftIndex=0;4varrightIndex=5;5functionbinarySearch(string2,findVal,leftIndex,rightIndex)6{7if(leftIndex>rightIndex)8{9//提示找不到,防止无穷递归10document.write("找不到");11return;12}13varmidVal=string2[Math.floor((leftIndex+rightIndex)/2)]14//比较15if(findVal>midVal)16{17leftIndex=Math.floor((leftIndex+rightIndex)/2)+1;18binarySearch(string2,findVal,leftIndex,rightInd...

javascript学习5-练习之2冒泡排序算法

复习冒泡排序算法,同时自己也写了一个排序算法。实现效果:1.自己的算法思想:数组中数据取第一个为默认最小,依次和后面每个数据比较,只要有比其小的就交换直至找出最小的。然后将第二个数据与其后面所有数据比较,找出最小,依次重复2.冒泡排序算法思想:数据从最低端到最高端为a[n]......a[0]第一轮:将a[0]与a[1]比较,高者上,然后依次比较a[1]和a[2]....a[n-1]和a[n]每次将大的往上冒第二轮:将a[0]与a[1]比较,高者上,然后依次比较a[1]和a[2]...a[n-2]和a[n-1]每次大的往上冒,注意此时第一轮最大的已经排出来,故不需要将[n-1]与[n]相比较...第n轮:将a[0]与a[1]比较高者往上冒。然后a[1]与a[2]比较,大的往上冒。    此处前面已经排出来了n-1个最大的,一共n+1个数,故此时只有a[0]和a[1]两个没有比出最大的了。到第n轮,数据比较完成。具体代码如下:1.我自己的算法代码1//自己的排序算法2vars=[1,2,3,5,77,22,11,14,12,24];3//排序前4d...

小程序 之使用HMACSHA1算法加密报文

首先说说我们前端常用的加密技术,我们常用的加密技术有:如MD5加密,base64加密今天要说的是HMACSHA1加密技术先介绍下什么是SHA1算法,安全哈希算法(SecureHashAlgorithm)主要适用于数字签名标准(DigitalSignatureStandardDSS)里面定义的数字签名算法(DigitalSignatureAlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要,(但会有1x10^48分之一的机率出现相同的消息摘要,一般使用时忽略)。  SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。  单向散列函数的安...
首页上一页12345...下一页尾页