天天看点

人工智能基础入门4

1、泛化能力:是指机器学习算法对新鲜样本的适应能力。 学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。通常通过测试误差来评价学习方法的泛化能力。

2、欠拟合:泛化能力弱,做了很多题,始终掌握不了规律,不管遇到老题新题都不会做;

解决欠拟合的方法:

(1) 增加特征项;

(2) 添加多项式特征;

(3) 减少正则项。

过拟合:泛化能力弱,做了很多题,只会死记硬背,一到考试看到新题就蒙了;

解决过拟合的方法:

(1) 清洗数据;

(2) 增大训练数据量;

(3) 采用正则化方法;

不收敛:完全不做题,考试全靠瞎蒙

过拟合模型在训练过程中产生的损失很低,但在预测新数据方面的表现却非常糟糕

3、泛化误差:反映了学习方法的泛化能力,如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么这种方法就更有效

4、提高泛化能力:

1.增加数据量。

2.正则化。

3.凸优化。

交叉验证提出背景(在机器学习里,通常来说我们不能将全部用于数据训练模型,否则我们将没有数据集对该模型进行验证,从而评估我们的模型的预测效果。我们可以把整个数据集分成两部分,一部分用于训练,一部分用于验证,这也就是我们经常提到的训练集(training set)和测试集(test set)。不过,这个简单的方法存在两个弊端。

1.最终模型与参数的选取将极大程度依赖于你对训练集和测试集的划分方法。

2.该方法只用了部分数据进行模型的训练

当用于模型训练的数据量越大时,训练出来的模型通常效果会越好。所以训练集和测试集的划分意味着我们无法充分利用我们手头已有的数据,所以得到的模型效果也会受到一定的影响。)

交叉验证用在数据不是很充足的时候。如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数。

5、留一交叉验证(Leave-one-out Cross Validation)LOOCV方法:也将数据集分为训练集和测试集。但是不同的是,只用一个数据作为测试集,其他的数据都作为训练集,并将此步骤重复N次(N为数据集的数据数量)。

K折交叉验证:和LOOCV的不同在于,每次的测试集将不再只包含一个数据,而是多个,具体数目将根据K的选取决定。比如,如果K=5,那么我们利用五折交叉验证的步骤就是:

1.将所有数据集分成5份

2.不重复地每次取其中一份做测试集,用其他四份做训练集训练模型,之后计算该模型在测试集上的MSEi

3.将5次的MSEi公式取平均得到最后的MSE