导航:首页 > 源码编译 > 数据挖掘算法实验

数据挖掘算法实验

发布时间:2023-01-27 00:59:43

Ⅰ 数据挖掘的主要步骤有哪些

(1)信息收集:根据确定的数据分析对象抽象出在数据分析中所需要的特征信息,然后选择合适的信息收集方法,将收集到的信息存入数据库。对于海量数据,选择一个合适的数据存储和管理的数据仓库是至关重要的。


(2)数据集成:把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。


(3)数据规约:执行多数的数据挖掘算法即使在少量数据上也需要很长的时间,而做商


业运营数据挖掘时往往数据量非常大。数据规约技术可以用来得到数据集的规约表示,它小得多,但仍然接近于保持原数据的完整性,并且规约后执行数据挖掘结果与规约前执行结果相同或几乎相同。


(4)数据清理:在数据库中的数据有一些是不完整的(有些感兴趣的属性缺少属性值),含噪声的(包含错误的属性值),并且是不一致的(同样的信息不同的表示方式),因此需要进行数据清理,将完整、正确、一致的数据信息存入数据仓库中。不然,挖掘的结果会差强人意。


(5)数据变换:通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。对于有些实数型数据,通过概念分层和数据的离散化来转换数据也是重要的。


(6)数据挖掘过程:根据数据仓库中的数据信息,选择合适的分析工具,应用统计方法、事例推理、决策树、规则推理、模糊集、甚至神经网络、遗传算法的方法处理信息,得出有用的分析信息。


(7)模式评估:从商业角度,由行业专家来验证数据挖掘结果的正确性。


(8)知识表示:将数据挖掘所得到的分析信息以可视化的方式呈现给用户,或作为新的知识存放在知识库中,供其他应用程序使用。

Ⅱ 毕业设计题目是(选用决策树算法的数据挖掘实例分析与设计)

应用遗传算法和决策树算法在数据挖掘中的比较
贾修一 MG0533024
(南京大学 计算机科学与技术系, 江苏省南京市 210093)
A Comparision between the Genetic Algorithms and Decision Tree For Data
Mining
Abstract: This chapter introces the application with the genetic algorithms and ID3 for the data mining, choose
the better algorithm to classifier the given data sets through.the comparision between the two algorithms. And
analyzing the results of the experiment as well as reasons.
Key words: genetic algrithms; data ming; decision Tree
摘 要: 对训练数据分别采用遗传算法和决策树算法进行数据挖掘,通过比较两者实验得出的结果,来选
择更适合本数据集的算法进行分类,并分析实验结果及原因.
关键词: 遗传算法;数据挖掘;决策树算法

1. 数据的描述
数据属性有139351维,每个属性的取值为0或1,分类标识只有两类:A和I.数据的维数太高,在数
据预处理阶段最好做属性的约简,进行降维的处理.
(1)数据维数太高,易造成一定的维数灾难,使得分类挖掘时间过长.
(2)数据庞大,肯定有些噪音数据.
2.算法的设计
为了提高最后分类的精确度,特设计了两种方法进行比较,从中选出一种精确度高的方法.第一种是根
据数据的特点,每个属性只取值0和1,所以进行属性约简的时候采用遗传算法.遗传算法的优点是可以对
大规模的数据进行一定的属性约简.
2.1 遗传算法描述:
(1) 遗传算法的步骤是编码,选择,交叉,变异.通过模仿自然界中的遗传进化原理,来对数据进行
处理.而遗传算法的好坏取决于适应度函数的选择,进化的次数,和交叉变异的合理性和概率性等,所以要
想设计一个合适的遗传算法必须经过大量的实验.
(2) 就训练数据而言,对每一维属性的取值,在类标识一定的条件下,取1和取0的概率之间有个绝
对值差α1,α2,该差越大,说明该属性的重要程度越高.同时还要考虑对同一维属性,不论最终类标识是
什么,取值都相同的话,则该属性可以被认为是无效的属性,对最后的分类没有影响,所以适应度函数取对
每一维属性的α1,α2的熵,熵越大,则属性的重要程度就越低.
(3) 编码阶段,就把每一位属性做为一个长度为139351的染色体的一个基因,1表示选择该属性,0
表示不选择该属性.随机初始化8个种群,按照适应度函数的定义,从中选取4个适应度函数最小的染色体
做为父代.
(4) 将选出的父代进行交叉操作,因为是降维操作,所以交叉就是取两个染色体之间隔位进行AND(与)
操作,变异就是按照一定的概率,在139351维上随机的100位进行非操作,即:0变为1,1变为0.依次又
产生4个后代,结合原来的4个父代组成新的8个初始种群.进化50次.
然后利用贝叶斯方法进行分类.得到的是一个弱的学习器h,然后利用AdaBoost方法进行强化学习分类器.
2.2 AdaBoost算法描述:
(1) 给定训练集(x1,y1),(x2,y2),…,(xm,ym)m个.
(2) yi∈{-1,+1},实例xi∈X的正确标识.
(3) for t=1,…,T
2
{
构造{1,…,m}上的分布Dt,找出弱分类器 ht:X->{-1,+1},
同时在Dt产生很小的错误εt:
εt=PrDt[ht(xi)≠yi]
}
(4)构造 Dt,D1(i)=1/m
Dt+1(i)= Dt/Zt*exp(-αt*yi*ht(xi))//(注:yi和ht(xi)只能取值于{-1,+1})
其中Zt是归一化因子(使Dt+1为分布)
αt=1/2*㏑((1-εt)/ εt)>0
(5)输出最终分类器:Hfinal(x)=sign(∑αt*ht(x)).
第二种方法就是直接使用决策树方法(ID3算法)进行分类.求出每一维属性的的信息增益,建立一棵
决策树,利用决策树来进行分类.
2.3 决策树算法(ID3)
(1)创建节点N;
(2)if samples都在同一个类C then
{
返回N作为叶结点,以类C标识;
}
(3)if attribut_list为空 then
{
返回N作为叶结点,标记为samples中最普通的类;
}
(4) 选择attribute_list中具有最高信息增益的属性test_attribute;标记节点N为test_attribute;
(5) for each test_attribute中的已知值a
由节点N长出一个条件为test_attribute=a的分枝;
(6) 设s是samples中test_attribute=a的样本的集合;
(7) if s为空 then
加上一个树叶,标记weisamples中最普通的类;
else
加上一个由ID3(s,attribute_list-test_attribute)返回的节点;
3. 实验分析
就第一种方法:通过实验,在进化次数上选取50次,使得维数约简到1500维左右时得到的分类效果最
好,但由于种群是随机产生的,所以在未进行boosting强化时正确率在60~85%之间,不是很稳定,但是符
合弱分类器的要求,即只要正确率超过50%就行,在进行boosting后,正确率能超过80%,但可能是数据进
行约简的不好或进行迭代的次数选取不太合适,正确率却没有ID3的高.就本数据集而言,由于最终标识只
有2个,所以比较适合使用遗传算法和Adaboost进行训练.正确率不高主要问题应该在:
(1)遗传算法的适应度函数没有选好,不同的编码方式对应不同的适应度函数取法,就本例而言,二进
制编码方式应该是可以的,就是在对适应度函数取的时候没有一个合适的数据表示,只好利用了熵的概念,
但在实际意义上感觉效果并不是很好.属性约简后正确率不高,这应该是最主要的原因.
(2)交叉变异的方式或许有问题,但是不是主要问题,只要适应度函数选好,也就是选择操作正确的话,
这两步操作对最终结果应该影响不大.
(3)进化次数的改进,通过实验,考虑最后的正确率和运行时间,发现在进化50次和约简到1500维时
贾修一:应用遗传算法和决策树算法在数据挖掘中的比较3
效果最好.但随着适应度函数的不同,进化次数也不同.从理论上说,进化次数越多,效果也应该越好,最
终达到一个最优解,但同时要避免得到局部最优解,就需要对传统的遗传算法进行改进,避免早熟问题.在
此就不讨论.
(4)利用贝叶斯分类得到的弱学习器,在格式上并不和Adaboost完全适应,所以在应用的时候效果不
是很好,这也取决于迭代的次数和训练样集的选取.
就决策树方法,对这么多维的属性在某种意义上说并不合适,但就对本实验给定的训练样例集而言,通
过建树,只要6个结点就可以,而且正确率超过90%,所以,根据不同的数据集采用不同的方法得到的正确
率是不一样的.所以在某种程度上说,奥卡姆剃刀原理是正确的.
由于时间有限,没有对第一种方法进行一定的改进和进行其他方法的实验,故最终采用ID3算法进行分
类,采用前100个数据进行训练,后10个进行测试,错误的只有1个.采用前80个数据进行训练,后30
个进行测试的时候只有2个分类错误.正确率自测还是可以的.
4. 总结和感谢
通过本次实验,最大的收获就是采用了两种不同的方法进行了实验比较,虽然自己原先设计的算法没有
得到期望中的效果,并最终采用了其他的算法,但是通过实验,我对遗传算法和AdaBoost强化弱学习器方法
等有了更深的了解,也明白对不同的数据,是没有一种万能通用的解法的.以后会继续改进自己的算法,争
取取得好的效果.最后感谢老师能提供这次实验的数据.

Ⅲ 带你了解数据挖掘中的经典算法

数据挖掘的算法有很多,而不同的算法有着不同的优点,同时也发挥着不同的作用。可以这么说,算法在数据挖掘中做出了极大的贡献,如果我们要了解数据挖掘的话就不得不了解这些算法,下面我们就继续给大家介绍一下有关数据挖掘的算法知识。
1.The Apriori algorithm,
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。这个算法是比较复杂的,但也是十分实用的。
2.最大期望算法
在统计计算中,最大期望算法是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量。最大期望经常用在机器学习和计算机视觉的数据集聚领域。而最大期望算法在数据挖掘以及统计中都是十分常见的。
3.PageRank算法
PageRank是Google算法的重要内容。PageRank里的page不是指网页,而是创始人的名字,即这个等级方法是以佩奇来命名的。PageRank根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票,被链接的越多,就意味着被其他网站投票越多。这个就是所谓的“链接流行度”,这个标准就是衡量多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自学术中一篇论文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越高。
3.AdaBoost算法
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,然后把这些弱分类器集合起来,构成一个更强的最终分类器。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。这种算法给数据挖掘工作解决了不少的问题。
数据挖掘算法有很多,这篇文章中我们给大家介绍的算法都是十分经典的算法,相信大家一定可以从中得到有价值的信息。需要告诉大家的是,我们在进行数据挖掘工作之前一定要事先掌握好数据挖掘需呀掌握的各类算法,这样我们才能在工总中得心应手,如果基础不牢固,那么我们迟早是会被淘汰的。职场如战场,我们一定要全力以赴。

阅读全文

与数据挖掘算法实验相关的资料

热点内容
进栈算法代码 浏览:785
抗日战争电影100部老电影 浏览:139
重生为杨过 浏览:579
吃甜品点心解压的声音 浏览:580
苹果软件安卓手机如何下载 浏览:130
宝书网txt下载全文 浏览:519
尺度大的Les电影 浏览:309
免费V片在线观看 浏览:726
word无法转pdf 浏览:911
玩具现实版解压视频 浏览:924
哺乳人妻电影日本在线播放 浏览:489
科技编译原理动画 浏览:643
精彩发现app里怎么投保意外险 浏览:145
美国电影爱情电影尺度大的 浏览:376
8个人在一个名为列车上 浏览:968
杨浦区少儿编程 浏览:945
免登录php网盘源码 浏览:422
王的命令在线观看全集 浏览:928
西安市社保卡APP叫什么 浏览:605
怎么关掉华为手机自动更新app 浏览:906