线性回归2(局部加权回归)
来源:互联网 发布:淘宝拍卖包包是真的吗 编辑:程序博客网 时间:2024/05/21 17:59
上节我们讨论了标准的求回归系数的方法,今天我们来讨论使用局部加权的方法求回归系数。对于线性回归有可能出现欠拟合现象。所以为了避免这种情况的发生我们为每个数据点引入一个权重来降低误差,我们这里计算权重的方法是使用高斯核公式计算。这里使用的数据还是上一节的数据,有需要的可以到上一节下载。
def lwlr(testPoint,xArr,yArr,k=1.0): xMat = mat(xArr); yMat = mat(yArr).T m = shape(xMat)[0] weights = mat(eye((m))) for j in range(m): diffMat = testPoint - xMat[j,:] weights[j,j] = exp(diffMat*diffMat.T/(-2.0*k**2)) xTx = xMat.T * (weights * xMat) if linalg.det(xTx) == 0.0: print "This matrix is singular, cannot do inverse" return ws = xTx.I * (xMat.T * (weights * yMat)) return testPoint * wsdef lwlrTest(testArr,xArr,yArr,k=1.0): m = shape(testArr)[0] yHat = zeros(m) for i in range(m): yHat[i] = lwlr(testArr[i],xArr,yArr,k) return yHat第一个函数有四个输入参数分别为要测试的数据点,训练数据集、标签数据集和一个关键数据这是唯一一个需要用户指定的数据,这个数据决定了对附近的点赋予多大的权重,改变它的值会改变拟合程度,在设计算法时可以改变它的值进行算法优化。下面创建一个对角权重矩阵。接下来的循环就是就是进行权重大小的计算,权重大小在计算过层中会以指数级衰减,求出权重值后面的代码和标准回归算法相似,这里不再过多解释。
第二个函数就是对整个数据集进行预测
1 0
- 线性回归2(局部加权回归)
- 局部加权线性回归
- 局部加权线性回归
- 局部加权线性回归
- 局部加权线性回归
- 局部加权线性回归
- 局部加权线性回归
- 局部线性加权回归
- 局部加权线性回归
- 局部加权线性回归
- 局部加权线性回归
- 线性回归和局部加权线性回归
- 线性回归和局部加权线性回归
- 线性回归和局部加权线性回归
- 线性回归与局部加权线性回归
- 局部加权线性回归(LWLR)
- 局部加权线性回归(内含代码)
- 局部加权线性回归算法
- HDU-1166- 敌兵布阵(树状数组 插点问线)
- LogCat工具的tag细节
- java反射
- MT7620的WIFI带机量
- Request 和 Response
- 线性回归2(局部加权回归)
- 今日BBC
- MySQL 索引优化 btree hash rtree
- ListView的运行优化
- hdu 5640 King's Cake【思维】
- iOS多线程编程之NSThread的使用
- 项目2-本月有几天
- 九度题目1124Digital Roots
- 运动控制卡学习之路-基本单轴运动_1