数据读入
from numpy import *
%matplotlib inline
import matplotlib.pyplot as plt
def loadDataSet(fileName):
numFeat = len(open(fileName).readline().split('\t'))
dataMat =[]; labelMat = []
fr = open(fileName)
for line in fr.readlines():
lineArr = []
curLine = line.strip().split('\t')
for i in range(numFeat - 1):
lineArr.append(float(curLine[i]))
dataMat.append(lineArr)
labelMat.append(float(curLine[-1]))
return dataMat, labelMat
普通最小二乘法(ordinary least squares)
普通最小二乘法是使所有的点平均误差最小,即:
∑i=1m(yi−xTiw)2 ∑ i = 1 m ( y i − x i T w ) 2
我们可以用矩阵表示为:
(y−Xw)T(y−Xw) ( y − X w ) T ( y − X w )
其中 y,w y , w 为 m×1 m × 1 维矩阵, X X