新書推薦:
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:NT$
551.0
《
清洁
》
售價:NT$
296.0
《
组队:超级个体时代的协作方式
》
售價:NT$
352.0
《
第十三位陪审员
》
售價:NT$
245.0
《
微观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
《
Python贝叶斯深度学习
》
售價:NT$
407.0
編輯推薦:
weka系统的主要开发者将丰富的研发、商业应用和教学实践的经验和技术融会贯通。
广泛覆盖在数据挖掘实践中采用的算法和机器学习技术,着眼于解决实际问题
避免过分要求理论基础和数学知识,重点在于告诉读者“如何去做”,同时包括许多算法、代码以及具体实例的实现。
将所有的概念都建立在具体实例的基础之上,促使读者首先考虑使用简单的技术。如果简单的技术不足以解决问题,再考虑提升到更为复杂的高级技术。
新版增加了大量近年来最新涌现的数据挖掘算法和诸如Web数据挖掘等新领域的介绍,所介绍的weka系统增加了50%的算法及大量新内容。
內容簡介:
本书是机器学习和数据挖掘领域的经典畅销教材,被众多国外名校选为教材。书中详细介绍用于数据挖掘领域的机器学习技术和工具以及实践方法,并且提供了一个公开的数据挖掘工作平台Weka。本书主要内容包括:数据输入输出、知识表示、数据挖掘技术(决策树、关联规则、基于实例的学习、线性模型、聚类、多实例学习等)以及在实践中的运用。本版对上一版内容进行了全面更新,以反映自第2版出版以来数据挖掘领域的技术变革和新方法,包括数据转换、集成学习、大规模数据集、多实例学习等,以及新版的Weka机器学习软件。
關於作者:
Ian H.Witten 新西兰怀卡托大学计算机科学系教授,ACM Fellow和新西兰皇家学会Fellow,曾荣获2004年国际信息处理研究协会(IFIP)颁发的Namur奖项。他的研究兴趣包括语言学习、信息检索和机器学习。
Eibe Frank 新西兰怀卡托大学计算机科学系副教授,《Machine Learning Journal》和《Journal of Artificial Intelligence Research》编委。
Mark A.Hall 新西兰怀卡托大学名誉副研究员,曾获得2005年ACM SIGKDD服务奖。
译者简介:李川,博士,副教授,四川大学计算机学院数据库知识工程研究所副所长,中国计算机学会数据库专委会委员。主持国家自然科学基金青年基金等项目多项,合作发表论文30余篇,获四川省科技成果二等奖1项。
目錄 :
出版者的话
译者序
前言
致谢
第一部分 数据挖掘简介
第1章 绪论
1.1 数据挖掘和机器学习
1.1.1 描述结构模式
1.1.2 机器学习
1.1.3 数据挖掘
1.2 简单的例子:天气问题和其他问题
1.2.1 天气问题
1.2.2 隐形眼镜:一个理想化的问题
1.2.3 鸢尾花:一个经典的数值型数据集
1.2.4 CPU性能:介绍数值预测
1.2.5 劳资协商:一个更真实的例子
1.2.6 大豆分类:一个经典的机器学习的成功例子
1.3 应用领域
1.3.1 Web挖掘
1.3.2 包含评判的决策
1.3.3 图像筛选
1.3.4 负载预测
1.3.5 诊断
1.3.6 市场和销售
1.3.7 其他应用
1.4 机器学习和统计学
1.5 将泛化看做搜索
1.5.1 枚举概念空间
1.5.2 偏差
1.6 数据挖掘和道德
1.6.1 再识别
1.6.2 使用个人信息
1.6.3 其他问题
1.7 补充读物
第2章 输入:概念、实例和属性
2.1 概念
2.2 样本
2.2.1 关系
2.2.2 其他实例类型
2.3 属性
2.4 输入准备
2.4.1 数据收集
2.4.2 ARFF格式
2.4.3 稀疏数据
2.4.4 属性类型
2.4.5 缺失值
2.4.6 不正确的值
2.4.7 了解数据
2.5 补充读物
第3章 输出:知识表达
3.1 表
3.2 线性模型
3.3 树
3.4 规则
3.4.1 分类规则
3.4.2 关联规则
3.4.3 包含例外的规则
3.4.4 表达能力更强的规则
3.5 基于实例的表达
3.6 聚类
3.7 补充读物
第4章 算法:基本方法
4.1 推断基本规则
4.1.1 缺失值和数值属性
4.1.2 讨论
4.2 统计建模
4.2.1 缺失值和数值属性
4.2.2 用于文档分类的朴素贝叶斯
4.2.3 讨论
4.3 分治法:建立决策树
4.3.1 计算信息量
4.3.2 高度分支属性
4.3.3 讨论
4.4 覆盖算法:建立规则
4.4.1 规则与树
4.4.2 一个简单的覆盖算法
4.4.3 规则与决策列表
4.5 挖掘关联规则
4.5.1 项集
4.5.2 关联规则
4.5.3 有效地生成规则
4.5.4 讨论
4.6 线性模型
4.6.1 数值预测:线性回归
4.6.2 线性分类:Logistic回归
4.6.3 使用感知机的线性分类
4.6.4 使用Winnow的线性分类
4.7 基于实例的学习
4.7.1 距离函数
4.7.2 有效寻找最近邻
4.7.3 讨论
4.8 聚类
4.8.1 基于距离的迭代聚类
4.8.2 快速距离计算
4.8.3 讨论
4.9 多实例学习
4.9.1 聚集输入
4.9.2 聚集输出
4.9.3 讨论
4.10 补充读物
4.11 Weka实现
第5章 可信度:评估学习结果
5.1 训练和测试
5.2 预测性能
5.3 交叉验证
5.4 其他评估方法
5.4.1 留一交叉验证
5.4.2 自助法
5.5 数据挖掘方法比较
5.6 预测概率
5.6.1 二次损失函数
5.6.2 信息损失函数
5.6.3 讨论
5.7 计算成本
5.7.1 成本敏感分类
5.7.2 成本敏感学习
5.7.3 提升图
5.7.4 ROC曲线
5.7.5 召回率-精确率曲线
5.7.6 讨论
5.7.7 成本曲线
5.8 评估数值预测
5.9 最小描述长度原理
5.10 在聚类方法中应用MDL原理
5.11 补充读物
第二部分 高级数据挖掘
第6章 实现:真正的机器学习方案
6.1 决策树
6.1.1 数值属性
6.1.2 缺失值
6.1.3 剪枝
6.1.4 估计误差率
6.1.5 决策树归纳的复杂度
6.1.6 从决策树到规则
6.1.7 C4.5:选择和选项
6.1.8 成本-复杂度剪枝
6.1.9 讨论
6.2 分类规则
6.2.1 选择测试的标准
6.2.2 缺失值和数值属性
6.2.3 生成好的规则
6.2.4 使用全局优化
6.2.5 从局部决策树中获得规则
6.2.6 包含例外的规则
6.2.7 讨论
6.3 关联规则
6.3.1 建立频繁模式树
6.3.2 寻找大项集
6.3.3 讨论
6.4 扩展线性模型
6.4.1 最大间隔超平面
6.4.2 非线性类边界
6.4.3 支持向量回归
6.4.4 核岭回归
6.4.5 核感知机
6.4.6 多层感知机
6.4.7 径向基函数网络
6.4.8 随机梯度下降
6.4.9 讨论
6.5 基于实例的学习
6.5.1 减少样本集的数量
6.5.2 对噪声样本集剪枝
6.5.3 属性加权
6.5.4 泛化样本集
6.5.5 用于泛化样本集的距离函数
6.5.6 泛化的距离函数
6.5.7 讨论
6.6 局部线性模型用于数值预测
6.6.1 模型树
6.6.2 构建树
6.6.3 对树剪枝
6.6.4 名目属性
6.6.5 缺失值
6.6.6 模型树归纳的伪代码
6.6.7 从模型树到规则
6.6.8 局部加权线性回归
6.6.9 讨论
6.7 贝叶斯网络
6.7.1 预测
6.7.2 学习贝叶斯网络
6.7.3 算法细节
6.7.4 用于快速学习的数据结构
6.7.5 讨论
6.8 聚类
6.8.1 选择聚类的个数
6.8.2 层次聚类
6.8.3 层次聚类的例子
6.8.4 增量聚类
6.8.5 分类效用
6.8.6 基于概率的聚类
6.8.7 EM算法
6.8.8 扩展混合模型
6.8.9 贝叶斯聚类
6.8.10 讨论
6.9 半监督学习
6.9.1 用于分类的聚类
6.9.2 协同训练
6.9.3 EM和协同训练
6.9.4 讨论
6.10 多实例学习
6.10.1 转换为单实例学习
6.10.2 升级学习算法
6.10.3 专用多实例方法
6.10.4 讨论
6.11 Weka实现
第7章 数据转换
7.1 属性选择
7.1.1 独立于方案的选择
7.1.2 搜索属性空间
7.1.3 具体方案相关的选择
7.2 离散化数值属性
7.2.1 无监督离散化
7.2.2 基于熵的离散化
7.2.3 其他离散化方法
7.2.4 基于熵的离散化与基于误差的离散化
7.2.5 离散属性转换成数值属性
7.3 投影
7.3.1 主成分分析
7.3.2 随机投影
7.3.3 偏最小二乘回归
7.3.4 从文本到属性向量
7.3.5 时间序列
7.4 抽样
7.5 数据清洗
7.5.1 改进决策树
7.5.2 稳健回归
7.5.3 检测异常
7.5.4 一分类学习
7.6 多分类问题转换成二分类问题
7.6.1 简单方法
7.6.2 误差校正输出编码
7.6.3 集成嵌套二分法
7.7 校准类概率
7.8 补充读物
7.9 Weka实现
第8章 集成学习
8.1 组合多种模型
8.2 装袋
8.2.1 偏差-方差分解
8.2.2 考虑成本的装袋
8.3 随机化
8.3.1 随机化与装袋
8.3.2 旋转森林
8.4 提升
8.4.1 AdaBoost算法
8.4.2 提升算法的威力
8.5 累加回归
8.5.1 数值预测
8.5.2 累加Logistic回归
8.6 可解释的集成器
8.6.1 选择树
8.6.2 Logistic模型树
8.7 堆栈
8.8 补充读物
8.9 Weka实现
第9章 继续:扩展和应用
9.1 应用数据挖掘
9.2 从大型的数据集里学习
9.3 数据流学习
9.4 融合领域知识
9.5 文本挖掘
9.6 Web挖掘
9.7 对抗情形
9.8 无处不在的数据挖掘
9.9 补充读物
第三部分 Weka数据挖掘平台
第10章 Weka简介
10.1 Weka中包含了什么
10.2 如何使用Weka
10.3 Weka的其他应用
10.4 如何得到Weka
第11章 Explorer界面
11.1 开始
11.1.1 准备数据
11.1.2 将数据载入Explorer
11.1.3 建立决策树
11.1.4 查看结果
11.1.5 重做一遍
11.1.6 运用模型
11.1.7 运行错误的处理
11.2 探索Explorer
11.2.1 载入及过滤文件
11.2.2 训练和测试学习方案
11.2.3 自己动手:用户分类器
11.2.4 使用元学习器
11.2.5 聚类和关联规则
11.2.6 属性选择
11.2.7 可视化
11.3 过滤算法
11.3.1 无监督属性过滤器
11.3.2 无监督实例过滤器
11.3.3 有监督过滤器
11.4 学习算法
11.4.1 贝叶斯分类器
11.4.2 树
11.4.3 规则
11.4.4 函数
11.4.5 神经网络
11.4.6 懒惰分类器
11.4.7 多实例分类器
11.4.8 杂项分类器
11.5 元学习算法
11.5.1 装袋和随机化
11.5.2 提升
11.5.3 组合分类器
11.5.4 成本敏感学习
11.5.5 优化性能
11.5.6 针对不同任务重新调整分类器
11.6 聚类算法
11.7 关联规则学习器
11.8 属性选择
11.8.1 属性子集评估器
11.8.2 单一属性评估器
11.8.3 搜索方法
第12章 Knowledge Flow界面
12.1 开始
12.2 Knowledge Flow组件
12.3 配置及连接组件
12.4 增量学习
第13章 Experimenter界面
13.1 开始
13.1.1 运行一个实验
13.1.2 分析结果
13.2 简单设置
13.3 高级设置
13.4 分析面板
13.5 将运行负荷分布到多个机器上
第14章 命令行界面
14.1 开始
14.2 Weka的结构
14.2.1 类、实例和包
14.2.2 weka.core包
14.2.3 weka.classifiers包
14.2.4 其他包
14.2.5 Javadoc索引
14.3 命令行选项
14.3.1 通用选项
14.3.2 与具体方案相关的选项
第15章 嵌入式机器学习
15.1 一个简单的数据挖掘应用
15.1.1 MessageClassifier()
15.1.2 updateData()
15.1.3 classifyMessage()
第16章 编写新的学习方案
16.1 一个分类器范例
16.1.1 buildClassifier()
16.1.2 makeTree()
16.1.3 computeInfoGain()
16.1.4 classifyInstance()
16.1.5 toSource()
16.1.6 main()
16.2 与实现分类器有关的惯例
第17章 Weka Explorer的辅导练习
17.1 Explorer界面简介
17.1.1 导入数据集
17.1.2 数据集编辑器
17.1.3 应用过滤器
17.1.4 可视化面板
17.1.5 分类器面板
17.2 最近邻学习和决策树
17.2.1 玻璃数据集
17.2.2 属性选择
17.2.3 类噪声以及最近邻学习
17.2.4 改变训练数据的数量
17.2.5 交互式建立决策树
17.3 分类边界
17.3.1 可视化1R
17.3.2 可视化最近邻学习
17.3.3 可视化朴素贝叶斯
17.3.4 可视化决策树和规则集
17.3.5 弄乱数据
17.4 预处理以及参数调整
17.4.1 离散化
17.4.2 离散化的更多方面
17.4.3 自动属性选择
17.4.4 自动属性选择的更多方面
17.4.5 自动参数调整
17.5 文档分类
17.5.1 包含字符串属性的数据
17.5.2 实际文档文类
17.5.3 探索StringToWordVector过滤器
17.6 挖掘关联规则
17.6.1 关联规则挖掘
17.6.2 挖掘一个真实的数据集
17.6.3 购物篮分析
参考文献
索引
內容試閱 :
第一部分 数据挖掘简介
第1章 绪论
人工受精的过程是从妇女的卵巢中收集卵子,再与丈夫或捐赠人的精液结合后产生胚胎,然后从中选择几个胚胎移植到妇女的子宫里。关键是要选出那些存活可能性最大的胚胎。选择根据60个左右的胚胎特征记录做出,这些特征包括它们的形态、卵母细胞、滤泡和精液样品。特征属性的数量非常大,胚胎学家很难同时对所有属性进行评估,并结合历史数据得出最终结论:这个胚胎是否能够产生一个活的婴儿。在英格兰的一个研究项目中,研究者探索运用机器学习技术,使用历史记录和它们的输出作为训练数据。
每年,新西兰奶牛场主都要面临艰难的商业决策:哪些牛应该留在牧场,哪些牛需要卖到屠宰场。随着饲料储备的减少,每年牧场在接近挤奶季节末期时只留下15的奶牛。每头牛的生育和牛奶产量的历史数据都会影响这个决定。除此以外还要考虑的因素有:年龄(每头牛都将在8岁后接近生育期的终结)、健康问题、难产的历史数据、不良的性情特征(如尥蹶子、跳栅栏)、在下一个季节里不产牛犊。在过去的几年中,几百万头牛中的每一头牛都用700多个属性记录下来。机器学习正是用来考察成功的农场主在做决定的时候需要考虑哪些因素,不是为了使决策自动化,而是向其他人推广这些农场主的技术和经验。
机器学习是从数据中挖掘知识。它是一个正在萌芽的新技术,范围涉及生与死、从欧洲到两极、家庭和事业,正逐渐引起人们的重视。
1.1 数据挖掘和机器学习
我们正在被数据所淹没。存在于这个世界和我们生活中的数据总量似乎在不断地增长,而且没有停止的迹象。个人计算机的普及将那些以前会丢弃的数据保存起来。便宜的硬盘和网络硬盘,3使得很容易以后再决定用这些数据做什么,因为我们可以买更多的硬盘来保存数据。无处不在的电子器件记录了我们的决策,如超市里的商品选择、个人的理财习惯,以及收入和消费。我们以自己的方式生活在这个世界上,而每一个行为又成为一条数据库里的记录保存下来。如今互联网用信息将我们淹没,我们在网上所做的每一个选择都被记录下来。所有的这些信息记录了个人的选择,而在商业和企业领域存在着数不清的相似案例。我们都知道我们对数据的掌握永远无法赶上数据升级的速度。而且在数据量增加的同时,无情地伴随着人们对它理解的降低。隐藏在这些数据后的是信息,具有潜在用处的信息,而这些信息却很少被显现出来或者被开发利用。
本书介绍如何在数据中寻找模式。这并不稀奇,人们从一开始,就试图在数据中寻找模式。猎人在动物迁徙的行为中寻找模式;农夫在庄稼的生长中寻找模式;政客在选民的意见上寻找模式;恋人在对方的反应中寻找模式。科学家的工作(像一个婴儿)是理解数据,从数据中找出模式,并用它们来指导在真实世界中如何运作,然后把它们概括成理论,这些理论能够预测出在新的情况下会发生什么。企业家的工作是要辨别出机会,就是那些可以转变成有利可图的生意的行为中的一些模式,并且利用这些机会。
在数据挖掘(data mining)中,计算机以电子化的形式存储数据,并且能自动地查询数据,或至少扩增数据。这仍算不得新鲜事。经济学家、统计学家、预测家和信息工程师长久以来相信,存在于数据中的模式能够被自动地找到、识别、确认并能用于预测。该理论的最新发展使得由数据中找出模式的机遇剧增。在最近几年,数据库急剧膨胀,如每天记录顾客选择商品行为的数据库,正把数据挖掘带到新的商业应用技术的前沿。据估计,存储在全世界数据库里的数据量正以每20个月翻一倍的速度增长。尽管很难从量的意义上真正验证这个数字,但是我们可以从质上把握这个增长速度。随着数据量的膨胀,以及利用机器承担数据搜索工作已变得普通,数据挖掘的机会正在增长。世界正越来越丰富多彩,从中产生的数据淹没了我们,数据挖掘技术成为我们洞察构成数据的模式的唯一希望。被充分研究过的数据是宝贵的资源。它能够引导人们去获得新的洞察力,用商业语言来讲就是获得竞争优势。
数据挖掘就是通过分析存在于数据库里的数据来解决问题。例如,在激烈竞争的市场上,客户忠诚度摇摆问题就是一个经常提到的事例。一个有关客户商品选择以及客户个人资料的数据库是解决这个问题的关键。以前客户的行为模式能够用来分析并识别那些喜欢选购不同商品和那些喜欢选择同种商品的客户的特性。一旦这些特性被发现,它们将被用于当前实际的客户群中,鉴别出那些善变的客户群体,并加以特殊对待,须知对整个客户群都加以特殊对待的成本是高昂的。4更确切地说,同样的技术还能够用来辨别出那些对企业当前提供的服务并不满意,但是有可能对其他服务感兴趣的客户群,并向他们提供特殊建议,从而推广这些服务。在当代竞争激烈、以客户和服务为中心的经济中,如果数据能够被挖掘,它将成为推动企业发展的原材料。
数据挖掘被定义为找出数据中的模式的过程。这个过程必须是自动的或(更常见的是)半自动的。数据的总量总是相当可观的,但从中发现的模式必须是有意义的,并能产生出一些效益,通常是经济上的效益。
如何表示数据模式?有价值的模式能够让我们对新数据做出非平凡的预测。表示一个模式有两种极端方法:一种是内部结构很难被理解的黑匣子;一种是展示模式结构的透明匣子,它的结构揭示了模式的结构。我们假设两种方法都能做出好的预测,它们的区别在于被挖掘出的模式能否以结构的形式表现,这个结构是否能够经得起分析,理由是否充分,能否用来形成未来的决策。如果模式能够以显而易见的方法获得决策结构,就称为结构模式,换句话说,它们能帮助解释有关数据的一些现象。
现在我们可以说,本书是有关寻找、描述存在于数据中的结构模式的技术。我们所涉及的大部分技术已经在被称为机器学习的领域里开发出来。这里我们首先介绍什么是结构模式。
1.1.1 描述结构模式
结构模式(structural pattern)是什么?如何描述它们?用什么形式输入?我们将以举例的形式来回答这个问题,而不是尝试给出正式的、最终的死板定义。本章后面将给出很多例子,现在让我们从一个例子入手来体验我们正在讲解的内容。
表1-1给出了隐形眼镜的一组数据。这组数据是验光师针对病人的情况做出的诊断:使用软的隐形眼镜,硬的隐形眼镜,或不能佩戴隐形眼镜。我们将在以后详细讨论属性的单独意义。表中的每一行代表一个例子。下面是有关这个信息的部分结构描述。
表1-1 隐形眼镜数据
agespectacle
prescriptionastigmatismtear production
raterecommended
lensesyoungmyopenoreducednoneyoungmyopenonormalsoftyoungmyopeyesreducednoneyoungmyopeyesnormalhardyounghypermetropenoreducednoneyounghypermetropenonormalsoftyounghypermetropeyesreducednoneyounghypermetropeyesnormalhardpre-presbyopicmyopenoreducednonepre-presbyopicmyopenonormalsoftpre-presbyopicmyopeyesreducednonepre-presbyopicmyopeyesnormalhardpre-presbyopichypermetropenoreducednonepre-presbyopichypermetropenonormalsoftpre-presbyopichypermetropeyesreducednonepre-presbyopichypermetropeyesnormalnonepresbyopicmyopenoreducednonepresbyopicmyopenonormalnonepresbyopicmyopeyesreducednonepresbyopicmyopeyesnormalhardpresbyopichypermetropenoreducednonepresbyopichypermetropenonormalsoftpresbyopichypermetropeyesreducednonepresbyopichypermetropeyesnormalnone
结构描述不一定像以上这样以规则的形式来表达。另一种流行的表达方法是决策树,它明确了需要做出的决策序列以及伴随的建议。
这是一个非常简单的例子。首先,这个表呈现了所有可能值的组合。属性age(年龄)有3种可能值,属性spectacle prescription(视力诊断)、astigmatism(散光)和tear production rate(眼泪流速)分别有2种可能值。所以这个表有24行记录(3×2×2×2=24)。上面所提到的规则并不是真正从数据中概括出来的,而只是对数据的总结。在多数学习的情况下,所给出的样本集非常不完整,所以我们的一部分工作就是将其推广到其他新的样本上实现一般化。用户可以想象,如果从上面的表格中忽略一些tear production rate的值是reduced的行,仍然可以得出规则:
5
~
6这个规则可以推广到那些遗失的行,并且能正确地把它们填充到表里去。其次,样本中的每一个属性都指定了一个值。现实的数据集不可避免地存在一些样本,这些样本中的某些属性值因为一些原因而不可知,例如数据没有被测量、丢失或其他原因。再次,上面所提到的规则能正确地对例子进行分类,但是通常情况下,因为数据中存在一些错误或者噪声(noise),即使在用来训练分类器的数据上也会发生分类错误的情况。
1.1.2 机器学习
现在我们已经有一些输入和输出的概念,下面我们将转入机器学习的主题。究竟什么是学习?什么是机器学习(machine learning)?这是哲学范畴的问题,在本书中,我们将不涉及有关哲学的问题,而着重立足于实践。然而,在着手开始研究机器学习之前,值得花一些时间从一些基本的问题入手,弄清其中的微妙之处。我们的字典所给出的“学习”的定义如下:
通过学习、体验或者被教授得到知识。
从信息或观察中得知。
获得记忆。
被告知或查明。
接受指令。
当涉及计算机的时候,这些定义就存在一些缺陷。对于前两条,事实上不可能检测学习是否完成。我们怎么能知道一台机器是否拥有某种知识?我们也不大可能向机器提出问题;即使我们能,那也只是在测试机器回答问题的能力,而不可能测试它学习的能力。我们又如何知道它是否意识到什么?有关计算机是否能意识到或有知觉的问题是一个激烈争论的哲学问题。
对于后三条定义,用人类的术语来说,我们看到它们做出的贡献局限于记忆和接受指令,这个定义对我们所指的机器学习似乎太简单了,也太被动了,对于计算机来说,这些任务太平凡了。而我们只对在新情况中性能的改善,或至少性能所具有的潜力感兴趣。你可以通过死记硬背的学习方法来记忆或得知某事,但却没有能力在新的情况下运用新的知识。换句话说,你也能够得到指导却毫无收益。
以前我们是从可操作的角度上定义机器学习:机器学习是从大量的数据中自动或半自动地寻找模式的过程,而且这个模式必须是有用的。我们可以用同样的方法为学习建立一个可操作的定义:
当事物以令其自身在将来表现更好为标准来改变其行为时,它学到了东西。
这个定义将学习和表现而不是知识捆绑在一起。你可以通过观察和比较现在和过去的行为来评估学习。这是一个非常客观的看上去也满意得多的定义。7
但是仍然存在一些问题。学习是一个有点圆滑的概念。很多事物都能以多种途径改变它们的行为,以使它们能在未来做得更好,但是我们不愿意说它们已经真正学到了。一只舒服的拖鞋就是一个很好的例子。拖鞋学到了脚的形状了吗?当然拖鞋确实改变了它的外形从而使它成为一只很舒服的拖鞋。我们不想称其为学习。在日常语言中,我们往往使用训练这个词引申出一个不用大脑的学习。我们训练动物甚至植物,尽管这个概念可从训练像拖鞋一类没有生命的事物上得到拓展。但是学习是不同的。学习意味着思考和目的,并且学习必须有意去做一些事。这就是为什么我们不愿说一个葡萄藤学会了沿着葡萄园的架子生长,而说它已经被训练。没有目的的学习只能是训练,或者进一步说,在学习中,目的是学习者的目的,而在训练中,目的是老师的目的。
因此从计算机的视角出发,以可操作的、性能为指导的原则进一步审视第二种学习的定义时,就存在一些问题。当判断是否真正学到一些东西时,需要看它是否打算去学,是否其中包含一些目的。当应用到机器上时,它使概念抽象化,因为我们无法弄清楚人工制品是否能够做出有目的的举动。哲学上有关学习真正意味着什么的讨论,就像有关目的或打算真正意味什么一样充满困难。甚至法院也很难把握“企图”的含义。