周志华《机器学习》读书笔记(1)

本文介绍了机器学习的基本概念,包括示例、属性、属性值、属性空间等,并详细解释了监督学习与无监督学习的区别,以及如何评估学习器的性能。

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

越来越觉得一个码农应该学点机器学习相关的东西了。希望毕业前能看完这本书。— 2017年11月22日

第一章 绪论

  1. 数据集中的每条记录是关于一个时间或者对象的描述,成为一个“示例”(instance)或”样本“(sample),反应时间或对象在某方面的表现或性质的事项,如“颜色”、“大小”。

    • 属性上的取值成为“属性值”(attribute value);
    • 属性张成的空间成为“属性空间”(attribute space)、“样本空间”(sample space)或“输入空间”。
    • 把“色泽”、“根蒂”、“敲声”张成三个坐标轴,则他们张成一个用于描述西瓜的三维空间。没个西瓜都可以在这空间中找到自己的坐标位置,对应空间中的一个坐标向量。因此我们可以把一个示例成为一个“特征向量”(feature vector)。
  2. D={x1,x2,...,xm} 表示包含m个示例的数据集。每个由d个属性描述(上面的西瓜数据使用了三个属性),每个示例xi={xi1;xi2;...;xim} 是d维样本空间 X 中的一个向量, xiX,其中xijxi在第j个属性上的取值。d成为样本xi的”维数”(dimensionality)。

  3. 一些名词。

    • 从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成。
    • 训练过程中使用的数据成为“训练数据”(training data)。
    • 其中每个样本称为一个“训练样本”(training sample),训练样本组成的集合成为“训练集”(training set)。
    • 学得模型对应了关于数据的某种潜在的规律,因此亦称“假设”(hypothesis)。
    • 这种潜在规律自身,则成为“真相”或“真实”(groun-truth),学习过程就是为了找出或逼近真相。本书有时将模型称为“学习器”(learner),可看作学习算法在给定数据和参数空间上的实例化。

    学习算法通常有参数需要设置,使用不同的参数值和训练数据,将产生不同的结果。

  4. 如果要得到一个帮助判断一个瓜是否“好瓜”的模型,仅有前面的示例是不够的。要建立这样“预测”(prediction)的模型。我们需要获得训练样本的“结果信息”,例如“((色泽=青绿;根蒂=蜷缩;敲声=浊响),好瓜)”。这里关于示例结果的信息,例如“好瓜”,成为“标记”(label);拥有了标记信息的示例,称为“样例”(example)。一般地,用(xi,yi)表示第i个样例,其中yiY是示例xi标记,Y是所有标记的集合,亦称“标记空间”(label space)或“输出空间”。

  5. 分类与回归。
    • 若我们欲预测的是离散值,例如“好瓜”、“坏瓜”,此类学习任务成为“分类”(classification)。
    • 若我们欲预测的是连续值,如西瓜成熟度 0.95、 0.37,此类学习任务成为“回归”(regression)。
  6. 学得模型后,使用其进行预测的过程成为“测试”(testing),被预测的样本成为“测试样本”(testing sample),例如在学得 f 后,对测试例 x,可得到其预测标记y=f(x).

  7. 我们还可对西瓜做“聚类”(clustering),即将训练集中的西瓜分成若干组,每组成为一个“簇”(cluster);这些自动形成的簇可能对应一些潜在的概念划分。
  8. 根据训练数据是否拥有标记信息,学习任务大致可分为两大类:
    • 监督学习(supervised learning),如分类和回归。
    • 无监督学习(unsupervised learning) ,如聚类。
  9. 归纳(induction)与演绎(deduction)。
    • 归纳是特殊到一般的“泛化”(generalization)过程。
    • 演绎是一般到特殊的“特化”(specialization)过程。
  10. 可能存在多个假设与训练集一直,即存在一个与训练集一致的“假设集合”,我们称之为“版本空间”(version space)。
  11. 归纳偏好。假如在一个版本空间中,有三个与训练集一致的假设,但它们对应的模型在面对新样本的时候,却会产生不同的输出。但对于一个具体的学习算法而言,他必须产生一个模型,这时算法本身的“偏好”就起关键作用。机器学习算法在学习过程中对某种类型假设的偏好,成为“归纳偏好”(inductive bias),简称“偏好”。

第一章习题

1.1

这里写图片描述

第二章 模型评估与选择

  1. 分类错误的样本数 a 占样本总数 m 的比例 E=a/m 成为“错误率”(error rate), 1a/m 称为精度(1-错误率)。
  2. 学习器的预测输出与样本的真实输出之间的差异称为“误差”(error)。
  3. 学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上的误差称为“泛化误差”(generalization error)(泛化误差应尽可能小)。
  4. 当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作所有潜在样本都会具有的一般性质,倒是泛化性能下降,该现象称为“过拟合”(overfitting)【通俗理解为过于严格,误添加了不必要的特性】。相对的是“欠拟合”(underfitting),对训练样本的一般性质尚未学好。
  5. 学习能力过于强大,以至于把训练样本所包含的不太一般的特性学到了,会导致过拟合。
  6. 学习能力过于低下,则会导致欠拟合。
  7. 欠拟合较易克服,例如在决策树学习中扩展分支,神经网络学习中增加训练轮数等。过拟合则较麻烦,且无法彻底避免,只能“缓解”,减少其风险。
  8. 测试样本应尽可能不出现在训练集中,避免得到过于乐观的估计结果。
  9. 当只有一个内含m个样例数据集D={(x1,y1),(x2,y2),...,(xm,ym)}时,有以下方法作评估处理。
    • “留出法”(hold-out)直接将数据集划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即 D=ST,ST=,用S训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
    • “交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集,即D=D1D2...Dk,DiDj=(ij),每个子集Di都尽可能保持数据分布的一致性,k最常取的值是10,此时称为10折交叉验证。把D划分成10个互斥子集,每次取其中9个作为训练集,剩下一个作为测试集,得到10个测试结果。最后将10个测试结果求平均值返回最终结果。留一法(Leave-One-Out)是特殊的交叉验证发,k=m,每次只用一个样本来验证,但缺点是复杂度太高,训练出来的模型达m个。
    • 自助法(boosttrapping)。给包含m个样本的数据集D,我们对他进行采样产生数据集D(一开始D是空的):每次随机从D中【不取出地】挑选一个样本,将其拷贝放入D,重复m次,这样m次下来,样本始终没被采到的概率是(11m)m,取极限得
      limx+(11m)m1e0.368
      通过自主采样,初始数据集中约有36.8%的样本未出现在采样数据集D中。我们把D用作训练集,D \ D用作测试集。这样实际评估的模型与期望评估的模型都使用了m个训练样本,而我们仍有数据总量的1/3的、没在训练集中出现的样本用于测试。这样的测试结果,亦称“包外估计”(out-of-bagestimate)。自助法在数据集较小、难以有效划分计划/测试集时很有用。但该方法改变了初始数据集的分布,引入了估计误差。因此数据量足够时,留出法和交叉验证法更常用一些。
  10. 我们通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”(validation set)。
  11. 性能度量(performance measure)。在预测任务中,给定样例集 D={(x1,y1),(x2,y2),...,(xm,ym)},其中yi 是示例 xi 的真实标记,要评估学习器 f 的性能,就要把学习器预测结果f(x)与真实标记y进行比较。回归任务最常用的性能度量是“均方误差”(mean squared error)
    E(f;D)=1mi=1m[f(xi)yi]2

    更一般的,对于数据分布D和概率密度函数p(),均方误差可描述为
    E(f;D)=xD[f(x)y]2p(x)dx

    12 .错误率与精度。
    • 错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。对样例集D,分类错误率定义为
      E(f;D)=1mi=1mI(f(xi)yi)

      精度则定义为
      acc(f;D)=1mi=1mI(f(xi)=yi)=1E(f;D)

      更一般的,对于数据分布D和概率密度函数p(),错误率与精度可分别描述为
      E(f;D)=xDI(f(x)y)p(x)dx

      E(f;D)=xDI(f(x)=y)p(x)dx=1E(f;D)
  12. 查准率、查全率与F1
    这里写图片描述

    P=TPTP+FP=
    R=TPTP+FN=

    通俗理解
    • 查准率:P=

    • 查全率:P=

      查准率和查全率是一对矛盾的度量,一者高时,另一者必然低。

    • 平衡点:(Break-Even Point,简称BEP)就是这样一个度量,它是“查准率=查全率”时的取值。
      这里写图片描述

    • F1度量(基于P和R的调和平均定义harmonic mean)

      1F1=12(1P+1R)

      F1=2×P×RP+R=2×TP+TPTN

对查准率更重视的如:商品推荐系统中,为了尽可能少打扰客户。

对查全率更重视的如:逃犯信息检索系统,为了尽可能少漏掉逃犯。

  • F1度量的一般形式Fβ(基于PR的加权调和平均定义):

1Fβ=11+β2(1P+β2R)

Fβ=(1+β2)×P×R(β2×P)+R

β>0度量了查全率对查准率的相对重要性。β=1时退化为标准的F1β>1时查全率有更大影响;β<1时查准率有更大影响

  • macroF1 :(先挖坑)

13 . 许多学习器为测试样本产生一个实值或者概率预测,然后将这个预测值与一个分类阈值比较,若大于该阈值则分为正类,小于该阈值则为反类。我们将测试样本降序排列,最可能为正例的排在最前面,最可能为反例的排在最后面。分类过程中可以设置一个“截断点”(cut point)将样本分为两部分。前半部分为正例,后半部分为反例。

  • 如果我们重视“查准率”,就在靠前的位置截断。
  • 如果我们重视“查全率”,就在靠后的位置截断。

14 .RCO全称是“受试者工作特征”(Receive Operating Charateristic)曲线。ROC曲线的横坐标为“真正例率”(True Positive Rate),纵坐标为“假正例率”(False Positive Rate)。

TPR=TPTP+FN=

FPR=FPTN+FP=

这里写图片描述

  • 点(0, 1)意思是所有正例都被预测出来了,而且没有预测错误的“理想模型”。
  • 绘制(b)曲线的过程是每次把分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1m+),当前若为假正例,则对应标记点的坐标为(x+1m,y),最后连接相邻点。
  • 若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。若两个学习器的ROC曲线有交叉,则难以判断优劣。若一定要比较,则比较ROC曲线下的面积,即AUG(Area Under ROC Curve)。
  • AUG 可估算为

    AUG=12i=1m1(xi+1xi)(yi+yi+1)
  • 排序损失(loss)定义为:

    lrank=1m+mxD+xD[I(f(x+)<f(x)))+12I(f(x+)=f(x)]

    若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”。lrank对应的是ROC曲线之上 的面积。AUG=1lrank.

14 .代价敏感错误率与代价曲线。

### 关于周志华机器学习》(西瓜书)第二章的学习笔记 #### 模型评估与选择概述 模型评估与选择是机器学习领域的重要组成部分,旨在通过合理的方法评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算法的期望预测与实际结果之间的差距,反映了算法自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方法能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^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、付费专栏及课程。

余额充值