交叉验证

5.多项式回归与模型泛化

 ̄綄美尐妖づ 提交于 2019-11-27 03:59:11
(一)什么是多项式回归 还记得线性回归法吗?线性回归法有一个很大的局限性,那就是需要数据是有一定的线性关系的,但是现实中的很多数据是没有线性关系的。多项式就是用来解决这个问题的,可以处理非线性数据 在线性回归中,我们是假设数据具有线性关系的,因此我们在简单线性回归中,将直线的方向设置为y=ax+b的形式,那么我们求出a和b即可。 而对于有些数据,我们虽然也可以使用线性回归,但是显然具有更加强的非线性的关系,换句话说,如果我们用一个二次曲线来拟合这些点,效果会更好。因此函数就变成了了y=ax^2+bx+c,我们求出a、b、c即可。但是本质上,和线性回归一样,目前都是只有一个特征,只不过我们为样本多添加了一些特征,这些特征是原来的多项式项。求出了对原来的特征而言,一个非线性的曲线。 生成数据集 import numpy as np import matplotlib.pyplot as plt # 生成一百个样本,每个样本只有一个特征 X = np.random.uniform(-3, 3, size=(100, 1)) y = 0.5 * X ** 2 + X + 2 + np.random.normal(0, 1, size=(100,1)) plt.scatter(X, y) plt.show() 可以看到数据大概满足一条二次曲线,但是我们使用线性回归法来拟合一下 from

一、线性回归算法梳理

廉价感情. 提交于 2019-11-26 08:50:59
1.机器学习的一些概念 有监督、无监督、泛化能力、过拟合欠拟合(方差和偏差以及各自解决办法)、交叉验证 有监督:数据集有有已知的y值(label 结果) 无监督:数据集中没有y值,需要根据近似性关系分成一簇一簇的聚类来当作y值来评估 泛化能力:指算法对具有同一规律的学习集以外的数据,的适用程度,对其它样本的适应能力 过拟合:over-fitting,指模型在训练样本中表现过好,要求过于精细,导致泛化能力减弱,在验证数据集和测试集中表现不佳。用图表示就是曲线起伏过大,不平稳。也称高方差。 解决办法:过拟合可以通过减少参数,加入正则惩罚项 L1(绝对值项) L2,变化学习率,尽可能扩大数据集选取范围等方式解决。 欠拟合:under-fitting,与上相反,指模型过于简单或训练样本做的不够,比如特征过省,导致的模型在验证集测试集数据中表现不好,没有代表性。用图表现就是一条无起伏的线。也称高偏差。 解决办法:欠拟合可以通过交叉验证,让特征较少的情况多次迭代交替使用训练集和验证集,达到优化,或跟据相关性添加其它特征项,减少正则化参数。神经网络可以加结点加层数。 交叉验证:把特征分成几部分:一些作为训练集一些做验证集,下一次交换角色,用验证集数据做训练集,训练集做验证集,交替多次充份训练验证数据。 2.线性回归的原理 线性回归是利用数理统计中回归分析