机器学习
定义
这里引用计算机科学家汤姆·米切尔对机器学习给出的一个定义
如果一个程序的性能在T中体现,通过P衡量,并通过经验E来提升,那么程序可以呗视为针对一些任务类型T和性能衡量P从经验E中进行学习
所以我们从这几个方面来讨论机器学习
从经验中学习
机器学习系统经常被描述为在人类监督下或无监督下从经验中学习。
所谓监督学习就是一个程序会通过标记的输入和输出进行学习,并从一个输入预测输出,也就是从正确答案的例子中学习
而非监督学习,一个程序不会从标记数据中学习,它在数据中发现模式
组成监督学习经验的实例集合称为一个训练集
一个用来衡量程序性能的实例集合称为测试集,我们通过测试集来分析程序学习的情况如何
机器学习任务
两种最常见的监督机器学习任务是分类和回归。
分类任务中,程序学习从一个或多个特征中去预测一个或多个响应变量的离散值,也就是为新的数据预测最可能的分类、类别或者标签
回归问题中,程序从一个或多个特征中去预测一个或多个连续响应变量的值,如一个新产品的销售收入
常见的无监督学习任务是在数据集内发现相互管理的观测值群组,称之为聚类
聚类经常用于探索一个数据集
降维是另一种常见的使用无监督学习完成的任务
一个问题可能包含成百上千的特征,如果一些特征涉及噪声或和潜在的关系无关,程序的泛化能力将会减弱
而降维是发现对响应变量变化影响最大的特征的过程
训练数据、测试数据和验证数据
一个训练集就是一个观测值集合,这些观测值组成了算法用来学习的经验。
我们一般不把训练集中的观测值包含在测试集中,因为这样的话,我们很难评估算法是真的从训练集中学习到了泛化能力,还算简单的记住了训练例子。
一个能够很好的泛化的程序可以有效地执行一个包含新数据的任务
对训练集产生记忆称为过拟合
验证集:验证集常用来微调被称为超参数的变量,超参数用于控制算法如何从训练数据中学习
sklearn中我们还允许交叉验证:
训练数据被分割为几部分,模型在多个数据块上进行训练,在剩余的部分上测试,划为被转换几次一遍模型可以在全部数据上训练和评估
偏差与方差
预测五误差又两个根本原因:模型的偏差、模型的方差
一个具有高偏差的模型,无论在那个训练集上学习,对于一个输入都将产出类似的偏差。模型的偏差代表我们对真实关系的假设和在训练数据中证明的关系之间的差别
一个具有高方差的模型,对一个输入产出的不同误差来源于模型学习的训练集
理想情况下,一个模型应该具有低方差和低偏差,但是经常减小其中一个经常会增大另一个,这个现象称为偏差方差权衡