线性回归
数据生成
#! 调库
import numpy as np
import matplotlib.pyplot as plt
def true_fun(X):
return 1.5*X + 0.2
#? 随机生成训练集x和y
np.random.seed(0) #? 随机种子
n_samples = 30 #? 采样数据个数
X_train= np.sort(np.random.rand(n_samples))
Y_train=(true_fun(X_train) + np.random.randn(n_samples)*0.05).reshape(n_samples,1) #? randn函数返回一个或一组样本,具有标准正态分布
定义模型
from sklearn.linear_model import LinearRegression #?导入线性回归模型
model = LinearRegression() #? 定义模型
model.fit(X_train[:,np.newaxis], Y_train) #? 把X_train的shape从(30,)改成(30,1)
print('w:',model.coef_) #?输出w
print('b',model.intercept_) #?输出b
绘图
x_test = np.linspace(0,1,100)
plt.figure(figsize=(20,8),dpi=80) #? 设置图片大小
plt.plot(x_test, model.predict(x_test[:,np.newaxis]), label='model')
plt.plot(x_test,true_fun(x_test),label='true function')
plt.scatter(X_train,Y_train) #? 绘制散点图
plt.legend(loc="best") #? 图例