步骤
步骤1:数据预处理
我们将按照之前的数据预处理信息图标那样来执行相同的步骤
- 导入相关库
- 导入数据集
- 检查缺失数据
- 划分数据集
- 特征缩放 我们将使用简单线性模型的相关库来进行
#数据预处理
#导入相关库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#导入相关数据
dataset = pd.read_csv('./datasets/studentscores.csv')
print(dataset)
X = dataset.iloc[ : ,0].values
Y = dataset.iloc[ : ,1].values
print(X)
print(Y)
#进行训练集和测试集的划分
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0)
步骤2:通过训练集来训练简单线性回归模型
为了使用模型来训练数据集,我们将使用来自sklearn.linear_model库的LinearRegression类,然后我们创建一个LinearRegression类的regressor对象,最后我们将使用LinearRegression类的fit()方法将regressor对象对数据集进行测试。
#线性回归
from sklearn.linear_model import LinearRegression
#使用训练集对模型进行训练
regressor = LinearRegression()
#regressor = regressor.fit(X_train, Y_train) 新版本sklearn会报错,因为新版本中所有的数据都应该是二维矩阵 .reshape(1,-1)可对单独一行或一列进行转换
regressor = regressor.fit(X_train.reshape(-1,1), Y_train.reshape(-1,1))
步骤3:预测结果
现在我们将预测来自测试集的观察结果,我们将把输出保存在向量Y_pred中。我们使用前一步中训练的回归模型regressor的LinearRegression类的预测方法来对结果进行预测。
#预测结果
Y_pred = regressor.predict(X_test.reshape(-1,1))
print(Y_pred)
步骤4:可视化
最后一步是将结果可视化,我们将使用matplotlib.pyplot库对我们的训练集结果和测试集结果做散点图,以查看我们的模型预测效果。
#可视化
#训练集结果可视化
#散点图
plt.scatter(X_train, Y_train, color = 'red')
#线图
plt.plot(X_train, regressor.predict(X_train.reshape(-1,1)),'bo-')
plt.show()
#测试集结果可视化
#散点图
plt.scatter(X_test, Y_test, color = 'red')
#线图
plt.plot(X_test, Y_pred, 'bo-')
plt.show()
总结
- sklearn.linear_model库中的LinearRegression类用来线性回归
- regressor = LinearRegression()
- regressor.fit(X_train,Y_train) 用训练集对模型进行训练
- regressor.predict(X_test) 对测试集进行测试
- matplotlib.pyplot库可用来画图
- 散点图 plt.scatter(X,Y,color = 'xxx')
- 线图 plt.plot(X,Y)
- 画图plt.show()