python 线性回归分析模型检验标准–拟合优度详解

python 线性回归分析模型检验标准--拟合优度详解

线性回归模型是回归分析中广泛使用的一种模型。对于线性回归模型,通常需要对其进行检验来验证其可靠性。其中一项重要的检验指标是拟合优度,本文将详细讲解拟合优度的计算和含义。

一、拟合优度

拟合优度(Goodness of Fit)是一种衡量模型拟合程度的指标,通常用 $R^2$ 表示。$R^2$ 的值介于 0 到 1 之间,表示因变量样本的变异有多少可以用自变量拟合解释。当 $R^2$ 越接近于 1 时,说明模型拟合效果越好。实际上,$R^2$ 可以理解为模型解释因变量差异的能力。

二、计算方法

拟合优度是通过比较实际值与模型预测值的离差平方和(SSres)和因变量总离差平方和(SStot)来计算得到。具体公式如下:

$$ R^2 = 1- \frac{SS_{\rm res}}{SS_{\rm tot}} $$

其中,$SS_{\rm res}$ 是实际值与模型预测值之间的离差平方和,$SS_{\rm tot}$ 是因变量总离差平方和。

计算拟合优度的过程可以通过 python 的 scikit-learn 库实现,具体代码如下:

from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 计算拟合优度
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
print("拟合优度为:{0:.2f}".format(r2))

其中 X_trainy_train 分别是训练集的自变量和因变量,X_testy_test 分别是测试集的自变量和因变量。

三、实例应用

下面通过两个实例来说明如何使用拟合优度计算线性回归模型的可靠性。

实例1: 预测人口增长模型

首先,我们使用 scikit-learn 库生成一个简单的样本数据集用于模型训练和测试。

from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

# 生成样本数据
X, y = make_regression(n_samples=1000, n_features=5, noise=0.3, random_state=42)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

然后,我们训练一个线性回归模型并计算拟合优度。

from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 计算拟合优度
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
print("拟合优度为:{0:.2f}".format(r2))

输出结果为:

拟合优度为:1.00

可见,在这个简单的人口增长模型中,线性回归拟合优度非常高,说明模型对实际数据拟合非常好。

实例2: 预测房价模型

接下来,我们以波士顿房价数据集为例,使用线性回归进行房价预测,并计算拟合优度。

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 导入波士顿房价数据集
boston = load_boston()

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)

# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 计算拟合优度
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
print("拟合优度为:{0:.2f}".format(r2))

输出结果为:

拟合优度为:0.67

可见,在波士顿房价数据集上,线性回归拟合优度略低,说明模型对实际数据拟合效果一般。由此,我们可以进一步探索如何优化模型拟合效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 线性回归分析模型检验标准–拟合优度详解 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • 如何在Pandas中计算两列之间的相关关系

    在Pandas中,我们可以使用corr()方法来计算两列之间的相关关系。该方法返回一个相关系数矩阵,可以帮助我们了解列与列之间的相关性。 下面是计算两列之间相关关系的详细步骤: Step 1: 导入Pandas库和数据 首先,我们需要导入Pandas库,并将数据加载到DataFrame中。以下是一个示例: import pandas as pd # 导入数据…

    python-answer 2023年3月27日
    00
  • pandas检查和填充缺失值的N种方法总结

    标题:Pandas检查和填充缺失值的N种方法总结 1.前言 在处理数据的过程中,缺失值经常会引起我们的注意。当我们得到一个数据集时,经常需要检查数据集中是否存在缺失值,并对缺失值进行处理,以保证数据分析结果的准确性。Pandas是一个功能强大的数据处理库,提供了许多方法来检查和填充缺失值。 2.检查缺失值 Pandas提供了一些方法来检查数据集中的缺失值。 …

    python 2023年5月14日
    00
  • 在Python中用Pandas绘制多重密度图

    下面是在Python中用Pandas绘制多重密度图的完整攻略。 1. 导入库和数据集 首先,我们要导入必要的库,包括Pandas、Matplotlib和Seaborn。下面是代码: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 导入数据集 df = pd…

    python-answer 2023年3月27日
    00
  • Python pandas DataFrame操作的实现代码

    Python pandas DataFrame 操作的实现代码攻略 为了进行Python pandas DataFrame操作,首先需要导入pandas模块。常用的pandas模块操作有以下几种: 创建DataFrame:在pandas模块中,可以通过list、dict和CSV文件创建DataFrame。 读取CSV文件并创建DataFrame:pandas…

    python 2023年5月14日
    00
  • Python数据分析Pandas Dataframe排序操作

    下面是关于“Python数据分析Pandas Dataframe排序操作”的完整攻略。 一、Pandas Dataframe排序操作 Pandas是基于Numpy开发的数据分析工具,最重要的两个数据结构是Series和DataFrame,其他的几乎都是在这两个数据结构的基础上进行扩展的。 Pandas Dataframe排序操作是数据分析中常用的操作之一,常…

    python 2023年5月14日
    00
  • 清理给定的Pandas Dataframe中的字符串数据

    清理给定的 Pandas Dataframe 中的字符串数据通常包括以下几个步骤: 去除不必要的空格和特殊符号; 处理缺失值; 处理重复值; 处理异常值; 标准化字符串数据。 我们以一个示例来说明这些步骤是如何实现的。 假设我们有以下一个名为 df 的 Pandas Dataframe ,其中存储了用户的姓名和电话号码: name phone 0 Alice…

    python-answer 2023年3月27日
    00
  • Python中的Pandas.describe_option()函数

    在Python的Pandas库中,可以使用describe_option()函数来查看和修改Pandas中的一些全局选项。 函数的语法如下: pandas.describe_option(pat=None, display=None) 其中,pat参数可以是一个字符串或正则表达式,用于过滤选项名称;display参数可以是一个布尔值,用于确定是否将所有选项输…

    python-answer 2023年3月27日
    00
  • 如何在Python中从Pandas数据框中获取最大值

    从 Pandas 数据框中获取最大值,可通过以下步骤完成: 首先,要导入 Pandas 库,如下所示: import pandas as pd 然后,创建一个DataFrame对象。例如: data = {‘name’: [‘John’, ‘Jane’, ‘Sam’, ‘Sylvester’, ‘Pete’], ‘age’: [23, 29, 21, 35,…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部