数据挖掘作业
- 格式:docx
- 大小:405.81 KB
- 文档页数:12
《数据挖掘》作业第一章引言一、填空题(1)数据库中的知识挖掘(KDD)包括以下七个步骤:数据清理、数据集成、数据选择、数据变换、数据挖掘、模式评估和知识表示(2)数据挖掘的性能问题主要包括:算法的效率、可扩展性和并行处理(3)当前的数据挖掘研究中,最主要的三个研究方向是:统计学、数据库技术和机器学习(4)在万维网(WWW)上应用的数据挖掘技术常被称为:WEB挖掘(5)孤立点是指:一些与数据的一般行为或模型不一致的孤立数据二、单选题(1)数据挖掘应用和一些常见的数据统计分析系统的最主要区别在于:(B )A、所涉及的算法的复杂性;B、所涉及的数据量;C、计算结果的表现形式;D、是否使用了人工智能技术(2)孤立点挖掘适用于下列哪种场合?(D )A、目标市场分析B、购物篮分析C、模式识别D、信用卡欺诈检测(3)下列几种数据挖掘功能中,( D )被广泛的应用于股票价格走势分析A. 关联分析B.分类和预测C.聚类分析D. 演变分析(4)下面的数据挖掘的任务中,( B )将决定所使用的数据挖掘功能A、选择任务相关的数据B、选择要挖掘的知识类型C、模式的兴趣度度量D、模式的可视化表示(5)下列几种数据挖掘功能中,(A )被广泛的用于购物篮分析A、关联分析B、分类和预测C、聚类分析D、演变分析(6)根据顾客的收入和职业情况,预测他们在计算机设备上的花费,所使用的相应数据挖掘功能是( B )A.关联分析B.分类和预测C. 演变分析D. 概念描述(7)帮助市场分析人员从客户的基本信息库中发现不同的客户群,通常所使用的数据挖掘功能是( C )A.关联分析B.分类和预测C.聚类分析D. 孤立点分析E. 演变分析(8)假设现在的数据挖掘任务是解析数据库中关于客户的一般特征的描述,通常所使用的数据挖掘功能是( E )A.关联分析B.分类和预测C. 孤立点分析D. 演变分析E. 概念描述三、简答题(1)什么是数据挖掘?答:数据挖掘是指从大量数据中提取或“挖掘”知识。
数据挖掘的其他基本功能介绍一、关联规则挖掘关联规则挖掘是挖掘数据库中和指标(项)之间有趣的关联规则或相关关系。
关联规则挖掘具有很多应用领域,如一些研究者发现,超市交易记录中的关联规则挖掘对超市的经营决策是十分重要的。
1、 基本概念设},,,{21m i i i I =是项组合的记录,D 为项组合的一个集合。
如超市的每一张购物小票为一个项的组合(一个维数很大的记录),而超市一段时间内的购物记录就形成集合D 。
我们现在关心这样一个问题,组合中项的出现之间是否存在一定的规则,如A 游泳衣,B 太阳镜,B A ⇒,但是A B ⇒得不到足够支持。
在规则挖掘中涉及到两个重要的指标:① 支持度 支持度n B A n B A )()(⇒=⇒,显然,只有支持度较大的规则才是较有价值的规则。
② 置信度 置信度)()()(A n B A n B A ⇒=⇒,显然只有置信度比较高的规则才是比较可靠的规则。
因此,只有支持度与置信度均较大的规则才是比较有价值的规则。
③ 一般地,关联规则可以提供给我们许多有价值的信息,在关联规则挖掘时,往往需要事先指定最小支持度与最小置信度。
关联规则挖掘实际上真正体现了数据中的知识发现。
如果一个规则满足最小支持度,则称这个规则是一个频繁规则;如果一个规则同时满足最小支持度与最小置信度,则通常称这个规则是一个强规则。
关联规则挖掘的通常方法是:首先挖掘出所有的频繁规则,再从得到的频繁规则中挖掘强规则。
在少量数据中进行规则挖掘我们可以采用采用简单的编程方法,而在大量数据中挖掘关联规则需要使用专门的数据挖掘软件。
关联规则挖掘可以使我们得到一些原来我们所不知道的知识。
应用的例子:* 日本超市对交易数据库进行关联规则挖掘,发现规则:尿片→啤酒,重新安排啤酒柜台位置,销量上升75%。
* 英国超市的例子:大额消费者与某种乳酪。
那么,证券市场上、期货市场上、或者上市公司中存在存在哪些关联规则,这些关联规则究竟说明了什么?关联规则挖掘通常比较适用与记录中的指标取离散值的情况,如果原始数据库中的指标值是取连续的数据,则在关联规则挖掘之前应该进行适当的数据离散化(实际上就是将某个区间的值对应于某个值),数据的离散化是数据挖掘前的重要环节,离散化的过程是否合理将直接影响关联规则的挖掘结果。
大连理工大学22春“计算机科学与技术”《数据挖掘》作业考核题库高频考点版(参考答案)一.综合考核(共50题)1.在Python3.5中,集合类型的各个元素之间存在先后顺序。
()A.正确B.错误参考答案:B2.以下哪一种数据类型元素之间是无序的,相同元素在集合中唯一存在?()A.元组B.字符串C.列表D.集合参考答案:D3.python中内置了round函数来进行小数的四舍五入操作,请选择round(3.1415923, 4)对应的结果()。
A.3.142B.3.14C.3.1416D.3.0参考答案:C4.遍历循环for语句中,不可以遍历的结构是()。
A.字符串B.元组C.数字类型D.字典5.以下选项中不是Python关键字的是()。
A.whileB.exceptC.inD.do参考答案:D6.以下选项中是Python中文分词的第三方库的是()。
A.turtleB.jiebaC.timeD.itchat参考答案:B7.以下选项中,不是Python对文件的打开模式的是()。
A.‘c’B.‘r+’C.‘w’D.‘r’参考答案:A8.Python中的注释是为了让计算机更能理解程序表达的意思。
()A.正确B.错误参考答案:B9.B.错误参考答案:B10.以下选项对Python文件操作描述错误的是()。
A.当文件以文本方式打开时,读写会按照字节流方式进行B.Python能以文本和二进制两种方式处理文件C.文件使用结束后要用close方法关闭,释放文件的使用授权D.Python能通过内置的open函数打开一个文件进行操作参考答案:A11.局部变量若与全局变量重名,则不能在函数内部创建和使用。
()A.正确B.错误参考答案:B12.下列不是Python对文件进行读操作的方法是()。
A.readtextB.readlinesC.readD.readline参考答案:A13.for循环和while循环中都存在一个else扩展用法,continue关键字对else没有影响。
数据挖掘Part I:手写作业:Part II: 上机作业:Recommendation Systems Hand-in: The list of association rules generated by the model.设置min-support=5%,min-confidence=50%,如图所示:结果如下图所示:关联规则如下:⇒biscuits m ilk yoghurt milk⇒⇒tom ato souse pastatomato souse milk⇒∧⇒pasta water milk⇒juices milk∧⇒biscuits pasta milk⇒rice pasta∧⇒tomato souse pasta milk∧⇒coffee pasta milk∧⇒tomato souse milk pasta∧⇒biscuits w ater m ilkbrioches pasta milk∧⇒∧⇒yoghurt pasta milkSort the rules by lift, support, and confidence, respectively to see the rules identified. Hand-in: For each case, choose top 5 rules (note: make sure no redundant rules in the 5 rules) and give 2-3 lines comments. Many of the rules will be logically redundant and therefore will have to be eliminated after you think carefully about them.按support排序:support最高的5个规则是:1.biscuits m ilk⇒2.yoghurt milk⇒3.tom ato souse pasta⇒4.tomato souse milk⇒5.pasta water milk∧⇒按support排序的前5个规则没有冗余规则。
数据挖掘大作业例子1. 超市购物数据挖掘呀!想想看,如果把超市里每个顾客的购买记录都分析一遍,那岂不是能发现很多有趣的事情?比如说,为啥周五晚上大家都爱买啤酒和薯片呢,是不是都打算周末在家看剧呀!2. 社交媒体情感分析这个大作业超有意思哦!就像你能从大家发的文字里看出他们今天是开心还是难过,那简直就像有了读心术一样神奇!比如看到一堆人突然都在发伤感的话,难道是发生了什么大事情?3. 电商用户行为挖掘也很棒呀!通过分析用户在网上的浏览、购买行为,就能知道他们喜欢什么、不喜欢什么,这难道不是很厉害吗?就像你知道了朋友的喜好,能给他推荐最适合的礼物一样!4. 交通流量数据分析呢!想象一下,了解每个路口的车流量变化,是不是就能更好地规划交通啦?难道这不像是给城市的交通装上了一双明亮的眼睛?5. 医疗数据挖掘更是不得了!能从大量的病例中找到疾病的规律,这简直是在拯救生命啊!难道这不是一件超级伟大的事情吗?比如说能发现某种疾病在特定人群中更容易出现。
6. 金融交易数据挖掘也超重要的呀!可以知道哪些交易有风险,哪些投资更靠谱,那不就像有个聪明的理财顾问在身边吗!就好比能及时发现异常的资金流动。
7. 天气数据与出行的结合挖掘也很有趣呀!根据天气情况来预测大家的出行选择,真是太神奇了吧!难道不是像有了天气预报和出行指南合二为一?8. 音乐喜好数据挖掘呢!搞清楚大家都喜欢听什么类型的音乐,从而能更好地推荐歌曲,这不是能让人更开心地享受音乐吗!好比为每个人定制了专属的音乐播放列表。
9. 电影票房数据挖掘呀!通过分析票房数据就能知道观众最爱看的电影类型,这不是超厉害的嘛!就像知道了大家心里最期待的电影是什么样的。
我觉得数据挖掘真的太有魅力了,可以从各种看似普通的数据中发现那么多有价值的东西,真是让人惊叹不已啊!。
南开19春学期(1709、1803、1809、1903)《数据挖掘》在线作业-2一、单选题共20题,40分1、( )用替代的、较小的数据表示形式替换原数据。
A维归约B数量归约C离散D聚集【南开】答案是:B2、只有非零值才重要的二元属性被称作( )。
A计数属性B离散属性C非对称的二元属性D对称属性【南开】答案是:C3、职位可以按顺序枚举,对于教师有:助教、讲师、副教授、教授。
职位属性是( )。
A标称属性B序数属性C数值属性D二元属性【南开】答案是:B4、( )去掉数据中的噪声,这类技术包括分箱、回归和聚类。
A光滑B聚集C规范化D属性构造【南开】答案是:A5、在基于规则分类器的中,依据规则质量的某种度量对规则排序,保证每一个测试记录都是由覆盖它的“最好的”规格来分类,这种方案称为( )。
A基于类的排序方案B基于规则的排序方案C基于度量的排序方案D基于规格的排序方案【南开】答案是:B6、分位数是取自数据分布的每隔一定间隔上的点,把数据划分成基本上大小相等的连贯集合。
如:4-分位数是( )个数据点,它们把数据分布划分成4个相等的部分,使得每部分表示数据分布的四分之一。
A1B2C3D4【南开】答案是:C7、决策树学习:决策树算法对数据处理过程中,将数据按( )结构分成若干分枝形成决策树,从根到树叶的每条路径创建一个规则。
A树状B网状C星形D雪花形【南开】答案是:A8、以下属于可伸缩聚类算法的是( )。
ACUREBDENCLUECCLIQUEDOPOSSUM【南开】答案是:A9、( )将两个簇的邻近度定义为不同簇的所有点对的平均逐对邻近度,它是一种凝聚层次聚类技术。
AMIN(单链)BMAX(全链)C组平均DWard方法【南开】答案是:C10、如果规则集R中不存在两条规则被同一条记录触发,则称规则集R中的规则为( )。
A无序规则B穷举规则C互斥规则D有序规则【南开】答案是:C11、( )是KDD。
A数据挖掘与知识发现B领域知识发现C文档知识发现D动态知识发现【南开】答案是:A12、在有关数据仓库测试,下列说法不正确的是( )。
数据挖掘作业答案第二章数据准备5.推出在[-1,1]区间上的数据的最小-最大标准化公式。
解:标准化相当于按比例缩放,假如将在[minA,maxA]间的属性A的值v映射到区间[new_minA,new_maxA],根据同比关系得:(v-minA)/(v’-new_minA)=(maxA-minA)/(new_maxA-new_minA)化简得:v’=(v-minA)* (new_maxA-new_minA)/ (maxA-minA)+ new_minA6.已知一维数据集X={-5.0 , 23.0 , 17.6 , 7.23 , 1.11},用下述方法对其进行标准化:a) 在[-1,1]区间进行小数缩放。
解:X’={-0.050 ,0.230 ,0.176 ,0.0723 ,0.0111}b) 在[0,1]区间进行最小-最大标准化。
解:X’={0 , 1 , 0.807 ,0.437 ,0.218 }c) 在[-1,1]区间进行最小-最大标准化。
解:X’={-1 , 1 , 0.614 , -0.126 , 0.564}d) 标准差标准化。
解:mean=8.788 sd=11.523X’={-1.197 , 1.233 , 0.765 , -0.135 , -0.666}e) 比较上述标准化的结果,并讨论不同技术的优缺点。
解:小数缩放标准化粒度过大(以10为倍数),但计算简单;最小-最大值标准化需要搜索整个数据集确定最小最大数值,而且最小最大值的专家估算可能会导致标准化值的无意识的集中。
标准差标准化对距离测量非常效,但会把初始值转化成了未被认可的形式。
8.已知一个带有丢失值的四维样本。
X1={0,1,1,2}X2={2,1,*,1}X3={1,*,*,-1}X4={*,2,1,*}如果所有属性的定义域是[0,1,2],在丢失值被认为是“无关紧要的值”并且都被所给的定义域的所有可行值替换的情况下,“人工”样本的数量是多少?解:X1 “人工”样本的数量为 1X2 “人工”样本的数量为 3X3 “人工”样本的数量为9X4 “人工”样本的数量为9所以“人工”样本的数量为1×3×9×9=24310.数据库中不同病人的子女数以矢量形式给出:C={3,1,0,2,7,3,6,4,-2,0,0,10,15,6}a)应用标准统计参数——均值和方差,找出C中的异常点:mean=3.9286 sd=4.4153在3个标准差下的阈值:阈值=均值±3*标准差=3.928±3*4.4153=[-9.318,17.174]根据实际情况子女数不可能为负数,所以其范围可缩减为:[0,17.174]C中的异常点有:-2b)在2个标准差下的阈值:阈值=均值±2*标准差=3.928±2*4.4153=[-4.903,12.758]根据实际情况子女数不可能为负数,所以其范围可缩减为:[0,12.758]C中的异常点有:-2, 1511.已知的三维样本数据集X:X=[{1,2,0},{3,1,4},{2,1,5},{0,1,6},{2,4,3},{4,4,2},{5,2,1},{7,7,7},{0,0,0},{3,3,3}]。
Weka数据挖掘期末大作业是一个非常重要的任务。
它涉及到许多数据挖掘技术,可以帮助学生们了解数据挖掘的核心概念,以及如何应用这些技术来解决实际问题。
首先,学生需要了解Weka数据挖掘工具,包括其特点和功能。
Weka是一个开源的数据挖掘工具,它提供了各种有用的算法,可以帮助学生们进行数据分析,比如分类、聚类和关联分析。
Weka还有一个灵活的用户界面,可以让学生们轻松地查看和编辑数据。
其次,学生还需要了解如何通过Weka来完成期末大作业。
学生可以使用Weka的GUI工具,轻松地训练和评估机器学习模型。
另外,学生还可以使用Weka的API,在Java或其他编程语言中编写自己的算法。
第三,学生还需要考虑如何将实际问题转换为可以在Weka中解决的问题。
这要求学生们了解数据挖掘的基本概念,如数据预处理、特征选择、模型训练和评估。
最后,期末大作业还需要学生提交一份报告,说明他们在数据挖掘中学到的内容。
报告中需要包括算法的细节,以及实验结果分析,以便说明学生们是如何使用Weka解决实际问题的。
总之,Weka数据挖掘期末大作业是一个很重要的任务,可以帮助学生们更好地理解数据挖掘技术,以及如何将其应用于实际问题。
大工21春《数据挖掘》在线作业3试卷总分:100 得分:100一、单选题 (共 10 道试题,共 50 分)1.下面变量名称命名合法的是:()<-A.->_tempStr<-B.->is<-C.->2018python<-D.->123Python【-参考.选择-】:A2.下面不能用来作为变量名称的是:()<-A.->list<-B.->_1ab<-C.->not<-D.->a1b2【-参考.选择-】:C3.下列标识符中哪个是不合法的?()<-A.->40temp<-B.->tempStr<-C.->list<-D.->_124【-参考.选择-】:A4.遍历循环for语句中,不可以遍历的结构是()<-A.->字符串<-B.->元组<-C.->数字类型<-D.->字典【-参考.选择-】:C5.python中内置了round函数来进行小数的四舍五入操作,请选择round(3.1415923, 4)对应的结果:()<-A.->3.142<-B.->3.14<-C.->3.1416<-D.->3.0【-参考.选择-】:C6.以下选项中描述错误的是:()<-A.->Python是解释性语言<-B.->Python是跨平台语言<-C.->Python是脚本语言。
网络教育学院《数据挖掘》课程大作业题目: SVM算法原理以及python实现姓名:学习中心:要将庞大的数据转换成为有用的信息,必须先有效率地收集信息。
随着科技的进步,功能完善的数据库系统就成了最好的收集数据的工具。
数据仓库,简单地说,就是搜集来自其它系统的有用数据,存放在一整合的储存区内。
所以其实就是一个经过处理整合,且容量特别大的关系型数据库,用以储存决策支持系统所需的数据,供决策支持或数据分析使用。
数据挖掘的研究领域非常广泛,主要包括数据库系统、基于知识的系统、人工智能、机器学习、知识获取、统计学、空间数据库和数据可视化等领域。
主要是可以做以下几件事:分类、估计、预测、关联分析、聚类分析、描述和可视化、复杂数据类型挖掘。
运行环境Pyhton3numpy(科学计算包)matplotlib(画图所需,不画图可不必)计算过程st=>start: 开始e=>end: 结束op1=>operation: 读入数据op2=>operation: 格式化数据cond=>condition: 是否达到迭代次数op3=>operation: 寻找超平面分割最小间隔ccond=>conditon: 数据是否改变op4=>operation: 输出结果st->op1->op2->condcond(yes)->op4->econd(no)->op3啊,这markdown flow好难用,我决定就画到这吧=。
=输入样例/* testSet.txt*/3.542485 1.977398 -13.018896 2.556416-17.551510 -1.580030 12.114999 -0.004466-18.127113 1.274372 17.108772 -0.98690618.610639 2.046708 12.326297 0.265213-13.634009 1.730537 -10.341367 -0.894998-13.125951 0.293251 -12.123252 -0.783563-10.887835 -2.797792 -17.139979 -2.329896 11.696414 -1.212496 -18.117032 0.623493 18.497162 -0.266649 14.658191 3.507396 -18.197181 1.545132 11.208047 0.213100 -11.928486 -0.321870 -12.175808 -0.014527 -17.886608 0.461755 13.223038 -0.552392 -13.628502 2.190585 -17.407860 -0.121961 17.286357 0.251077 12.301095 -0.533988 -1-0.232542 -0.547690 -13.457096 -0.082216 -13.023938 -0.057392 -18.015003 0.885325 18.991748 0.923154 17.916831 -1.781735 17.616862 -0.217958 12.450939 0.744967 -17.270337 -2.507834 11.749721 -0.961902 -11.803111 -0.176349 -18.804461 3.044301 11.231257 -0.568573 -12.074915 1.410550 -1-0.743036 -1.736103 -13.536555 3.964960 -18.410143 0.025606 17.382988 -0.478764 16.960661 -0.245353 18.234460 0.701868 18.168618 -0.903835 11.534187 -0.622492 -19.229518 2.066088 17.886242 0.191813 12.893743 -1.643468 -11.870457 -1.040420 -15.286862 -2.358286 16.080573 0.418886 12.544314 1.714165 -16.016004 -3.753712 10.926310 -0.564359 -10.870296 -0.109952 -12.369345 1.375695 -11.363782 -0.254082 -17.279460 -0.189572 11.896005 0.515080 -18.102154 -0.603875 12.529893 0.662657 -11.963874 -0.365233 -18.132048 0.785914 18.245938 0.372366 16.543888 0.4331641-0.236713 -5.766721 -18.112593 0.29583919.803425 1.495167 11.497407 -0.552916-11.336267 -1.632889 -19.205805 -0.58648011.966279 -1.840439 -18.398012 1.58491817.239953 -1.764292 17.556201 0.24118519.015509 0.345019 18.266085 -0.23097718.545620 2.788799 19.295969 1.34633212.404234 0.570278 -12.037772 0.021919-11.727631 -0.453143 -11.979395 -0.050773-18.092288 -1.372433 11.667645 0.239204-19.854303 1.365116 17.921057 -1.32758718.500757 1.492372 11.339746 -0.291183-13.107511 0.758367 -12.609525 0.902979-13.263585 1.367898 -12.912122 -0.202359-11.731786 0.589096 -12.387003 1.573131-1代码实现# -*- coding: utf-8 -*-__author__ = 'Wsine'from numpy import *import matplotlib.pyplot as pltimport operatorimport timedef loadDataSet(fileName):dataMat = []labelMat = []with open(fileName) as fr:for line in fr.readlines():lineArr = line.strip().split('\t')dataMat.append([float(lineArr[0]),float(lineArr[1])])labelMat.append(float(lineArr[2])) return dataMat, labelMatdef selectJrand(i, m):j = iwhile (j == i):j = int(random.uniform(0, m))return jdef clipAlpha(aj, H, L):if aj > H:aj = Hif L > aj:aj = Lreturn ajclass optStruct:def __init__(self, dataMatIn, classLabels, C, toler):self.X = dataMatInbelMat = classLabelsself.C = Cself.tol = tolerself.m = shape(dataMatIn)[0]self.alphas = mat(zeros((self.m, 1)))self.b = 0self.eCache = mat(zeros((self.m, 2)))def calcEk(oS, k):fXk = float(multiply(oS.alphas, belMat).T * (oS.X * oS.X[k, :].T)) + oS.bEk = fXk - float(belMat[k])return Ekdef selectJ(i, oS, Ei):maxK = -1maxDeltaE = 0Ej = 0oS.eCache[i] = [1, Ei]validEcacheList = nonzero(oS.eCache[:, 0].A)[0]if (len(validEcacheList)) > 1:for k in validEcacheList:if k == i:continueEk = calcEk(oS, k)deltaE = abs(Ei - Ek)if (deltaE > maxDeltaE):maxK = kmaxDeltaE = deltaEEj = Ekreturn maxK, Ejelse:j = selectJrand(i, oS.m)Ej = calcEk(oS, j)return j, Ejdef updateEk(oS, k):Ek = calcEk(oS, k)oS.eCache[k] = [1, Ek]def innerL(i, oS):Ei = calcEk(oS, i)if ((belMat[i] * Ei < -oS.tol) and (oS.alphas[i] < oS.C)) or ((belMat[i] * Ei > oS.tol) and (oS.alphas[i] > 0)):j, Ej = selectJ(i, oS, Ei)alphaIold = oS.alphas[i].copy()alphaJold = oS.alphas[j].copy()if (belMat[i] != belMat[j]):L = max(0, oS.alphas[j] - oS.alphas[i])H = min(oS.C, oS.C + oS.alphas[j] - oS.alphas[i])else:L = max(0, oS.alphas[j] + oS.alphas[i] - oS.C)H = min(oS.C, oS.alphas[j] + oS.alphas[i])if (L == H):# print("L == H")return 0eta = 2.0 * oS.X[i, :] * oS.X[j, :].T - oS.X[i, :] * oS.X[i, :].T - oS.X[j, :] * oS.X[j, :].Tif eta >= 0:# print("eta >= 0")return 0oS.alphas[j] -= belMat[j] * (Ei - Ej) / etaoS.alphas[j] = clipAlpha(oS.alphas[j], H, L)updateEk(oS, j)if (abs(oS.alphas[j] - alphaJold) < 0.00001):# print("j not moving enough")return 0oS.alphas[i] += belMat[j] * belMat[i] * (alphaJold - oS.alphas[j])updateEk(oS, i)b1 = oS.b - Ei - belMat[i] * (oS.alphas[i] - alphaIold) * oS.X[i, :] * oS.X[i, :].T - belMat[j] * (oS.alphas[j] - alphaJold) * oS.X[i, :] * oS.X[j, :].Tb2 = oS.b - Ei - belMat[i] * (oS.alphas[i] - alphaIold) * oS.X[i, :] * oS.X[j, :].T - belMat[j] * (oS.alphas[j] - alphaJold) * oS.X[j, :] * oS.X[j, :].Tif (0 < oS.alphas[i]) and (oS.C > oS.alphas[i]):oS.b = b1elif (0 < oS.alphas[j]) and (oS.C > oS.alphas[j]):oS.b = b2else:oS.b = (b1 + b2) / 2.0return 1else:return 0def smoP(dataMatIn, classLabels, C, toler, maxIter, kTup=('lin', 0)): """输入:数据集, 类别标签, 常数C, 容错率, 最大循环次数输出:目标b, 参数alphas"""oS = optStruct(mat(dataMatIn), mat(classLabels).transpose(), C, toler)iterr = 0entireSet = TruealphaPairsChanged = 0while (iterr < maxIter) and ((alphaPairsChanged > 0) or (entireSet)):alphaPairsChanged = 0if entireSet:for i in range(oS.m):alphaPairsChanged += innerL(i, oS)# print("fullSet, iter: %d i:%d, pairs changed %d" % (iterr, i, alphaPairsChanged))iterr += 1else:nonBoundIs = nonzero((oS.alphas.A > 0) * (oS.alphas.A < C))[0]for i in nonBoundIs:alphaPairsChanged += innerL(i, oS)# print("non-bound, iter: %d i:%d, pairs changed %d" % (iterr, i, alphaPairsChanged))iterr += 1if entireSet:entireSet = Falseelif (alphaPairsChanged == 0):entireSet = True# print("iteration number: %d" % iterr)return oS.b, oS.alphasdef calcWs(alphas, dataArr, classLabels):"""输入:alphas, 数据集, 类别标签输出:目标w"""X = mat(dataArr)labelMat = mat(classLabels).transpose()m, n = shape(X)w = zeros((n, 1))for i in range(m):w += multiply(alphas[i] * labelMat[i], X[i, :].T) return wdef plotFeature(dataMat, labelMat, weights, b):dataArr = array(dataMat)n = shape(dataArr)[0]xcord1 = []; ycord1 = []xcord2 = []; ycord2 = []for i in range(n):if int(labelMat[i]) == 1:xcord1.append(dataArr[i, 0])ycord1.append(dataArr[i, 1])else:xcord2.append(dataArr[i, 0])ycord2.append(dataArr[i, 1])fig = plt.figure()ax = fig.add_subplot(111)ax.scatter(xcord1, ycord1, s=30, c='red', marker='s')ax.scatter(xcord2, ycord2, s=30, c='green')x = arange(2, 7.0, 0.1)y = (-b[0, 0] * x) - 10 / linalg.norm(weights)ax.plot(x, y)plt.xlabel('X1'); plt.ylabel('X2')plt.show()def main():trainDataSet, trainLabel = loadDataSet('testSet.txt')b, alphas = smoP(trainDataSet, trainLabel, 0.6, 0.0001, 40)ws = calcWs(alphas, trainDataSet, trainLabel)print("ws = \n", ws)print("b = \n", b)plotFeature(trainDataSet, trainLabel, ws, b)if __name__ == '__main__':start = time.clock()main()end = time.clock()print('finish all in %s' % str(end - start)) 输出样例ws =[[ 0.65307162][-0.17196128]]b =[[-2.89901748]]finish all in 2.5683854014099112。
数据挖掘技术平时作业第一次:1.什么是数据挖掘?当把数据挖掘看作知识发现过程时,描述数据挖掘所涉及的步骤。
【参考答案】数据挖掘是指从大量数据中提取有趣的(有价值的、隐含的、先前未知的、潜在有用的)关系、模式或趋势,并用这些知识与规则建立用于决策支持的模型,提供预测性决策支持的方法。
很多学者把数据挖掘当作另一术语KDD的同义词,而另一些学者把数据挖掘看作KDD的一个步骤。
当把数据挖掘看作知识发现过程时,数据挖掘的过程大致有以下几步:!)数据清理与集成2)任务相关数据分析与选择3)数据挖掘实施4)模式评估5)知识理解与应用第二次:1.在现实世界中,元组在某些属性上缺少值是常有的。
描述处理该问题的各种方法。
【参考答案】处理空缺的属性值有以下几种方法:1)忽略元组2)人工填写空缺值3)自动填充(1)使用全局常量,如用Unknown 或-∞(2)使用属性的平均值(3)使用与给定元组属于同一类的所有样本的平均值(4)使用可能的值:这些值可以用回归、判定树、基于推导的贝叶斯形式化方法等确定2.假定用于分析的数据包含属性age,数据元组中age的值如下:13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70a)使用最小-最大规范化,将age值35转换到[0.0,1.0]区间。
【参考答案】根据公式min'(_max_min)_minmax minAA A AA AVV new new new-=-+-进行计算。
根据提供的数据,maxA=70,minA=13,将将age值35转换到[0.0,1.0]区间,有:V’=(35-13)/(70-13)*(1.0-0.0)+0.0=0.386所以,将值35映射到区间[0.0,1.0]后的值为0.386。
b)使用Z-Score规范化转换age值,其中age的标准差为12.94。
姓名:王燕学号:109070018数据挖掘思考和练习题第一章1.1 什么是数据挖掘?什么是知识发现?简述KDD的主要过程。
答:(1)数据挖掘(Data Mining)是指从大量结构化和非结构化的数据中提取有用的信息和知识的过程,它是知识发现的有效手段。
(2)知识发现是从大量数据中提取有效的、新颖的、潜在的有用的,以及最终可理解的模式的非平凡过程。
(3)KDD的过程主要包括:KDD的过程主要由数据整理、数据挖掘、结果的解释评论三部分组成。
可以由模型表示出来:1.确定挖掘目标:了解应用领域及相关的经验知识,从用户的观点出发确定数据挖掘的目标。
这一步是实现数据挖掘的重要因素,相当于系统分析,需要系统分析员和用户的共同参与。
2.建立目标数据集:从现有的数据中,确定哪些数据是与本次数据分析任务相关的。
根据挖掘目标,从原始数据中选择相关数据集,并将不同数据源中的数据集中起来。
在这一阶段需要解决数据挖掘平台、操作系统和数据源数据类型等不同所产生的数据格式差异。
3.数据清洗和预处理:这一阶段即是将数据转变成“干净”的数据。
目标数据集中不可避免地存在着不完整、不一致、不精确和冗余地数据。
数据抽取之后必须利用专业领域地知识对“脏数据”进行清洗。
然后再对它们实施相应的方法,神经网络方法和模糊匹配技术分析多数据源之间联系,然后再对它们实施相应的处理。
4.数据降维和转换:在对数据库和数据子集进行预处理之后,考虑了数据的不变表示或发现了数据的不变的表示情况下,减少变量的实际数目,设法将数据转换到一个更易找到了解的空间上。
5.选择挖掘算法使用合适的数据挖掘算法完成数据分析。
确定实现挖掘目标的数据挖掘功能,这些功能方法包括概念描述、分类、聚类、关联规则。
其次选择合适的模式搜索算法,包括模型和参数的确定。
6.模式评价和解释根据最终用户的决策目的对数据挖掘发现的模式进行评价,将有用的模式或描述有用模式的数据以可视化技术和知识表示技术展示给用户,让用户能够对模型结果作出解释,评价模式的有效性。
大工19秋《数据挖掘》在线作业2试卷总分:100 得分:100一、单选题 (共 10 道试题,共 50 分)1.程序语句len(str('3.1415')) 的输出结果为()A.7B.6C.5D.4答案:B2.关于Python中异常处理,以下描述错误的是()A.编程语言中的异常和错误完全是相同的概念B.程序异常发生后经过异常处理,程序可以继续执行C.异常语句可以与else和finally关键字配合使用D.Python通过try、except等关键字提供异常处理功能答案:A3.以下那个关键字不是异常处理语句的关键字()A.tryB.finallyC.exceptD.elif答案:D4.以下选项中不是Python关键字的是()A.whileB.inC.exceptD.do答案:D5.以下选项中用来捕获特定类型异常的关键字是()A.whileB.passC.exceptD.do答案:C6.以下不属于Python的关键字的是()A.returnB.markC.globalD.del答案:B7.Python中定义函数的关键字是()A.functionB.defuncC.defineD.def答案:D8.以下选项对Python文件操作描述错误的是()A.文件使用结束后要用close()方法关闭,释放文件的使用授权B.当文件以文本方式打开时,读写会按照字节流方式进行C.Python能通过内置的open()函数打开一个文件进行操作D.Python能以文本和二进制两种方式处理文件答案:B9.下列不是Python对文件进行读操作的方法是()A.readtextB.readlinesC.readlineD.read答案:A10.Python中操作集合时,可以使用哪个函数来对集合进行增加元素的操作()A.putB.popC.appendD.add答案:D二、判断题 (共 10 道试题,共 50 分)11.函数的名称可以任意字符组合形成的。
数据挖掘作业答案数据挖掘作业题⽬+答案华理计算机专业选修课第⼆章:假定⽤于分析的数据包含属性age。
数据元组中age值如下(按递增序):13 ,15 ,16 ,16 ,19 ,20 ,20,21 ,22 ,22,25 ,25 ,25 ,25 ,30 ,33 ,33 ,35 ,35 ,35,35,36,40,45,46,52,70.分别⽤按箱平均值和边界值平滑对以上数据进⾏平滑,箱的深度为3.使⽤最⼩-最⼤规范化,将age值35转换到[0.0,1.0]区间使⽤z-Score规范化转换age值35 ,其中age的标准差为12.94年。
使⽤⼩数定标规范化转换age值35。
画⼀个宽度为10的等宽直斱图。
该数据的均值是什么?中位数是什么?该数据的众数是什么?讨论数据的峰(即双峰,三峰等)数据的中列数是什么?(粗略地)找出数据的第⼀个四分位数(Q1 )和第三个四分位数(Q3 )给出数据的五数概括画出数据的盒图第三章假定数据仓库包含三个维:time doctor和patient ;两个度量:count和charge;其中charge是医⽣对病⼈⼀次诊治的收费。
画出该数据仓库的星型模式图。
由基本⽅体[day, doctor, patient]开始,为列出2004年每位医⽣的收费总数,应当执⾏哪些OLAP操作。
如果每维有4层(包括all ),该⽴⽅体包含多少⽅体(包括基本⽅体和顶点⽅体)?第五章数据库有4个事务。
设min_sup=60%,min_conf=80%TID Itmes_boughtT100 {K,A,D,B}T200 {D,A,C,E,B}T300 {C,A,B,E}T400 {B,A,D}分别使⽤Apriori和FP-增长算法找出频繁项集。
列出所有的强关联规则(带⽀持度s和置信度c ),它们不下⾯的元规则匹配,其中,X是代表顼客的变量,itmei是表⽰项的变量(例如:A、B等)下⾯的相依表会中了超级市场的事务数据。
您的本次作业分数为:100分单选题1.下列几种数据挖掘功能中,()被广泛的用于购物篮分析。
∙ A 关联分析∙ B 分类和预测∙ C 聚类分析∙ D 演变分析单选题2.以下哪个指标不是表示对象间的相似度和相异度?∙ A Euclidean距离∙ B Manhattan距离∙ C Eula距离∙ D Minkowski距离单选题3.进行数据规范化的目的是()。
∙ A 去掉数据中的噪声∙ B 对数据进行汇总和聚集∙ C 使用概念分层,用高层次概念替换低层次“原始”数据∙ D 将属性按比例缩放,使之落入一个小的特定区间单选题4.下面哪种数据预处理技术可以用来平滑数据,消除数据噪声?∙ A 数据清理∙ B 数据集成∙ C 数据变换∙ D 数据归约单选题5.下面的数据挖掘的任务中,()将决定所使用的数据挖掘功能。
∙ A 选择任务相关的数据∙ B 选择要挖掘的知识类型∙ C 模式的兴趣度度量∙ D 模式的可视化表示单选题6.下列几种数据挖掘功能中,()被广泛的用于购物篮分析。
∙ A 关联分析∙ B 分类和预测∙ C 聚类分析∙ D 演变分析单选题7.哪种数据变换的方法将数据沿概念分层向上汇总?∙ A 平滑∙ B 聚集∙ C 数据概化∙ D 规范化单选题8.下列哪种可视化方法可用于发现多维数据中属性之间的两两相关性?∙ A 空间填充曲线∙ B 散点图矩阵∙ C 平行坐标∙ D 圆弓分割单选题9.下列几种数据挖掘功能中,()被广泛的应用于股票价格走势分析。
∙ A 关联分析∙ B 分类和预测∙ C 聚类分析∙ D 演变分析单选题10.存放最低层汇总的方体称为()。
∙ A 顶点方体∙ B 方体的格∙ C 基本方体∙ D 维单选题11.规则:age(X,”19-25”) ∧buys(X, “popcorn”) => buys(X, “coke”)是一个()。
∙ A 单维关联规则∙ B 多维关联规则∙ C 混合维关联规则∙ D 不是一个关联规则单选题12.置信度(confidence)是衡量兴趣度度量()的指标。
数据挖掘作业The document was prepared on January 2, 20211、给出K D D的定义和处理过程。
KDD的定义是:从大量数据中提取出可信的、新颖的、有用的且可以被人理解的模式的高级处理过程。
因此,KDD是一个高级的处理过程,它从数据集中识别出以模式形式表示的知识。
这里的“模式”可以看成知识的雏形,经过验证、完善后形成知识:“高级的处理过程”是指一个多步骤的处理过程,多步骤之间相互影响反复调整,形成一种螺旋式上升的过程。
KDD的全过程有五个步骤:1、数据选择:确定发现任务的操作对象,即目标数据,它是根据用户的需要从原始数据库中抽取的一组数据;2、数据预处理:一般可能包括消除噪声、推到技术却只数据、消除重复记录、完成数据类型转换等;3、数据转换:其主要目的是消减数据维数或降维,即从初始特征中找出真正有用的特征以减少数据开采时要考虑的特征或变量个数;4、数据挖掘:这一阶段包括确定挖掘任务/目的、选择挖掘方法、实施数据挖掘;5、模式解释/评价:数据挖掘阶段发现出来的模式,经过用户或机器的评价,可能存在冗余或无关的模式,需要剔除;也有可能模式不满足用户的要求,需要退回到整个发现阶段之前,重新进行KDD过程。
2、阐述数据挖掘产生的背景和意义。
数据挖掘产生的背景:随着信息科技的进步以及电子化时代的到来,人们以更快捷、更容易、更廉价的方式获取和存储数据,使得数据及信息量以指数方式增长。
据粗略估计,一个中等规模企业每天要产生100MB以上的商业数据。
而电信、银行、大型零售业每天产生的数据量以TB来计算。
人们搜集的数据越来越多,剧增的数据背后隐藏着许多重要的信息,人们希望对其进行更高层次的分析,以便更好的利用这些数据。
先前的数据库系统可以高效的实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系与规则,无法根据现有的数据来预测未来的发展趋势。
缺乏挖掘数据背后隐藏的知识的手段。
导致了“数据爆炸但知识贫乏”的现象。
于是人们开始提出“要学会选择、提取、抛弃信息”,并且开始考虑:如何才能不被信息淹没如何从中及时发现有用的知识、提高信息利用率如何从浩瀚如烟海的资料中选择性的搜集他们认为有用的信息这给我们带来了另一些头头疼的问题:第一是信息过量,难以消化;第二是信息真假难以辨别;第三是信息安全难以保证;第四是信息形式不一致,难以统一处理面对这一挑战,面对数量很大而有意义的信息很难得到的状况面对大量繁杂而分散的数据资源,随着计算机数据仓库技术的不断成熟,从数据中发现知识(KnowledgeDiscoveryinDatabase)及其核心技术——数据挖掘(DataMining)便应运而生,并得以蓬勃发展,越来越显示出其强大的生命力。
数据挖掘的意义:数据挖掘之所以被称为未来信息处理的骨干技术之一,主要在于它正以一种全新的概念改变着人类利用数据的方式。
在20世纪,数据库技术取得了重大的成果并且得到了广泛的应用。
但是,数据库技术作为一种基本的信息储存和管理方式,仍然是以联机事务处理为核心应用,缺少对决策、分析、预测等高级功能的支持机制。
众所周知,随着硬盘存储容量及的激增以及磁盘阵列的普及,数据库容量增长迅速,数据仓库以及Web等新型数据源出现,联机分析处理、决策支持以及分类、聚类等复杂应用成为必然。
面对这样的挑战,数据挖掘和知识发现技术应运而生,并显现出强大的生命力。
数据挖掘和知识发现使数据处理技术进入了一个更加高级的阶段。
它不仅能对过去的数据进行查询,而且能够找出过去数据之间的潜在联系,进行更高层次的分析,以便更好地作出决策、预测未来的发展趋势等等。
通过数据挖掘,有价值的知识、规则或更高层次的信息就能够从数据库的相关数据集合中抽取出来,从而使大型数据库作为一个丰富、可靠的资源为知识的提取服务。
3、给出一种关联规则的算法描述,并举例说明。
Apriori算法描述:Apriori算法由Agrawal等人于1993年提出,是最有影响的挖掘布尔关联规则频繁项集的算法,它通过使用递推的方法生成所有频繁项目集。
基本思想是将关联规则挖掘算法的设计分解为两步:(1)找到所有频繁项集,含有k个项的频繁项集称为k-项集。
Apriori使用一种称作逐层搜索的迭代方法,k-项集用于探索(k+1)-项集。
首先,出频繁1-项集的集合。
该集合记作L1。
L1用于找频繁2-项集的集合L2,而L2用于找L3,如下去,直到不能找到频繁k-项集。
找出每个Lk都需要一次数据库扫描。
为提高频繁项集层产生的效率,算法使用Apriori性质用于压缩搜索空间。
(2)使用第一步中找到的频繁项集产生关联规则。
从算法的基本思想可知,Apriori算法的核心和关键在第一步。
而第一步的关键是如何将Apriori性质用于算法,利用Lk-1找Lk。
这也是一个由连接和剪枝组成的两步过程:(1)连接步:为找Lk,通过Lk-1与自己连接产生候选k-项集的集合。
该候选项集的集合记作Ck。
设l1和l2是Lk-1中的项集。
记号li[j]表示li的第j项(例如,l1[k-2]表示l1的倒数第3项)。
为方便计,假定事务或项集中的项按字典次序排序。
执行连接Lk-1Lk-1;其中,Lk-1的元素是可连接的,如果它们前(k-2)项相同;即Lk-1的元素l1和l2是可连接的,如果(l1[1]=l2[1])∧(l1[2]=l2[2])∧...∧(l1[k-2]=l2[k-2])∧(l1[k-1]<l2[k-1])。
条件(l1[k-1]<l2[k-1])是简单地保证不产生重复。
连接l1和l2产生的结果项集是l1[1]l1[2]...l1[k-1]l2[k-1]。
(2)剪枝步:Ck是Lk的超集;即,它的成员可以是,也可以不是频繁的,但所有的频繁k-项集都包含在Ck中。
扫描数据库,确定Ck中每个候选的计数,从而确定Lk(即,根据定义,计数值不小于最小支持度计数的所有候选是频繁的,从而属于Lk)。
然而,Ck可能很大,这样所涉及的计算量就很大。
为压缩Ck,可以用以下办法使用Apriori性质:任何非频繁的(k-1)-项集都不可能是频繁k-项集的子集。
因此,如果一个候选k-项集的(k-1)-子集不在Lk-1中,则该候选也不可能是频繁的,从而可以由Ck中删除。
Apriori算法举例:如有如下数据每一行表示一条交易,共有9行,既9笔交易,左边表示交易ID,右边表示商品名称。
最小支持度是22%,那么每件商品至少要出现9*22%=2次才算频繁。
第一次扫描数据库,使得在每条交易中,按商品名称递增排序。
第二次扫描数据,找频繁项集为1的元素有:左边表示商品名称,右边表示出现的次数,都大于阈值2。
在此基础上找频繁项集是2的元素,方法是两两任意组合,第三次扫描数据得到它们出现的次数:此时就有规律性了,在频繁项集为K的元素上找频繁项集为K+1的元素的方法是:在频繁项集为K的项目(每行记录)中,假如共有N行,两两组合,满足两两中前K-1个元素相同,只后一个元素要求前一条记录的商品名称小于后一条记录的商品名称,这样是为了避免重复组合,求它们的并集得到长度为K+1的准频繁项集,那么最多共有Apriori算法种可能的组合,有:想想如果N很大的话,Apriori算法是一个多么庞大的数字,这时就要用到Apriori的核心了:如果K+1个元素构成频繁项集,那么它的任意K个元素的子集也是频繁项集。
然后将每组K+1个元素的所有长度为K的子集,有Apriori算法中组合,在频繁项集为K的项集中匹配,没有找到则删除,用第一条记录{I1,I2,I3}它的长度为2的频繁项集有:Apriori算法分别是:{I1,I2},{I1,I3},{I2,I3}种情况,幸好这三种情况在频繁项集为2的项集中都找到了。
通过这步过滤,得到的依旧是准频繁项集,它们是:此时第四次扫描数据库,得到真正长度为3的频繁项集是:因为{I1,I2,I4}只出现了1次,小于最小支持度2,删除。
就这个例子而言,它的最大频繁项集只有3,就是{I1,I2,I3}和{I1,I2,I5}。
4、给出一种聚类算法描述,并举例说明。
k-means 算法是一种属于划分方法的聚类算法,通常采用欧氏距离作为 2 个样本相似程度的评价指标,其基本思想是:随机选取数据集中的 k 个点作为初始聚类中心,根据数据集中的各个样本到k 个中心的距离将其归到距离最小的类中,然后计算所有归到各个类中的样本的平均值,更新每个类中心,直到平方误差准则函数稳定在最小值。
算法步骤:1.为每个聚类确定一个初始聚类中心,这样就有K 个初始聚类中心。
2.将样本集中的样本按照最小距离原则分配到最邻近聚类3.使用每个聚类中的样本均值作为新的聚类中心。
4.重复步骤步直到聚类中心不再变化。
k-means 算法举例:数据对象集合S 见下表,作为一个聚类分析的二维样本,要求的簇的数量k=2。
(1)选择 , 为初始的簇中心,即 , (2)对剩余的每个对象,根据其与各个簇中心的距离,将它赋给最近的簇。
对 : 显然,故将 分配给 对于 :因为,所以将 分配给 对于: ()10,2O 20,0O()110,2M O ==()220,0M O ==3O ()13, 2.5d M O ==()23, 1.5d M O ==()()2313,,d M O d M O ≤3O 2C 4O ()14,d M O ==()24,5M O ==()()2414,,d M O d M O ≤4O 5O ()15,5d M O ==()25,d M O ==()()1525,,d M O d M O ≤因为 ,所以将分配给 更新,得到新簇 和 计算平方误差准则,单个方差为总体平均方差是: (3)计算新的簇的中心。
重复(2)和(3),得到O 1分配给C 1;O 2分配给C 2,O 3分配给C 2 ,O 4分配给C 2,O 5分配给C 1。
更新,得到新簇 和。
中心为, 。
单个方差分别为总体平均误差是: 由上可以看出,第一次迭代后,总体平均误差值~,显着减小。
由于在两次迭代中,簇中心不变,所以停止迭代过程,算法停止。
5、给出一种分类的算法描述,并举例说明。
决策树算法是数据挖掘领域的核心分类算法之一,其中ID3算法是最为经典的决策树算法。
ID3算法理论清晰、使用简单、学习能力较强,且构造的决策树平均深度较小,分类速度较快,特别适合处理大规模的学习问题,目前已得到广泛应用。
在ID3决策树归纳方法中,通常是使用信息增益方法来帮助确定生成每个节点时所应采用的合适属性。
这样就可以选择具有最高信息增益(熵减少的程度最大)的属性最为当前节点的测试属性,以便对之后划分的训练样本子集进行分类所需要的信息最小,也就是说,利用该属性进行当前(节点所含)样本集合划分,将会使得所产生的样本子集中的“不同类别的混合程度”降为最低。