公式:y^(w,x)=w0+w1x1+...+wpxp
代码示例:
import numpy as np
from sklearn.linear_model import LinearRegression
#是二维数组所以用两个[],传入两个特征。
x=np.array([[150,70],[160,80],[170,90],[180,98]])
# y = 1 * x_0 + 2 * x_1 + 3
#公式代码化,正常y为数值,训练模型得出系数以及偏差值,从而进行预测
y=np.dot(x, np.array([1, 2])) + 3
#调用LinearRegression类的方法fit(X,y),
# 直接实例化了一个线性回归模型,并且用上面生成的数据进行了拟合。
reg = LinearRegression().fit(x, y)
#reg = LinearRegression()
#reg.fit(X, y)
print(reg.coef_) #系数(公式中的)
print(reg.intercept_)#偏差值
new=reg.predict(np.array([[3, 5]]))#利用拟合好的线性方程,计算新输入的值
print(new)
注意事项:
线性!
格式化数据,输入为n*d的数组,其中n表示数据的个数,d是维度;输出值是一维数组。
初始化模型LinearReregression()
拟合fit(X,y)
预测predict(X_test)
实操:
根据csv文件中身高、体重、年龄、临时变量数据进行拟合线性方程,预测提供身高、年龄、临时变量下体重值。(数据量小、逻辑不合理勿怪)
代码展示:
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
np.random.seed(123)#创建随机数种子
#去除数据为空值的行、随机获取几行数据
df=pd.read_csv('cs.csv').dropna(subset=['weight','height','age','linshi'],how='any').sample(3)
#固定表头
df.head()
print(df)#打印展示
#训练模型、拟合
reg=LinearRegression().fit(X=df[['height','age','linshi']],y=df[['weight']])
print(reg.coef_) #系数(公式中的)
print(reg.intercept_)#偏差值
new=reg.predict(X=[[183,32,11]])#利用拟合好的线性方程,计算新输入的值
print(new)