[github-100天机器学习]day2 simple linear regression

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day2_SImple_Linear_regression/README.md

简单线性回归

使用单一特征预测响应值。基于自变量X来预测因变量Y的方法,假设两者线性相关,寻找一种根据特征或自变量X的线性函数来预测Y。

目标
  • 找最佳拟合线,最小化预测误差(最小化观测值 Y i Y_i Yi和模型预测值 Y p Y_p Yp之间的长度)
  • m i n { s u m ( y i − y p ) 2 } min \{ sum(y_i - y_p)^2\} min{sum(yiyp)2}
  • y = b 0 + b 1 x 1 y = b_0+b_1x_1 y=b0+b1x1( b 0 b_0 b0截距, b 1 b_1 b1斜率)
步骤
  1. 数据预处理:同day1 六步骤(导入库–导入数据集–检查缺失数据–解析分类数据–拆分数据集–特征缩放)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt     


dataset = pd.read_csv('studentscores.csv')
X = dataset.iloc[ : ,   : 1 ].values
Y = dataset.iloc[ : , 1 ].values

from sklearn.model_selection import train_test_split    #new
# sklearn.cross_validation 模块已经在最新版本的 Scikit-learn 中被移除了。
#from sklearn.cross_validation import train_test_split   #old
X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0) 
  1. 通过训练集训练简单线性回归模型:使用sklearn.linear_model库的LinearRegression类,得到模型regressor
### Step 2: Fitting Simple Linear Regression Model to the training set
# 把数据集拟合到简单线性回归模型,使用fit函数

from sklearn.linear_model import LinearRegression
regressor = LinearRegression() ## 创建一个regressor 对象
regressor = regressor.fit(X_train, Y_train) ### 对象拟合到数据集里面
# 使用fit方法将线性回归模型拟合到训练数据集上,其中:
# X_train 是训练集的特征数据,包含了独立变量。
# Y_train 是训练集的目标变量数据,包含了因变量。
# 使用fit()方法将 regressor 对象拟合到训练集的特征矩阵 X_train 和目标变量 Y_train
# 拟合过程根据线性回归计算b0和b1

模型的拟合过程会根据训练数据集来估计线性回归模型的参数,以使其能够最好地拟合训练数据。一旦模型被拟合到数据集上,你就可以使用它来进行预测。
线性回归模型是一种用于建模和预测连续数值型因变量的简单线性模型。在这个模型中,它会尝试找到最佳的线性关系来拟合自变量和因变量之间的关系。通过拟合模型,你可以使用它来预测新的数据点的因变量值。

  1. 预测结果:预测测试集,结果存到Y_pred,用2中训练的回归模型regressor的LinearRegression类的预测方法对结果进行预测。
### Step 3: Predecting the Result
#在训练好的regressor使用预测模型
#结果输出到向量Y_pred

Y_pred = regressor.predict(X_test)

调用 predict 方法,模型会使用测试集的特征数据 X_test 来生成相应的预测值,这些预测值将存储在 Y_pred 中

有了Y_pred,可以使用不同的评估指标来评估模型的性能,例如均方误差(Mean Squared Error,MSE)或可决系数(Coefficient of Determination,R-squared),以了解模型的拟合程度和预测精度

  1. 可视化:用matplotlib.pyplot对训练集和测试集的结果做散点图,查看预测结果。

### Step 4: Visualization
plt.scatter(X_train , Y_train, color = 'red')
# 红色散点图绘制了训练集的数据点,横轴X_train,纵轴Y_train
plt.plot(X_train , regressor.predict(X_train), color ='blue')   ## 蓝色的线图绘制了模型在训练集上的预测结果
# 回归线,横轴X_train,纵轴regressor.predict(X_train)--训练集预测结果
plt.scatter(X_test , Y_test, color = 'green')
# 绿色散点图绘制了测试集的数据点,横轴X_test,纵轴Y_test
plt.plot(X_test , regressor.predict(X_test), color ='blue')   
## 蓝色的线图绘制了模型在测试集上的预测结果
# 回归线,测试集合预测结果

可视化模型在训练集和测试集上的表现,以及模型的拟合情况。散点图显示了实际数据点,而线图显示了模型的预测结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数介绍

plt.scattermatplotlib.pyplot 库中用于创建散点图的函数。散点图是一种用于可视化数据分布的常用图表类型,通常用于显示两个变量之间的关系。以下是 plt.scatter 的基本用法:

plt.scatter(x, y, s=None, c=None, marker=None, 
cmap=None, norm=None, vmin=None, vmax=None, 
alpha=None, linewidths=None, edgecolors=None, 
*, data=None, **kwargs)

x 和 y: 表示散点图中的数据点的x坐标和y坐标。
s(可选): 表示数据点的大小。
c(可选): 表示数据点的颜色。
marker(可选): 表示数据点的标记类型。
alpha(可选): 表示数据点的透明度。
其他参数用于进一步自定义图表的外观。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值