Python机器学习日记3:监督学习
一、书目与章节
拜读的是这本《Python机器学习基础教程》,本文选自第2章“监督学习”第1节“分类与回归”与第2节“泛化、过拟合与欠拟合”。
本书电子版链接:https://pan.baidu.com/s/1MTPDFHeD6GVgMX4C_wOZPQ
提取码:ut34
本书全部代码:https://github.com/amueller/introduction_to_ml_with_python
二、什么是监督学习
1. 概念
利用输入/输出对构成训练集/训练集和机器学习模型,来对全新数据做出准确预测的机器学习算法
2. 类型
2.1. 分类(classification)
2.1.1. 目标
预测类别标签(class label)
2.1.2. 类型
- 二分类(binary classification)——> 回答一道是/否问题:
例如,垃圾邮件分类,通常分为正类(positive class)与反类(negative class) - 多分类(multiclass classification)
例如,鸢尾花分类、根据网站上的文本预测网站所用语言(类别为语言列表)
2.2. 回归(regression)
预测一个连续值,编程术语叫浮点数(floating-point number),数学术语叫做实数(real number)
2.3. 区分方法
判断输出是否具有某种连续性:
① 预测年收入 ——> 有连续性 ——> 回归
② 识别语言 ——> 无连续性 ——> 分类
3. 优缺点
通常需要用人力来构建训练集,但后续本impossible的任务将自动快速地完成
三、泛化、过拟合与欠拟合
1. 泛化(generalization)
① 如果一个模型能够对没见过的数据做出准确预测,就说明他能够从训练集泛化到测试集。
② 需要构建一个泛化精度尽可能高的模型。
2. 过拟合与欠拟合(overfitting & underfitting)
2.1. 过拟合
构建一个对现有信息量来说过于复杂的模型(考虑过多细节,得到一个在训练集上表现很好,但是无法泛化到新数据上的模型)
2.2. 欠拟合
选择过于简单的模型
2.3. 理想模型
模型越复杂,在训练数据上的预测结果越好。但是模型过于复杂,便会开始过多关注训练集中每个单独数据点,模型就不能很好地泛化到新数据上。二者之间存在一个最佳位置,可得到最好的泛化性能。即为想要的模型。
2.4. 模型复杂度与数据集大小的关系
模型复杂度与训练数据集中输入的变化密切相关:数据集中包含的数据点的变化范围越大,在不发生过拟合的前提下可以使用的模型就越复杂。收集更多数据,适当构建更复杂的模型,对监督学习任务往往特别有用。
To be continued…
欢迎继续浏览:一些分类与回归的数据集介绍