1、算法思想
2、程序实现
from numpy import *
def loadDataSet(fileName): #文件中读取数据
numFeat = len(open(fileName).readline().split('\t')) - 1
dataMat = []; labelMat = []
fr = open(fileName)
for line in fr.readlines():
lineArr =[]
curLine = line.strip().split('\t')
for i in range(numFeat):
lineArr.append(float(curLine[i]))
dataMat.append(lineArr)
labelMat.append(float(curLine[-1]))
return dataMat,labelMat
######################################################标准回归函数法
def standRegres(xArr,yArr): #计算最佳拟合曲线( 用ws=(X^TX)^-1X^TY求W)
xMat = mat(xArr); yMat = mat(yArr).T
xTx = xMat.T*xMat #(X^TX)
if linalg.det(xTx) == 0.0: #检测行列式4
print ("This matrix is singular, cannot do inverse")
return
ws = xTx.I * (xMat.T*yMat) #(X^TX)^-1X^TY
return ws
###########