参考书籍:
《机器学习实战》
相关数学推导知识笔记见我上传的手写pdf
任务:
1)读取数据集’abalone.txt’,输出线性回归最佳参数以及预测值和真实值的误差平方和。
2)读取数据集’ex0.txt’,将数据集分成合适的训练集和测试集,用局部线性回归模型训练数据,选取你认为最佳sigma数值,并说明原因。 提示:分离训练集和测试集代码可参考。
from numpy import *
import matplotlib.pyplot as plt
def loadDataSet(fileName): #general function to parse tab -delimited floats
numFeat = len(open(fileName).readline().split('\t')) - 1 #get number of fields
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):
xMat = mat(xArr); yMat = mat(yArr).T
xTx = xMat.T*xMat