预测回归二:局部加权回归和惩罚线性回归
一般的线性回归(关于线性回归的详细内容,参见另一篇文章:机器学习之预测回归一:简单线性回归)过于简单,容易出现欠拟合与过拟合的问题。为了改进模型使其具有更好的预测效果,可以引入局部加权回归和惩罚线性回归的方法。本文介绍这两种方法的原理以及
Python 代码实现。
一、局部加权回归
原理
线性回归容易出现欠拟合的问题,引入局部加权线性回归可以降低预测的均方误差。
给待预测点附近的每个点赋予一定的权重,然后在这个子集上进行普通的回归。这种算法每次预测均需事先先选取出对应的数据子集。
回归系数的形式变为:
权重 W 是一个矩阵,常用的计算是使用高斯核:
超参数k的大小影响了模型的效果,选择合适的k是调参的过程。
python 代码实现
导入数据的函数:
def loadDataSet(filename, separator='\t'):
dataSet = []
labels = []
with open(filename, 'r') as fr:
for line in fr.readlines():
lineArr = line.strip().split(separator)
feat = []
for i in range(len(lineArr) - 1):
feat.append(float(lineArr[i]))
dataSet.append(feat)
labels.append(float(lineArr[-1]))
return dataSet, labels
局部加权线性回归函数: