周志华《机器学习》第一章 - 绪论

1、课程笔记

傍晚小街路面上沁出微雨后的湿润,和熙的细风吹来,抬头看看天边的晚霞, 嗯,明天又是一个好天气.走到水果摊旁,挑了个根蒂蜷缩、敲起来声音浊响的青绿西瓜,一边满心期待着皮薄肉厚瓢甜的爽落感,一边愉快地想着,这学期狠下了工夫,基础概念弄得清清楚楚,算法作业也是信手拈来,这门课成绩一定差不了!
哈哈哈,希望自己看完这本书之后,能够概念清清楚楚,算法信手拈来!

1.1 引言

正如我们根据过去的经验来判断明天的天气,吃货们希望从购买经验中挑选一个好瓜,那能不能让计算机帮助人类来实现这个呢?机器学习正是这样的一门学科,人的“经验”对应计算机中的“数据”,让计算机来学习这些经验数据,生成一个算法模型,在面对新的情况中,计算机便能作出有效的判断,这便是机器学习。
另一本经典教材的作者Mitchell给出了一个形式化的定义,假设:

  • P:计算机程序在某任务类T上的性能。
  • T:计算机程序希望实现的任务类。
  • E:表示经验,即历史的数据集。

若该计算机程序通过利用经验E在任务T上获得了性能P的改善,则称该程序对E进行了学习。

1.2 基本术语

假设我们收集了一批西瓜的数据,例如:(色泽=青绿;根蒂=蜷缩;敲声=浊响), (色泽=乌黑;根蒂=稍蜷;敲声=沉闷), (色泽=浅自;根蒂=硬挺;敲声=清脆)……每对括号内是一个西瓜的记录,定义:

  • 所有记录的集合为:数据集。

  • 每一条记录为:一个实例(instance)或样本(sample)。

  • 例如:色泽或敲声,单个的特点为特征(feature)或属性(attribute)。

  • 属性上的取值,例如"青绿" “乌黑”,称为"属性值" (attribute value).。

  • 属性张成的空间称为"属性空间" (attribute space) 、 “样本空间” (sample space)或"输入空间"。

  • 对于一条记录,如果在坐标轴上表示,每个西瓜都可以用坐标轴中的一个点表示,一个点也是一个向量,例如(青绿,蜷缩,浊响),即每个西瓜为:一个特征向量(feature vector)。

  • 一个样本的特征数为:维数(dimensionality),该西瓜的例子维数为3,当维数非常大时,也就是现在说的“维数灾难”。

计算机程序学习经验数据生成算法模型的过程中,每一条记录称为一个“训练样本”,同时在训练好模型后,我们希望使用新的样本来测试模型的效果,则每一个新的样本称为一个“测试样本”。定义:

  • 所有训练样本的集合为:训练集(trainning set),[特殊]。

  • 所有测试样本的集合为:测试集(test set),[一般]。

  • 机器学习出来的模型适用于新样本的能力为:泛化能力(generalization),即从特殊到一般。

西瓜的例子中,我们是想计算机通过学习西瓜的特征数据,训练出一个决策模型,来判断一个新的西瓜是否是好瓜。可以得知我们预测的是:西瓜是好是坏,即好瓜与差瓜两种,是离散值。同样地,也有通过历年的人口数据,来预测未来的人口数量,人口数量则是连续值。定义:

  • 预测值为离散值的问题为:分类(classification)。

  • 预测值为连续值的问题为:回归(regression)。

我们预测西瓜是否是好瓜的过程中,很明显对于训练集中的西瓜,我们事先已经知道了该瓜是否是好瓜,学习器通过学习这些好瓜或差瓜的特征,从而总结出规律,即训练集中的西瓜我们都做了标记,称为标记信息。但也有没有标记信息的情形,例如:我们想将一堆西瓜根据特征分成两个小堆,使得某一堆的西瓜尽可能相似,即都是好瓜或差瓜,对于这种问题,我们事先并不知道西瓜的好坏,样本没有标记信息。定义:

  • 训练数据有标记信息的学习任务为:监督学习(supervised learning),容易知道上面所描述的分类和回归都是监督学习的范畴。

  • 训练数据没有标记信息的学习任务为:无监督学习(unsupervised learning),常见的有聚类和关联规则。

1.3 假设空间

归纳 (induction)与演绎 (deduction)是科学推理的两大基本手段
前者是从特殊到一般的"泛化" (generalization)过程,即从具体的事实归结出一般性规律;后者则是从一般到特殊的"特化" (specialization)过程,即从基础原理推演出具体状况。
归纳学习有狭义与广义之分,广义的归纳学习大体相当于从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念 (concept) ,因此亦称为"概念学习"或"概念形成"。
概念学习中最基本的是布尔概念学习,即对"是" “不是"这样的可表示为 0/1 布尔值的目标概念的学习.例:
在这里插入图片描述
这里要学习的目标是"好瓜”。对一个已经见过的瓜,我们很容易判断,但是我们的目的是是为了“泛化”,即通过对训练集中瓜的学习以获得对没见过的瓜进行判断的能力.
我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配"(fit) 的假设,即能够将训练集中的瓜判断正确的假设.下图显示了西瓜问题的假设空间。
在这里插入图片描述
需注意的是,现实问题中我们常面临很大的假设空间,但学习过程是基于有限样本训练集进行的,因此,可能有多个假设与训练集一致,即存在着一个与训练集一致的"假设集合",我们称之为"版本空间" (version space).
在这里插入图片描述

1.4 归纳偏好

对于一个具体的学习算法而言,它是要产生一个模型的,这时,学习算法本身的"偏好"就会起到关键的作用.例如,若我们的算法喜欢"尽可能特殊"的模型,则它会选择"好瓜<->(色泽= *)∧(根蒂=蜷缩)∧(敲声=浊晌)" ;但若我们的算法喜欢"尽可能一般"的模型,并且由于某种原因它更"相信"根蒂,则它会选择"好瓜<->(色泽= *)∧(根蒂=蜷缩)∧(敲声= *)" .机器学习算法在学习过程中对某种类型假设的偏好,称为"归纳偏好" (inductive bias),或简称为"偏好"。归纳偏好对应了学习算法本身所做出的关于"什么样的模型更好"的假设.

  • “奥卡姆剃刀”:若有多个假设与观察一致,则选最简单的那个
  • "没有免费的午餐"定理 NFL:,无论学习算法a多聪明、学习算法b多笨拙,它们的期望性能是相同的!但有个重要前提:所有"问题"出现的机会相同、或所有问题同等重要.但实际情形并不是这样.
    所以, NFL 定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论"什么学习算法更好"毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好.要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用.

2、习题

1.1 表1. 1 中若只包含编号为 1 和 4 的两个样例?试给出相应的版本空间.
在这里插入图片描述
只包含样本1和4,样本空间变为

编号色泽根蒂敲声好瓜
1青绿蜷缩浊响
2乌黑稍蜷沉闷

只取是好瓜的看,表格中编号1的瓜(色泽=青绿;根蒂=蜷缩;敲声=浊响)
进行拓展:

  • 1.色泽=青绿 根蒂=蜷缩 敲声=浊响
  • 2.色泽=青绿 根蒂=蜷缩 敲声=*
  • 3.色泽=青绿 根蒂=* 敲声=浊响
  • 4.色泽=* 根蒂=蜷缩 敲声=浊响
  • 5.色泽=青绿 根蒂=* 敲声=*
  • 6.色泽=* 根蒂=蜷缩 敲声=*
  • 7.色泽=* 根蒂=* 敲声=浊响
  • 8.色泽=* 根蒂=* 敲声=*

由于8包含了坏瓜样本,故去掉,只取1-7作为版本空间:

  • 1.色泽=青绿 根蒂=蜷缩 敲声=浊响
  • 2.色泽=青绿 根蒂=蜷缩 敲声=*
  • 3.色泽=青绿 根蒂=* 敲声=浊响
  • 4.色泽=* 根蒂=蜷缩 敲声=浊响
  • 5.色泽=青绿 根蒂=* 敲声=*
  • 6.色泽=* 根蒂=蜷缩 敲声=*
  • 7.色泽=* 根蒂=* 敲声=浊响
    一般情况下版本空间是正例的泛化,但由于数据集中只有1个正例,所以在版本空间中依然包含了这个样本的假设(编号1)

1.2 与使用单个合取式来进行假设表示相比,使用"析合范式"将使得假设空间具有更强的表示能力.例如:
样本空间: 344+1 = 49 k最大取233=18,即所有具体属性假设的析取式
k=1时,49种
k=18时,1种
k取中间值,暂未解

1.3 若数据包含噪声,则假设空间中有可能不存在与所有训练样本都一致的假设在此情形下,试设计一种归纳偏好用于假设选择.
可以同时去掉所有具有相同属性而不同分类的数据,留下的数据就是没误差的数据

参考资料:
https://blog.csdn.net/icefire_tyh/article/details/52065224
https://github.com/houxiao/machine_learning_note/blob/master/ch1_课后习题.txt
https://datawhalechina.github.io/pumpkin-book/#/chapter1/chapter1

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是泛化能力?泛化能力和过拟合之间有什么关系? 泛化能力是指模型在新的、未见过的数据上的表现能力。模型的泛化能力与其对训练数据的拟合程度有关,通常来说,过拟合的模型泛化能力较差。 2. 什么是交叉验证?交叉验证的作用是什么? 交叉验证是一种通过将数据集分成若干个子集来进行模型评估的方法。具体地,将数据集分成k个子集,每个子集都轮流作为测试集,其余子集作为训练集,重复k次,最终得到k个模型的评估结果的平均值。交叉验证的作用是提高模型评估的可靠性和泛化能力。 3. 留出法、k折交叉验证和留一法的区别是什么?它们各自适用于什么情况? 留出法是将数据集分成两部分,一部分作为训练集,另一部分作为测试集。留出法适用于数据集较大的情况。 k折交叉验证是将数据集分成k个子集,每个子集都轮流作为测试集,其余子集作为训练集,重复k次,最终得到k个模型的评估结果的平均值。k折交叉验证适用于数据集较小的情况。 留一法是k折交叉验证的一种特殊情况,即将数据集分成n个子集,每个子集都作为测试集,其余子集作为训练集,重复n次。留一法适用于数据集较小且样本数较少的情况。 4. 为什么要对数据进行预处理?数据预处理的方法有哪些? 数据预处理可以提高模型的表现,并且可以减少过拟合的风险。数据预处理的方法包括:标准化、归一化、缺失值填充、特征选择、特征降维等。 5. 什么是特征选择?特征选择的方法有哪些? 特征选择是指从所有特征中选择出对模型预测结果有重要贡献的特征。特征选择的方法包括:过滤式方法、包裹式方法和嵌入式方法。其中,过滤式方法是基于特征间的关系进行特征选择,包裹式方法是基于模型的性能进行特征选择,嵌入式方法是将特征选择嵌入到模型训练中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值