1. 线性回归技术简介
线性回归是一种常见的统计学方法,用于分析自变量和因变量之间的线性关系。在机器学习中,它是一种广泛应用的监督学习算法,特别是在预测连续型数值的任务上。
1.1 线性回归概念
线性回归是一种用于建立自变量和因变量之间关系的模型。在这个模型中,自变量通常被称为特征,而因变量通常被称为目标变量或响应变量。线性回归假设特征和目标之间的关系可以表示为直线或超平面。
将特征表示为向量x,将目标表示为标量y,则可以表示为:
y = theta_0 + theta_1*x_1 + ... + theta_n*x_n + ε
其中epsilon表示噪声或误差项,theta_0到theta_n表示模型的参数或系数。
1.2 线性回归应用场景
线性回归广泛应用于财务、经济、社会科学和自然科学领域,例如:
房价预测
销售预测
气候变化模拟
2. 用Python实现线性回归
2.1 数据准备
在本例中,我们将使用波士顿房价数据集。此数据集包含关于波士顿不同位置房屋的详细信息,目标变量是房屋的价值。我们将使用pandas库来读取和处理这个数据集。
import pandas as pd
# Load the data
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data'
names = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT','MEDV']
data = pd.read_csv(url, delim_whitespace=True, names=names)
# Split the data into features and target
X = data.drop('MEDV', axis=1)
y = data['MEDV']
在数据预处理过程中,我们将从数据中删除目标变量,并将其存储在单独的数组中(y),而特征将存储在数组X中。
2.2 模型训练
我们将使用Scikit-learn库中的LinearRegression类来训练模型。首先,我们将使用train_test_split函数将数据分成训练集和测试集。然后,我们将拟合线性回归模型,并使用测试集评估其性能。
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# Fit the model on the training data
model = LinearRegression()
model.fit(X_train, y_train)
# Make predictions on the testing data
y_pred = model.predict(X_test)
# Compute the mean squared error and r2 score
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
这里我们使用均方误差(MSE)和决定系数(R2)来评估模型性能。MSE度量模型预测值和真实值之间的平均误差,而R2衡量目标变量的总方差中能够被模型解释的部分。
2.3 结果分析
我们使用matplotlib库绘制了模型的预测结果和实际值之间的散点图。在图中,预测值越接近真实值,点就越靠近45度斜线。
import matplotlib.pyplot as plt
# Plot the actual vs predicted values
plt.scatter(y_test, y_pred)
plt.plot([0, 50], [0, 50], '--k')
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.show()
我们可以看到,大多数点都在45度斜线附近,这表明我们的模型能够准确地预测房屋价格。
3. 总结
线性回归是一种常见的机器学习方法,用于预测连续型目标变量的值。在Python中,我们可以使用Scikit-learn和Pandas库来实现线性回归模型。在这篇文章中,我们了解了线性回归的基本概念,实现了一个房价预测模型,并使用图表进行了可视化分析。如果您对线性回归有更多的兴趣,请继续深入学习,探索更多不同的数据集和技巧。