用python轻松理解机器学习
概述
一. 机器学习的四个分支
1.监督学习,主要有分类和回归,还有其他变体(序列生成、语法树预测、目标检测、图像分割)。
2.无监督学习
- 目的:数据可视化、数据压缩、数据去噪、更好地理解数据中的相关性
- 方法:降维和聚类
3.自监督学习:是没有人工标注的标签的监督学习,可以将它看作没有人类参与的监督学习。标签 仍然存在(因为总要有什么东西来监督学习过程),但它们是从输入数据中生成的,通常是使用启发式算法生成的。
比如,自编码器,它生成的目标就是未经修改的输入。还有,给定视频中过去的帧来预测下一帧,或者给定文本中前面的词来预测下一个词,都是自监督学习的例子(也属于时序监督学习)。
4.强化学习:智能体接收有关其环境的信息,并学会选择使某种奖励最大化的行动。
二.评估机器学习模型(降低过拟合以及将泛化能力最大化)
1.简单的留出验证
代码清单4-1 留出验证
num_validation_samples = 10000
#打乱数据
np.random.shuffle(data)
#定义验证集
validation_data = data[:num_validation_samples]
data = data[num_validation_samples:]
#定义训练集
training_data = data[:]
model = get_model()
model.train(training_data)
validation_score = model.evaluate(validation_data)
# 现在你可以调节模型、重新训练、评估,然后再次调节……
model = get_model()
model.train(np.concatenate([training_data,
validation_data]))
test_score = model.evaluate(test_data)