100天的ML day02 简单线性回归

步骤

步骤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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值