当想要根据既定的输入预测某个结果,并且还有输入、输出对的示例时,都应该使用监督学习。
2.1 分类和回归
监督机器学习问题主要有两种:分类, 回归。
问一个问题输出是否具有连续性:
- 连续:回归问题
- 离散:归类问题
2.2 泛化、过拟合、欠拟合
- 过拟合:构建一个对现有信息量来说过于复杂的模型
- 欠拟合:无法抓住数据的全部内容及数据中的变化
- 数据集中所包含的数据变化范围越大,可以构造的模型就可以更复杂
- 数据集中的数据越多,可以构造的模型就可以更复杂
2.3 监督学习算法(注意读文档SciKit Learn)
2.3.1 一些样本数据集
- 模拟二分类数据集:forge数据集,含两个特征(feature)
- 模拟回归数据集:wave数据集,一个输入特征,一个目标变量
- 威斯康星州乳腺癌数据集(cancer数据集)
- 波士顿房价数据集(boston数据集)
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 7 15:20:51 2019
@author: k2821
"""
import mglearn
import matplotlib.pyplot as plt
# 生成数据集
X, y = mglearn.datasets.make_forge()
# 绘制
mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
plt.legend(["Class 0", "Class 1"], loc=4)
plt.xlabel("First Feature")
plt.ylabel("Second Feature")
plt.show()
# 生成数据集
X, y = mglearn.datasets.make_wave(n_samples=40)
# 绘制
plt.plot(X, y, 'o')
plt.ylim(-3, 3)
plt.xlabel("Feature")
plt.ylabel("Target")
plt.show()
# 威斯康星州乳腺癌数据集
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
# print(cancer.keys())
print(cancer['DESCR'])
# 波士顿房价数据集
from sklearn.datasets import load_boston
boston = load_boston()
# print(boston.keys())
print(boston['DESCR'])