预测鲍鱼的年龄
Poblog 06月09日 2018
数据y=1*b+a*x
1 0.455 0.365 0.095 0.514 0.2245 0.101 0.15 15
...
其中1 0.455 0.365 0.095 0.514 0.2245 0.101 0.15为参数
15为y
使用前100行数据生成参数并验证
yHat01=lwlrTest(abX[0:99],abX[0:99],abY[0:99],0.1);
使用前100行数据生成参数并使用100-200行数据验证
yHat01=lwlrTest(abX[100:199],abX[0:99],abY[0:99],0.1);
计算平方误差
((yArr-yHatArr)**2).sum()
其中yArr是原始数据,yHatArr是使用参数得到的数据
前100条做测试集
56.83512842240429 k=0.1
429.8905618701634 k=1
549.1181708823923 k=10
结论:
不在所有数据集上都使用最小的核,因为使用最小的核将造成过拟合
101-200条做测试集
41960.42296690966 k=0.1
573.5261441899764 k=1
517.5711905380314 k=10
结论:
核大小等于10时的测试误差最小
最终结论:
必须在未知数据上比较效果才能选取到最佳模型
缩减系数来“理解”数据
上面方法的缺陷
如果数据的特征比样本点还多,不能再使用前面介绍的方法。这是因为在计算 (X T X) -1 的时候会出错,特征比样本点还多( n > m ) ,也就是说输入数据的矩阵 X 不是满秩矩阵。非满秩矩阵在求逆时会出现问题
第一种缩减方法:岭回归
回归系数的计算公式将变成:
岭回归就是在矩阵 XT X 上加一个λ I 从而使得矩阵非奇异,进而能对 X T X +λ I 求逆
lasso法:
第二种缩减方法:前向逐步回归