sklearn.linear_model是用来进行线性回归的一个library,这里只是用来进行一次函数关系y=kx+b的回归,求参数k和b,其实这只是最简单的用法,以后遇到更加复杂的再来补充
import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt
# 模拟数据
x = np.linspace(0,50,100).reshape(-1,1)
y = x + 4 * np.random.randn(x.shape[0],1)
# 创建线性回归的对象实例
model = linear_model.LinearRegression()
# 线性回归,注意参数位置,第一个参数是自变量,第二个是因变量
model.fit(x,y)
# 线性回归的计算得到的参数
print(type(model.coef_)) # <class 'numpy.ndarray'>
print(type(model.intercept_)) # <class 'numpy.ndarray'>
print(model.coef_) # [[0.98155156]]
print(model.intercept_) # [0.21679351]
# 斜率k
k = float(model.coef_[0])
# 截距b
b = float(model.intercept_)
# 根据拟合直线计算的y值
y_predict = model.predict(x)
# 可视化
plt.scatter(x, y, c = 'c', marker="o")
plt.plot(x,y_predict,"-",c="red",label=f"y = {k:.6f}x {b:+.6f}")
plt.legend()
plt.show()
一次函数回归