数据挖掘上机报告 - 图文
更新时间:2024-03-18 00:45:01 阅读量: 综合文库 文档下载
- 数据挖掘实训报告推荐度:
- 相关推荐
数据挖掘实验上机报告
课程名称 数据挖掘 学生学院 管理学院 __ 专业班级
学 号 学生姓名_____
指导教师________刘国胜老师_______
2016 年 6 月
第一次上机训练内容
一 、 基础训练 ( 以下内容可参考课件 ) 1、 创建标量、行向量、列向量、矩阵;
标量——单个数据
行向量——一行数据
列向量——一列数据
矩阵——m行n列的二维数据
2、基本函数与操作;
(1)创建一个向量(数组),求出向量的长度、转置、各元素之和、最大值、最小值;
向量的长度、
转置、
各元素之和、
最大值、
最小值
(2)创建一个二维矩阵,取出矩阵的某一个元素、某一行、某一列、某一子矩阵;
创建一个二维矩阵
取出矩阵的某一个元素、
某一行、
某一列、
某一子矩阵
(3)创建两个二维方阵,计算两个矩阵的和、积、点积,计算两个矩阵横向连接和纵向连 接后的新矩阵; 创建两个二维方阵,
计算两个矩阵的和、
积、
点积,
计算两个矩阵横向连接
纵向连接新矩阵;
(4)创建一个向量,找出向量中所有大于 0 的元素的下标。
3、自定义函数(可在帮助文件中搜索关于 function 的帮助文档)
(1)自定义一个函数,输入为两个实数,输出为此两个数的和、差、积、商; 代码:
function [he cha ji shang] = Compute4(a,b) %UNTITLED ′?′|??ê?óD1?′?oˉêyμ??aòa % ′?′|??ê??ê???μ?÷ he=a+b cha=a-b ji=a*b shang=a/b end
代码验证:
>> c=Compute4(4,5)
(2)自定义一个函数,输入为一个区间的左边界、右边界和步长,以该步长在此区间内绘 制出函数 f(x)=x*sin(x)的图像; 代码:
function [z] = Image01(a,b,c) x=a:c:b y=x.*sin(x) z=plot(x,y) end
验证:
图像
(3)自定义一个函数,输入为一个向量,输出为向量中所有比前一个元素大的当前元素之 和。 代码:
function [bb] = Sum01(a)
c=length(a) bb=0 for i=2:c
if (a(i)>a(i-1)) bb=bb+a(i) end end
代码验证:
4、自定义一个文件夹,将以上所有自定义函数放入此文件夹中,并让 matlab 程序的当前路
径指向此文件夹
第二次上机训练内容
本次上机主要训练如何实现关联规则 Apriori 算法,训练前需掌握如何按算法流程对实 例进行手工计算,例如,之前布置的课后作业:
? 已知交易记录数据库 D 中有 9 条交易记录(事务): ? T1:A,B,E T2:B,D T3:B,C T4:A,B,D ? T5:A,C T6:B,C T7:A,C T8:A,B,C,E ? T9:A,B,C
? 设定最小支持度为 20%,最小可信度为 60%,找出所有的强规则并计算其支持度和 可信度
在对以上类型的问题进行关联规则挖掘时,需要考虑以下算法实现的问题: (1)首先考虑如何用(-1/0/1)表示事务集、频繁集、关联规则; (2)其次考虑创建两个函数,分别计算项集的支持度和可信度; (3)然后考虑如何得到所有的频繁项集;
(4)最后考虑如何从所有频繁集中找出强关联规则。 提示 :
1、此算法的接口可定义为:
[R,sup,conf]=Apriori(D,min_sup,min_conf)
其中输入变量分别为事务集、最小支持度和最小可信度,输出分别为强规则、支持度和 可信度。在作业中的例子中,事务集的可表示为: D(1:4, :)=[1,1,0,0,1; 0,1,0,1,0; 0,1,1,0,0; 1,1,0,1,0]; 输出的强规则由-1/0/1 组成,类似有如下形式: R=[-1, 1, 0, -1, 0]
此规则的含义是 A,D?B。
2、创建的计算支持度的函数有如下形式: sup=compute_sup(S, D)
其中 S 为要计算支持度的项集,由 0/1 组成,有类似于上一条中 R 的形式。
现在假设 S=[1, 0, 1, 0,0],则其计算支持度时需要顺序与 D 中的每一行进行比较,比较 的公式如下:
判断:all(D(i, :)-S)==true,如成立则支持度计数增加1,否则不增加。 3、此问题的算法实现过程可能用到的 matlab 函数包含: eye, all, find, size, zeros, nchoosek 原理:
Apriori算法的基本过程是:
扫描一遍数据库,得到一阶频繁项;用一阶频繁项构造二阶候选项;扫描数据库对二阶候选项进行计数,删除其中的非频繁项,得到二阶频繁项;然后构造三阶候选项,以此类推,直到无法构造更高阶的候选项,或到达频繁项集的最大长度限制。Apriori算法的示意流程如下图所示:
如何从k阶的频繁项集生成k+1阶候选项集:自连接+裁剪(若k+1阶候选项的k阶子集中至少有一个不存在于k阶频繁项集中,则裁剪——Apriori裁剪规则,又称向下闭合特性)
表示事务集:
T1:A,B,E 1 1 0 0 1 T2:B,D 0 1 0 1 0 T3:B,C 0 1 1 0 0 T4:A,B,D 1 1 0 1 0 T5:A,C 1 0 1 0 0 T6:B,C 0 1 1 0 0 T7:A,C 1 0 1 0 0 T8:A,B,C,E 1 1 1 0 1 T9:A,B,C 1 1 1 0 0
计算项集的支持度: 代码:
function [sup] = compute_sup(S,D) [n,m]=size(D); sup=0;
for i=1:n
if all((D(i,:)-S)>=0)==true sup=sup+1; end end
sup = sup/n end
验证:
计算项集的置信度: 代码:
function [conf] = compute_conf(R,D)
conf=compute_sup(abs(R),D)/compute_sup((abs(R)-R)/2,D); end
Apriori.m 代码:
function [R,SupR,Conf]=Aprior(D,min_sup,min_conf) [m,n]=size(D); L=[]; C=[]; Lk=[]; Ck=[];
Sup=[];%频繁集L的支持度系数矩阵
for k=1:n, if (k==1)
Ck=eye(n); else
p=size(Lk,1);%1,获取矩阵的行数 Ck=[];
for i=1:p-1%find()位置的判定:在矩阵中,第一列开始,自上而下,依次为1,2,3...,然后再从第二列,第三列依次往后数) for j=i+1:p
indi=find(Lk(i,:)==1); indj=find(Lk(j,:)==1);
if all(indi(1:end-1)==indj(1:end-1)) && (indi(end)~=indj(end)) Ck=[Ck;Lk(i,:) | Lk(j,:)]; end;
end; end end;
q=size(Ck,1);%获取矩阵的行数,即C1的项集 Supk=zeros([q,1]);%产生q×1的零矩阵 for i=1:q%CK的行数 for j=1:m%D的行数
if all(D(j,:)-Ck(i,:)>=0)%D的行-CK的行,若大于0则说明包含 Supk(i)=Supk(i)+1;%supk的第i行加1 end; end; end;
ind=find(Supk>=min_sup*m);
Sup=[Sup;Supk(ind,:)];%把支持度系数放到Sup矩阵中,第二个算法要用到 Lk=Ck(ind,:);
L=[L;Lk]; end;
[R,SupR,Conf]=find_rule(D,L,Sup,min_conf);
Find_rule.m
function [R,SupR,Conf]=find_rule(D,L,Sup,min_conf) R=[]; Conf=[]; SupR=[];
[m,n]=size(L); [g,h]=size(D);
for i=1:m%i是L的第i行,比如i=13,[1,1,0,0,1]
rowLi=sum(L(i,:)>0);%rowLi是L第i行含1的个数 rowLi=3 if(rowLi>1)
ind=find(L(i,:)==1);%ind是L第i行含1的下标矩阵 ind=[1,2,5] for j=1:rowLi-1 %j=1,j=2
nchoosei=nchoosek(ind,j);%[1,2,5][12,15,25] [a,b]=size(nchoosei);%a=3,b=1/a=3,b=2 for x=1:a
line_temp=zeros(1,n);%一个1×5的零矩阵, lineL=L(i,:);%L的第i行 for y=1:b
lineL(1,nchoosei(x,y))=-1;%每次循环将L的第i个集项的一个非空子集当成条件改成-1
line_temp(1,nchoosei(x,y))=1;%把零矩阵中条件项所在的位置改成1,用于接下来算该规则的置信度 end
for z=1:m
function r = entropy(z) s=sum(z); r=0;
for ri=1:length(z)
r=r-z(ri)/s.*log2(z(ri)/s); end;
验证:
第四次上机训练报告
代码:
function [z]=my_fun(x) z=x*sin(10*pi*x)+2; z=-z; end
>> options = gaoptimset('Generations',200,'PopulationSize',20,'PlotFcns',@gaplotbestf,'StallGenLimit', 200); >> options.Generations = 2000; %最大迭代数设为2000
>> [X,FVAL,EXITFLAG,OUTPUT] =ga(@my_fun, 1 ,[], [],[],[],[],[2,-1],[],options); Optimization terminated: average change in the fitness value less than options.TolFun. 运行结果如图
versicolor类和非versicolor类
线性核函数
径向基核函数
virginica类和非virginica类 线性基函数
径向基函数
正在阅读:
数据挖掘上机报告 - 图文03-18
2012高三 高考化学方程式之元素及其化合物性质部分04-07
不该丢掉的诚信作文500字07-09
第三十章反比例函数教材分析(1)解读03-12
新颖玛瑙加工厂年产玛瑙工艺制品11万套件建设项目可行性研究报告08-21
食品安全示范店申报表- 副本11-16
我眼中的当代中日文化交流08-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据挖掘
- 上机
- 图文
- 报告
- 大学体育理论考试试题
- 新课改下的高中信息技术教学模式
- 大同恒大绿洲首期园建土方工程合同立项审批表(GC-27)
- 大三西班牙文化课考试资料 - 图文
- 贮存运输协议
- 地产名词大全
- 浅析高职院校新生辅导管理工作
- 山东省东营市胜利第一中学2017届高三上学期周测(2017.1.1)数学试
- 2018全国咨询工程师投资继续教育智慧城市规划试卷100分
- 面试时的肢体语言很重要
- 灌阳地质实习报告 - 图文
- 现在的家长生怕自己的孩子输在起跑线上
- 示波器标准装置期间核查方案的编制与实施
- 4秋《管理方法与艺术》作业
- 2015年浙江青田·温溪家居建材城可行性研究报告 - 图文
- 蚌埠市校内留守儿童之家建设县
- 最新盐业体制改革
- 2018年电大作业个人与团队管理形成性考核册参考答案 - 图文
- 一年级道德与法制上册13美丽的冬天教案
- 小学语文写字教学的策略