周志华《机器学习》笔记(1):西瓜书第一章

本书由南京大学周志华教授撰写,全面介绍了机器学习的基础知识、经典算法及进阶内容。书中强调理解思想而非仅仅掌握算法的重要性,并详细解释了机器学习的基本术语、假设空间、归纳偏好等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本书作者:南京大学周志华教授

全书共16章,大体上可分为3个部分:

  • 第1部分包括第1~3章,介绍机器学习基础知识;
  • 第2部分包括第4~10章,介绍一些经典而常用的机器学习方法;
  • 第3部分包括第11~16章,介绍一些进阶知识;

如何使用本书

初学机器学习易陷入一个误区:以为机器学习师若干种算法的堆积,熟练了“十大算法”或“二十大算法”一切即可迎刃而解,于是将目光仅聚焦于在具体算法推导和编程实现上;待到实践发现效果不如人意,则又转对机器学习分发生怀疑。须知,书本上仅能展示有限的典型“套路”,而现实世界千变万化,以有限制套路应对无限之变化,焉有不败!算法是“死的”,思想才是“活的”。此书不妨多读几遍。

第一章 绪论

1.1引言

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

1.2 基本术语

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

  • 所有记录的集合为:数据集(data set)
  • 每一条记录为:一个实例(instance)或样本(simple)
  • 例如:色泽和敲声,单个的特点为特征(feature)或属性(attribute)
  • 对于一条记录,如果在坐标轴上表示,每个西瓜都可以用坐标轴中的一个点表示,一个点也是一个响亮,例如例如(青绿,蜷缩,浊响),即每个西瓜为:一个特征向量(feature vector)
  • 一个样本的特征数为:维数(dimensionality),如该西瓜的例子维数为3.

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

  • 所有训练样本的集合:训练集(trainning set),【特殊】
  • 所有测试样本的集合:测试卷(test set),【一般】
  • 机器学习出来的模型适用于新样本的能力为:泛化能力(generalization),既从特殊到一般。当然我们希望模型的generalization越高越好。

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

  • 预测值为离散值的问题为:分类(classification)
  • 预测值为连续值的问题为:回归(regression)

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

(具有标记信息可以理解为事先告诉数据什么是对的什么是错的)

  • -训练数据有标记信息的学习任务为:监督学习(supervised learning),分类和回归
  • 训练数据没有标记信息的学习任务为:无监督学习(unsupervised learning),聚类

于是,尽管训练集通常只是样本空间的一个很小的采样,我们仍希望它能很好的反映出样本空间的特性,否则假设样本空间中全体样本服从一个未知“分布”(distribution),我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identical distribution 简称i.i.d

1.3 假设空间

归纳(induction)与演绎(deduction)是科学推理的两大基本手段。

1、归纳(induction)

从特殊到一般的“泛化”过程。即从具体的事实归结出一般性规律

从样例中学习 显然是一个归纳的过程,所以也称为“归纳学习”(inductive learning)

2、演绎(deduction)

从一般到特殊的“特化”(specialization)过程。即从基础原理推演出具体的情况

3、假设空间(hypothesis space)

例如:色泽,根蒂,敲声分别有3,2,2种可能取值,则我们面临的假设空间规模大小为4*3*3+1=37。(这其中包含着通配符*的情况
我们把学习过程看作一个在所有假设组成的空间中进行搜索的过程。模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space),假设空间的确定意味着学习范围的确定。

4、版本空间(version space)(所有假设空间的集合

现实问题中我们常常面临很大的假设空间,但学习过程师基于有限样本训练集进行的。因此,可能有多个假设与训练集一致,即存在着一个与训练集一直的假设集合,我们称之为版本空间。

1.4 归纳偏好

1、任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果。

2、一般性原则:奥卡姆剃刀是一种常用的、自然科学研究中最基本的原则。

  • 奥卡姆剃刀:若有多个假设与观察一致,则选最简单的那个。
  • “最简单的那个”:有时简单也存在着不同的诠释,实则并不“简单”,故需要借助其他机制才能解决。

3、没有免费午餐定理(No Free Lunch 简称NFL)

  • 任何算法不可能完美,他们的期望性能都是相同的。
  • NFL给我们的最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在问题,则所有学习算法都一样好。

1.5 发展历程

  • 20世纪80年代,“从样例中学习”的一大主流师符号主义学习,其代表包括决策树和基于逻辑学习。
  • 20世纪90年代中期之前,“从样例中学习”的另一主流技术是基于神经网络的连接主义学习。
  • 20世纪90年代中期, “统计学习(statistical learning)”闪亮登场并迅速占据主流舞台,代表技术是支持向量机(Support Vector Machine,简称SVM)以及更一般的“核方法”(kernel methods)
  • 21世纪初,连接主义卷土重来,掀起了以“深度学习”为名的热潮。深度学习的前身是连接主义学习
### 关于周志华机器学习》(西瓜)第二章的学习笔记 #### 模型评估与选择概述 模型评估与选择是机器学习领域的重要组成部分,旨在通过合理的方法评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算法的期望预测与实际结果之间的差距,反映了算法自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方法能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^2]。 #### 性能度量指标——P-R图及其应用 为了更直观地展示各类分类器的工作特性,通常会绘制精确率-召回率(Precision-Recall, P-R)曲线来辅助分析。当面对多组实验结果时,可以通过观察这些图形相互间的位置关系来进行优劣评判:如果某条曲线始终位于另一条之上,则表明前者具有更好的整体表现;而对于那些存在交点的情况,则需进一步计算各自下方区域面积大小作为判断依据之一。此外,“平衡点”作为一种特殊的性能测度,在特定条件下也能提供有价值的参考信息[^3]。 #### 偏差-方差分解理论简介 该理论为理解学习算法的一般化能力提供了框架性的指导思路,通过对平均测试错误率实施拆分操作,可以深入剖析导致过拟合现象背后的原因所在,并据此探索改进措施的方向。具体而言,总误差由三部分构成——不可约减误差点(即噪声)、平方形式表达出来的偏差项以及线性累加而成的方差成分[^4]。 ```python import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import precision_recall_curve, auc def evaluate_model_performance(model, X, y): """ 计算并返回PR曲线下面积(AUC),用于量化模型的整体性能。 参数: model (object): 已经训练好的分类模型实例。 X (array-like of shape (n_samples, n_features)): 测试特征矩阵。 y (array-like of shape (n_samples,)): 对应的真实标签向量。 返回: float: PR AUC得分。 """ # 划分训练集/验证集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2) # 使用训练集拟合模型 model.fit(X_train, y_train) # 获取验证集中各观测对应的概率估计值 probas_pred = model.predict_proba(X_val)[:, 1] # 绘制PR曲线并求得AUC分数 precisions, recalls, _ = precision_recall_curve(y_val, probas_pred) pr_auc_score = auc(recalls, precisions) return pr_auc_score ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值