Python主成分回归PCR实例:主成分回归方法详解

作者:宇宙中心我曹县2024.02.17 00:47浏览量:38

简介:主成分回归(Principal Component Regression, PCR)是一种在回归分析中常用的降维技术。通过将多个自变量转化为少数几个主成分,PCR可以简化模型的复杂度并提高预测精度。在本文中,我们将通过一个Python实例来展示如何使用主成分回归进行数据分析。

主成分回归(Principal Component Regression, PCR)是一种在回归分析中常用的降维技术。PCR的主要思想是通过将多个自变量转化为少数几个主成分,简化模型的复杂度并提高预测精度。在Python中,我们可以使用scikit-learn库来实现主成分回归。

首先,我们需要导入必要的库和数据集。在这个例子中,我们将使用scikit-learn库中的波士顿房价数据集。这个数据集包含了506个样本,每个样本有13个特征,包括犯罪率、学区数量、平均房间平方英尺等。我们的目标是预测房价的中位数。

  1. import numpy as np
  2. import pandas as pd
  3. from sklearn.datasets import load_boston
  4. from sklearn.model_selection import train_test_split
  5. from sklearn.preprocessing import StandardScaler
  6. from sklearn.linear_model import LinearRegression
  7. from sklearn.decomposition import PCA

接下来,我们将数据集分为训练集和测试集。我们将使用80%的数据作为训练集,剩下的20%作为测试集。

  1. boston = load_boston()
  2. X = pd.DataFrame(boston.data, columns=boston.feature_names)
  3. y = boston.target
  4. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

为了进行主成分回归,我们需要对数据进行标准化处理,使每个特征具有零均值和单位方差。这是因为在PCR中,特征的尺度会影响主成分的解释方差。

  1. scaler = StandardScaler()
  2. X_train = scaler.fit_transform(X_train)
  3. X_test = scaler.transform(X_test)

接下来,我们将使用PCA来提取主成分。在这个例子中,我们将保留前两个主成分,因为它们可以解释数据中超过90%的方差。

  1. pca = PCA(n_components=2)
  2. X_train_pca = pca.fit_transform(X_train)
  3. X_test_pca = pca.transform(X_test)

现在,我们可以使用线性回归模型来拟合主成分和目标变量之间的关系。我们将使用训练数据来训练模型,并在测试数据上进行评估。

  1. lr = LinearRegression()
  2. lr.fit(X_train_pca, y_train)
  3. y_pred = lr.predict(X_test_pca)

最后,我们可以计算模型的性能指标,如均方误差(MSE)和R方值。MSE越小,说明模型预测的准确性越高;R方值越接近1,说明模型对数据的拟合度越高。

  1. mse = np.mean((y_test - y_pred) ** 2)
  2. r2 = lr.score(X_test_pca, y_test)
  3. print(f'Mean Squared Error: {mse}')
  4. print(f'R-squared: {r2}')