使用python语言实现机器学习多项式线性回归
数据是用的吴恩达教授机器学习里的ex1data1.txt
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
from sklearn.preprocessing import PolynomialFeatures
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]))
datasets_y.append(float(items[1]))
length = len(datasets_X)
datasets_X = np.array(datasets_X).reshape([length, 1])
datasets_y = np.array(datasets_y)
minX = min(datasets_X)
maxX = max(datasets_y)
X = np.arange(minX, maxX).reshape([-1, 1])
# PolynomialFeatures为多项式特征生成函数,
# 为更拟合样本集构造多项式特征的假设函数
poly_reg = PolynomialFeatures(degree=3)
X_poly = poly_reg.fit_transform(datasets_X) # 先拟合数据,再标准化
lin_reg_2 = linear_model.LinearRegression() # 调用线性回归模型
lin_reg_2.fit(X_poly, datasets_y) # fit函数可以理解为训练
plt.scatter(datasets_X, datasets_y, color='red')
plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color='blue')
plt.xlabel('Area')
plt.ylabel('Price')
plt.show()
fr.close()