数据分析与应用,一元线性回归(以父子身高为例)
因为对回归方程进行评价的时候,常用指标是RMSE值,这个需要做数据技术(手写计算方程),所以要引入一个数学库,叫math。通常我们在导入表格之前,需要先打开表格检查表格的内容是否存在问题,下表就是本次任务所需要导入的表中的内容。确认表的内容没有问题后,我们开始导入所需的表格。这段代码通过matplotlib库绘制了一个包含真实数据点和预测数据的散点图,并添加了坐标轴标签和网格线,以便于数据的可视化
1.导入所需要的库
因为对回归方程进行评价的时候,常用指标是RMSE值,这个需要做数据技术(手写计算方程),所以要引入一个数学库,叫math。同时我们在做回归分析时都可以画散点图,所以引入matplotlib用来画图,还可以用均方误差来评价方程,把这个评价指标引进来。代码如下:
-
import numpy as np
: 导入NumPy库,并将其命名为np。NumPy是一个用于科学计算的库,提供了支持多维数组和矩阵运算的功能。 -
import math
: 这行代码似乎有误,正确的写法应该是import math
,用于导入数学函数模块。 -
import pandas as pd
: 导入Pandas库,并将其命名为pd。Pandas是一个强大的数据分析和操作工具,提供了数据结构和数据分析工具。 -
import matplotlib.pyplot as plt
: 导入Matplotlib库中的pyplot模块,并将其命名为plt。Matplotlib是一个绘图库,常用于生成各种图表和可视化数据。 -
from sklearn.model_selection import train_test_split
: 从Sklearn库的model_selection模块中导入train_test_split函数。这个函数用于将数据集分割成训练集和测试集。 -
from sklearn.linear_model import LinearRegression
: 从Sklearn库的linear_model模块中导入LinearRegression类。这个类实现了线性回归算法,可以用于预测连续值。 -
from sklearn.metrics import mean_squared_error
: 从Sklearn库的metrics模块中导入mean_squared_error函数。这个函数用于计算均方误差(MSE),是评估回归模型性能的一种常用指标。
2.导入表格
通常我们在导入表格之前,需要先打开表格检查表格的内容是否存在问题,下表就是本次任务所需要导入的表中的内容。分别是父亲与儿子的 身高。确认表的内容没有问题后,我们开始导入所需的表格。
下图的这行代码使用Pandas库中的read_table
函数从名为“FSHeight.txt”的文件中读取数据,并将其存储在变量data
中。参数encoding="gb2312"
指定了文件的编码格式为GB2312。然后通过head查看头五行数据。
随后通过info()这段代码,提供了关于DataFrame的基本信息,包括行数、列数、每列的名称、非空值数量、数据类型以及内存使用情况。这些信息有助于了解数据的结构和规模,从而进行进一步的数据处理和分析。.结果如图所示:
3.构建模型
如图片中的代码,是从DataFrame data
中提取两列数据,并将它们分别存储在两个NumPy数组x
和y
中。这样做通常是为了后续的数据处理或机器学习任务,因为许多机器学习库(如Scikit-learn)需要输入数据为NumPy数组格式。
这段代码通过线性回归模型来拟合训练数据,并输出模型的系数和截距,用于解释和预测目标变量的值。模型系数为[0.51400591]
,表示特征对目标变量的影响程度。截距为33.89280054066168
,表示当特征值为0时,目标变量的预测值。
使用训练好的线性回归模型model
对输入数据x
进行预测,得到预测值y_pred
。通过计算真实值和预测值之间的均方根误差来评估回归模型的性能。均方根误差越小,说明模型的预测性能越好。最火回归摸RMSE值为:2.435871609139341(这是实际输出的结果,显示了回归模型的均方根误差值。)
4.画图
这段代码通过matplotlib库绘制了一个包含真实数据点和预测数据的散点图,并添加了坐标轴标签和网格线,以便于数据的可视化分析。代码解释如下:
-
plt.plot(x, y, 'b.')
:使用蓝色圆点('b.')绘制散点图,其中x
是横坐标数据,y
是纵坐标数据。 -
plt.plot(x, y_pred, 'r')
:使用红色线条('r')绘制预测值y_pred
与横坐标x
之间的关系。 -
plt.xlabel("Father")
:设置横坐标轴的标签为“Father”。 -
plt.ylabel("Son")
:设置纵坐标轴的标签为“Son”。 -
plt.grid(True)
:显示网格线,以便更好地观察数据点的位置。 -
plt.show()
:显示绘制的图形。
5.测试模型
最后,使用训练好的线性回归模型model
对输入数据[[67]]
进行预测,并打印出68.33119668的预测结果。总结来说,这段代码通过线性回归模型对新的输入数据进行预测,并输出预测结果。到这里,本次任务就到此结束了。
更多推荐
所有评论(0)