因为最近在做毕业论文,需要做一部分有关聚类&贝叶斯分类器的工作,所以开始啃周志华老师的西瓜书。
第1章 绪论
若预测的是离散值,称为“分类”classification
(1)只涉及两个类别的分类——“二分类” binary classification :正类positive class、反类negative class
(2)涉及多类别,称为“多分类”multi-class classification
若预测的是连续值,称为“回归”regression
聚类 clustering 将训练集中的样本分成若干组,每个组称为一个簇cluster
根据是否有标记信息label,学习任务分为两类:
监督学习 supervised learning(分类、回归)
无监督学习 unsupervised learning(聚类)
科学推理:
归纳induction-> 泛化generalization
演绎deduction->特化specialization
归纳偏好inductive bias
第2章 模型评估与选择
error rate 错误率:分类错误的样本数占样本总数的比例(1-精度accuracy)
training error训练误差/empirical error经验误差:学习器在训练集上的误差
generalization error泛化误差:在新样本上的误差
overfitting过拟合:学习器把训练样本学得“太好了”,可能已经把训练样本自身的一些一些特点当作了所有潜在样本都会具有的一般性质,会导致泛化性能下降。
underfitting欠拟合:对训练样本的一般性质尚未学好->解决:在决策树学习中扩展分支、在神经网络学习中增加训练轮数等。
选择哪种学习算法、哪种参数配置?——模型选择model selection
2.2评估方法
可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。
所以,我们需要一个测试集testing set来测试学习器对新样本的判别能力,然后以测试集上的测试误差testing error作为泛化误差的近似。
通常,我们假设测试样本也是从样本真实分布中独立同分布采样而得的。
Tips:测试集应当尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。
->当只有有一个数据集时,既要训练又要测试->对数据集进行恰当处理,产生一个训练集S和测试集T,以下为方法:
2.2.1留出法hold-out:直接将数据集D划分为两个互斥的集合,其中一个集合为训练集,另一个为测试集。
Tips:划分尽可能保持数据分布的一致性 (类比采样sampling中的分层采样stratified sampling,保留类别比例)
使用留出法时要采用若干次随即划分、重复进行实验评估后取平均值作为留出法的评估结果。
划分比例的权衡:测试集较大的时候,评估结果的方差较大;测试集较小时,评估结果的偏差较大,即保真性fidelity不够
常见做法:将大约2/3-4/5的样本用于训练
2.2.2交叉验证法cross validation
先将数据集划分为k个大小相似的互斥子集,每个子集尽量保持数据分布的一致性。每次用k-1个个子集 的并集做训练集,剩下的是测试集,从而进行k组训练和测试,最终返回k个测试结果的平均值
k是关键,所以也叫 k折交叉验证(k-fold cross validation) 常常取10
通常随机使用不同的划分方式重复p次,最终评估结果是p次k折交叉验证结果的均值。
2.2.3自助法bootstrapping(可以减少训练样本规模不同造成的影响,同时还能比较高效地进行实验估计),以自助采样法bootstrap sampling为基础
36.8%
Tips.在数据集较小、难以有效划分训练集、测试集时有用,但会引入统计偏差
2.2.4 调参parameter tuning与最终模型
2.3性能度量performance measure——衡量模型泛化能力的评价标准
评估学习器f的性能既是吧学习器预测结果f(x)与真是标记y进行比较
回归任务常用性能度量——均方误差 mean squared error
2.3.1错误率与精度——分类任务常用,二分类、多分类均适用
2.3.2差准率precision=TP/(TP+FP)、查全率recall=TP/(TP+FN)和F1
真正例true positive
假正例false positive
真反例true negative
假反例false negative
查全率和查准率相互矛盾
平衡点Break-Even Point EBP 度量 查全率=查准率