使用python语言实现机器学习单变量线性回归#代码有详细注释
数据是用的吴恩达教授机器学习里的ex1data1.txt
# 导入matplotlib.pyplot、numpy、linear_model库
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
# 读取数据
datasets_X = []
datasets_y = []
fr = open('E:\\2020年学习资料\machine-learning-exercises-master\machine-learning-ex1\ex1\ex1data1.txt', 'r')
lines = fr.readlines()
for line in lines:
items = line.strip().split(',') # 以‘,’为分隔符对每一行数据进行切片,再去掉空格
datasets_X.append(float(items[0])) # 将items第一行赋值给X
datasets_y.append(float(items[1])) # 将items第二行赋值给Y
length = len(datasets_X) # 得到数据行数
# reshape函数用于改变X数组的形状,改变后的形状为【length,1】
datasets_X = np.array(datasets_X).reshape([length, 1])
datasets_y = np.array(datasets_y).reshape([length, 1])
minX = min(datasets_X)
maxX = max(datasets_y)
X = np.arange(minX, maxX).reshape([-1, 1]) # 以minX和minY为起点和终点,构造列为1的矩阵
linear = linear_model.LinearRegression() # 调用线性回归函数
linear.fit(datasets_X, datasets_y) # 调用fit函数
plt.scatter(datasets_X, datasets_y, color='red') # 绘制散点图,红色
plt.plot(X, linear.predict(X), color='blue') # 绘制预测函数
plt.xlabel('Size') # X轴添加标签Size
plt.ylabel('Price') # Y轴添加标签Price
plt.show()
fr.close()
红色散点图是ex1data1.txt的数据,蓝色直线代表预测函数