数据挖掘概念与技术(第三版)课后答案——第一章

1.1 什么是数据挖掘?在你的回答中,强调以下问题:
(a)它是又一种广告宣传吗?
(b)它是一种从数据库、统计学、机器学习和模式识别发展而来的技术的简单转换或应用吗?
(c)我们提出了一种观点,说数据挖掘是数据库技术进化的结果。你认为数据挖掘也是机器学习研究进化的结果吗?你能基于该学科的发展历史提出这一观点吗?针对统计学和模式识别领域,做相同的事。
(d)当把数据挖掘看做知识发现过程时,描述数据挖掘所涉及的步骤。

答:数据挖掘不是一种广告宣传,它是一个应用驱动的领域,数据挖掘吸纳了诸如统计学习、机器学习、模式识别、数据库和数据仓库、信息检索、可视化、算法、高性能计算和许多应用领域的大量技术。

它是从大量数据中挖掘有趣模式和知识的过程。

数据源:包括数据库、数据仓库、Web、其他信息存储库或动态的流入系统的数据等。

当其被看作知识发现过程时,其基本步骤主要有:

  1. 数据清理:清楚噪声和删除不一致数据;
  2. 数据集成:多种数据源可以组合在一起;
  3. 数据选择:从数据库中提取与分析任务相关的数据;
  4. 数据变换:通过汇总或者聚集操作,把数据变换和统一成适合挖掘的形式;
  5. 数据挖掘:使用智能方法或者数据挖掘算法提取数据模式;
  6. 模式评估:根据某种兴趣度量,识别代表知识的真正有趣的模式。
  7. 知识表示:使用可视化和知识表示技术,向用户提供挖掘的知识。

 1.2 数据仓库与数据库有什么不同?它们有哪些相似之处?

答:不同:数据仓库是多个异构数据源在单个站点以统一的模式组织的存储,以支持管理决策。数据仓库技术包括数据清理、数据集成和联机分析处理(OLAP)。数据库系统也称数据库管理系统,由一组内部相关的数据(称作数据库)和一组管理和存取数据的软件程序组成,是面向操作型的数据库,是组成数据仓库的源数据。它用表组织数据,采用ER数据模型。

相似:它们都为数据挖掘提供了源数据,都是数据的组合。都是通过某个数据库软件,基于某种数据模型来组织、管理数据。

 1.3定义下列数据挖掘功能:特征化、区分、关联和相关性分析、分类、回归、聚类、离群点分析。

数据特征化:是目标类数据的一般性或特征的汇总。通常,通过查询来收集对应于用户指定类的数据。

例子:AllElectronics 的客户关系经理可能提出如下数据挖掘任务:“ 汇总一年之内在AllElectronics花费5000美元以上的顾客特征。”结果可能是顾客的概况,如年龄在40~50岁、有工作、有很好的信用等级。数据挖掘系统应当允许用户在任意维下钻,如在ocupation维下钻,以便根据这些顾客的职业类型来观察他们。

数据区分:是将目标类数据对象的一般特性与个或多个对比类对象的一般特性进行比较。目标类和对比类可以由用户指定,而对应的数据对象可以通过数据库查询检索。

例子:AllElectronics的客户关系经理可能想比较两组顾客一定期 (例如,每月多于2次)购买计算机产品的顾客和不经常(例如,每年少于3次)购买这种产品的顾客。结果描述提供这些顾客比较的概况,例如频繁购买计算机产品的顾客80%在20~40岁之间,受过大学教育;而不经常购买这种产品的顾客60%或者年龄太大或者太年青,没有大学学位。沿着维下钻,如沿occupation维下钻,或添加新的维,如income. level维,可以帮助发现两类之间的更多区分特征。

频繁模式:频繁模式(frequent pattern)是在数据中频繁出现的模式。挖掘频繁模式导致发现数据中有趣的关联和相关性。

关联分析例子:假设作为AllEletronics的市场部经理,你想知道哪些商品经常一块被购买(即,在相同的事务中)。从AllElectronics的事务数据库中挖掘出来的这种规则的一个例子是

buys( X,“computer”) =>buys( X,“software”)[ support = 1 %,confidence = 50%]

其中,X是变量,代表顾客。50%的置信度或确信性意味,如果一位顾客购买计算机, 则购买软件的可能性是50%。1%的支持度意味,所分析的所有事务的1%显示计算机与软件一起被购买。这个关联规则涉及单个重复的属性或谓词(即buys)。包含单个谓词的关联规则称做单维关联规则( single- dimensional association rule)。去掉谓词符号,上面的规则可以简单地写成“computer =>sofwar[ 1%,50% ]”。
假设给定涉及购买的AllEleetronicis关系数据库。数据挖掘系统还可以发现如下形式的规则
age(X,“20. .29”) ^ income(X,"“40K. .49K" )=>buys(X," laptop" )[ support =2% ,confidence =60% ]
该规则指出,在所研究的AllElectronics 顾客中,2%的年龄是20~29岁,年收入为40 000 ~49 000美元,并且在AllElectronics购买了便携式计算机。这个年龄和收入组的顾客购买便携机的概率为60%。注意,这是涉及多个属性或谓词(即age, income 和buys)的关联。采用多维数据库使用的术语,每个属性称做一个维,上面的规则可以称做多维关联规则。

分类:找出描述和区分数据类或概念的模型( 或函数),以便能够使用模型预测类标号未知的对象的类标号。导出模型是基于对训练数据集(即,类标号已知的数据对象)的分析。该模型用来预测类标号未知的对象的类标号。

回归:建立连续值函数模型,回归分析是一种最常用的数值预测的统计学方法。

例子:假设作为AllElctronics的销售经理,你想根据对促销活动的三种反应,对商店的商品集合分类:好的反应,中等反应和没有反应。你想根据商品的描述特性,如price、brand、place_ made 和category,对这三类的每一种导 出模型。结果分类将最大限度地区别每类,提供有组织的数据集描述。

假设结果分类模型用决策树的形式表示。例如,决策树可能把price看做最能区分三个类的因素。该树可能揭示,除了price之外,帮助进一步区分 每类对象的其他特征包括brand和place__made。这样的决策树可以帮助你理解给定促销活动的影响,并帮助你设计未来更有效的促销活动。

假设你不是预测顾客对每种商品反应的分类标号,而是想根据先前的销售数据,预测在AllElectronics的未来销售中每种商品的收益。这是一个回归分析的例子, 因为所构造的模型(或函数)将预测一个连续函数( 或有序值)。

聚类分析:不像分类和回归分析标记类的(训练)数据集,聚类( clustering)分析数据对象,而不考虑类标号。在许多情况下,开始并不存在标记类的数据。可以使用聚类产生数据组群的类标号。对象根据最大化类内相似性、最小化类间相似性的原则进行聚类或分组。也就是说,对象的簇(cluster) 这样形成,使得相比之下在同一个簇中的对象 具有很高的相似性,而与其他簇中的对象很不相似。所形成的每个簇都可以看做一个对象类, 由它可以导出规则。

聚类分析例子:可以在AIIElectronics的顾客数据上进行聚类分析,识别顾客的同类子群。这些簇可以表示每个购物目标群。下图显示一个城市内顾客位置的二维图。数据点的三个簇是显而易见的。

离群点分析:数据集中可能包含一些数据对象,它们与数据的一般行为或模型不一致。 这些数据对象是离群点(outlier)。 大部分数据挖掘方法都将离群点视为噪声或异常而丢弃。然而,在一些应用中(例如,欺诈检测),罕见的事件可能比正常出现的事件更令人感兴趣。离群点数据分析称做离群点分析或异常挖掘。

例子:通过检测一个给定账号与正常的付费相比付款数额特别大,离群点分析可以发现信用卡欺骗性使用。离群点还可以通过购物地点和类型或购物频率来检测。

 1.4 给出一个例子,其中数据挖掘对于一种商务的成功至关重要的。这种商务需要什么数据挖掘功能?他们能够由数据查询处理或简单的统计分析来实现吗?

答:首先概括一下可以挖掘什么类型的模式:特征化与区分、频繁模式、分类与回归、聚类、离群点分析。以航空公司为例,为提高用户体验度,最大限度提高乘客登机时的效率,减少登机所用时间。这就需要进行回归分析,比如以近几个月登机时的数据进行回归分析,来判断某时刻客户登机时的人流量符合哪种分布情况,以预测未来人流量从而提前做出相应改进措施提高用户登机效率。在这种情况下,简单的查询统计是满足不了该航空公司的。

1.5 解释区分和分类、特征化和聚类、分类和回归之间的区别和相似之处。 

区分和分类:数据区分是将目标类数据对象的一般特性与一个或多个对比类对象的一般特性进行比较;而分类则是找出描述和区分数据类或概念的模型,以便能够使用模型对未知类标号的样例进行预测。
特征化和聚类:数据特征化是目标类数据的一般特性或特征的汇总,即在进行数据特征化时很清楚特征化的这些数据的特点是什么;而聚类则只是分析数据对象,按照“最大化类内相似度、最小化类间相似度”的原则进行聚类或分组。
分类和回归:回归主要是建立连续值的函数模型,回归主要用来预测缺失的或难以获得的数值数据值,而不是离散的类标号,同时回归也包含基于可用数据的分布趋势识别。

1.6 根据你的观察,描述一种可能的知识类型,它需要由数据挖掘方法发现,但未在本章中列出。它需要一种不同于本章列举的数据挖掘技术吗?

比如对文本进行分类时往往需要进行某类的高频特征提取,而在某个分类下面拥有众多文档,文档中又往往包含众多特征词汇,此时就需要进行数据挖掘从而找出可以代表该类的特征词,这就涉及到特征降维,我们可以用卡方统计等方法进行特征提取。该方法并未在本章中列出。 

1.7 离群点经常被当做噪声丢弃。然而,一个人的垃圾可能是另一个人的宝贝。例如,信用卡交易中的异常可能帮助我们检测信用卡的欺诈使用。以欺诈检测为例,提出两种可以用来检测离群点的方法,并讨论哪种方法更可靠。

 检测离群点的方法可以通过聚类和分类两种方法来检测。首先来讲聚类,通过聚类可以把具有一定相似度的数据对象聚集在一起,而对于是离群点的这些数据来说,往往离通过聚类得到的这些簇比较远,并且表现的比较分散,因此通过聚类之后,观察这些离簇比较远的数据对象则可以很方便的找到离群点。本人认为还可以通过分类来检测离群点。因为在清楚了需要把数据对象分成几个大类时,我们可以通过合适的分类算法对数据进行分类,比如最简单的通过相似度去分类,那么当其相似度小于某一个阈值时,我们把这些数据认为是离群点,然后把这些数据单独进行分析从而检测离群点。分类方法用于离群点检测时,往往需要很清楚的知道这些数据能够分成几个大类,而对于庞大的数据量来说,根据不用的特征可能可以划分出好多大类,这样在进行数据预处理时可能会比较麻烦,而聚类则相对来说要简单一些,并且通过聚类之后,采用一定的可视化技术可以很清楚的将离群点显示出来,以便研究人员、用户等可以很方便的观测离群点。因此,就这两种方法来说,聚类对于离群点的检测更加可靠。

1.8 描述三个关于数据挖掘方法和用户交互问题的数据挖掘挑战。

 涉及数据挖掘挑战自然是比较有深度、难度的数据挖掘,诸如交通拥堵、环境恶化、能耗增加等三个领域。首先来讲交通拥堵,对于交通拥堵,每辆车都会有传感器,而对于每辆车的定位则可以通过GPS、北斗导航的定位系统进行定位,在解决交通拥堵问题时,可以将以上已知数据信息进行融合即多源数据融合,加之一定的数据挖掘算法从而去解决交通拥堵问题。在实时的解决交通拥堵问题时,将拥堵情况动态的展现给司机则涉及到了数据可视化,那么如何将这些实时的车流情况以及解决方式动态的呈现给司机则又是一大挑战。
环境恶化、能耗增加:这两大难题在现实生活中同样表现的比较突出,但是仅从单方面来讲,我们可以获取的信息也是比较充足的,比如气象条件、环境各项指标的检测数据、各燃油的销售量等等,那么如何将这些数据有效的融合并且提出有效的解决方案或者说是建立良好的数学模型则是摆在众多科研人员面前的一大挑战。

1.9 与挖掘少量数据(例如,几百个元组的数据集合)相比,挖掘海量数据(例如,数十亿个元组)的主要挑战是什么?

  • 在挖掘海量数据时,如何去保护人们的隐私;
  • 海量数据一般存储在云上,如何保证数据的安全性;
  • 如何在海量数据中快速的挖掘出感兴趣的模式;
  • 在海量数据中挖掘出有趣的、有价值的模式之后,如何以可视化形式展现出来。

 1.10 概述在诸如流/传感器数据分析、时空数据分析或生物信息学等某个特定应用领域中的数据挖掘的主要挑战?

这几个领域有一个共同的特点就是有可能有多源数据的存在,当存在多源数据时,如何对多源数据进行整合则是我们所面临的一大挑战;其次,对于多源数据的预处理也是比较困难,因为多源数据之间可能会相互影响;最后,对于这种复杂对象的挖掘,在数据挖掘领域也是研究人员所面临的一大挑战。

 数据挖掘概念与技术(第三版)课后答案——第二章

  • 21
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
本题需要根据第三版《matlab程序设计与应用》的内容进行实验及答题。 答案参考: 本题需要实现一个小游戏,具体要求如下: 1. 随机生成一个范围在1~1000之间的整数num; 2. 让用户猜测该数,每次用户输入一个整数guess; 3. 如果guess比num小,则输出"猜小了,再试一次"; 4. 如果guess比num大,则输出"猜大了,再试一次"; 5. 如果guess等于num,则输出"恭喜猜中了!"; 6. 用户最多有10次机会猜中,如果猜错10次,则输出"机会用尽,游戏结束!"; 7. 每次输出都要显示用户已经用了多少次机会。 需要用到的matlab函数有randi()、input()、disp()、num2str()等,具体使用方法可以查看matlab帮助文档。 实验代码演示如下: %% 实验7 - 小游戏设计 % 设计一个猜数字的小游戏,要求用户猜一个随机生成的整数(1~1000),并在10次机会内猜中。 clear all; clc; % 生成随机数 num = randi([1,1000]); % 初始化计数器 counter = 0; % 开始猜数字 while counter < 10 guess = input('请输入你猜的数字:'); counter = counter + 1; % 计数器加1 fprintf('你已经猜了%d次。\n', counter); if guess > num disp('猜大了,再试一次。'); elseif guess < num disp('猜小了,再试一次。'); else fprintf('恭喜你,猜中了!你一共猜了%d次。\n', counter); break; end end % 判断游戏是否结束 if counter == 10 disp('机会用尽,游戏结束!'); end 以上代码实现了小游戏的基本功能,可以根据实际需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的小绵羊

c币是什么

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值