机器学习——多元线性回归

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

data = np.loadtxt("../data_linear.csv",delimiter=",")

# 特征:前两列
x_data = data[:, 0:-1]
# 标签:最后一列
y_data = data[:, -1]

# 训练模型
# 创建线性回归模型对象
model = LinearRegression()
# 训练模型
model.fit(x_data, y_data)

print(f"theta1,theta2:{model.coef_}")
print(f"theta0:{model.intercept_}")

# 构建测试样本
x_test = [[16, 32]]
# 预测
predict = model.predict(x_test)
print(f"x1=16,x2=32,y为:{predict}")

# 可视化散点分布
x_0 = x_data[:, 0]
x_1 = x_data[:, 1]
x_0,  x_1 = np.meshgrid(x_0, x_1)
y_hat = model.intercept_ + model.coef_[0]*x_0 + model.coef_[1]*x_1

fig = plt.figure()
# ax = Axes3D(fig) # 原代码
ax = fig.add_axes(Axes3D(fig)) # 新代码
ax.scatter(x_data[:, 0], x_data[:, 1], y_data)
ax.plot_surface(x_0, x_1, y_hat)
ax.set_xlabel("x1")
ax.set_ylabel("x2")
ax.set_zlabel("y")
plt.show()
机器学习——多元线性回归_第1张图片

LinearRegression

机器学习——多元线性回归_第2张图片

predict

机器学习——多元线性回归_第3张图片

你可能感兴趣的:(线性回归,回归)