'''
机器学习实战章8
一个矩阵x(样本数据属性矩阵)和y(样本数据y矩阵)可拟合出一条直线
标准线性回归只拟合出一条直线,局部加权线性回归共更新x矩阵m-1次,在相邻两个数据之间都回归出直线,共得到m-1条直线,连接起来就近似曲线了
改变lwlr()函数的k值,可以改变曲线的平滑度和拟合度,大家有兴趣可以试试
本代码使用的资源和文件在文末
'''
from numpy import *
'''
该函数解析用tab键分离的文本文件,若该文件内有m条数据
dataMat:如其名,属性矩阵,m x 2
labelMat:y值矩阵,m x 1
'''
def loadDataSet(fileName):
numFeat = len(open(fileName).readline().split('\t')) - 1 #获取属性数,前两列是属性,最后一列是y值
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 #函数有多个返回值其实是返回了一个tuple
"""
标准回归,计算最佳拟合直线
返回m x 1的回归系数矩阵
机器学习实战——标准线性回归和加权线性回归算法
最新推荐文章于 2022-04-14 09:34:05 发布