📅  最后修改于: 2023-12-03 15:11:22.807000             🧑  作者: Mango
在数据科学和机器学习中,线性回归是一种广泛使用的统计方法,用于预测连续变量的值。通过拟合一个直线或者一个高维超平面到数据中,线性回归可以建立起输入变量和输出变量之间的关系,从而做出预测。
在本篇文章中,我们将介绍如何使用 Python 实现线性回归算法,包括数据准备、模型训练和结果分析。
我们将使用 sklearn.datasets 中自带的波士顿房价数据集进行线性回归的案例分析。该数据集包含 506 个样本和 13 个特征,例如房屋所在的位置、房龄、房间数量等等。
让我们先导入需要的 Python 库和数据集:
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = pd.Series(boston.target)
接着,我们将数据集划分成训练集和测试集:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
我们将使用 sklearn.linear_model.LinearRegression 类实现线性回归模型。这个类已经自动实现了数据的预处理、特征的选择、模型训练和结果预测等过程。
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
经过模型训练之后,我们可以对测试集进行预测,并计算预测值和真实值之间的误差:
y_pred = model.predict(X_test)
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print("Mean squared error:", mse)
我们还可以通过绘制散点图观察预测值和真实值之间的关系:
import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.xlabel("True values")
plt.ylabel("Predictions")
plt.show()
最后,我们可以通过分析每个特征的系数来确定哪些特征对预测结果影响最大:
coefs = pd.DataFrame({"feature": boston.feature_names, "coefficient": model.coef_})
coefs.sort_values(by="coefficient", ascending=False)
以上就是使用 Python 实现线性回归的整个过程。在实际应用中,我们还可以使用正则化等技术来优化模型表现,不过这些内容就超出了本篇文章的范围了。
本文介绍了如何使用 Python 实现线性回归算法,包括数据准备、模型训练和结果分析。在实际应用中,我们可以根据具体问题选择合适的模型和算法,从而做出更准确的预测和决策。