Python简单一元线性回归指引

211 阅读1分钟

Python简单一元线性回归指引

步骤流程

一、导入相关库

import random
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

二、建立(导入)训练集和检验集

一般情况,大家在使用时都是导入数据的,可用以下命令导入数据文件

path = open(r'文件路径',encoding= 'gb2312')
data = pd.read_csv(path)

用于演示,我这里就自建数据啦

#建立训练集
train_x = []
train_y = []
for i in range(100) :
    train_x.append([random.randint(150,200)])
    train_y.append([(train_x[i][0]-100)*random.randint(85,95)/100])
#建立测试集
test_x = []
test_y = []
for i in range(30):
    test_x.append([random.randint(150,200)])
    test_y.append([(test_x[i][0]-100)*random.randint(85,95)/100])
#观测数据
plt.scatter(train_x,train_y,color='red')

训练集

三、初始化并训练学习器

#训练学习器
regressor = LinearRegression()
regressor.fit(train_x,train_y)

四、检验集预测结果

#预测结果
result = regressor.predict(test_x)

五、数据可视化

#训练集数据可视化
plt.scatter(train_x,train_y,color='red')
plt.plot(train_x,regressor.predict(train_x),color='blue')
plt.title('LinearRegression_train')
plt.xlabel('height')
plt.ylabel('weight')
plt.show()

训练集回归结果

#测试集数据可视化
plt.scatter(test_x,test_y,color='red')
plt.plot(test_x,regressor.predict(test_x),color='blue')
plt.title('LinearRegression_test')
plt.xlabel('height')
plt.ylabel('weight')
plt.show()

测试集回归结果

六、查看回归方程

#查看回归方程
print('最佳拟合曲线:\ny = %f + %f*X'%(regressor.intercept_,regressor.coef_))

得到以下结果
在这里插入图片描述