对 Boston Housing Dataset(波士顿房价数据集)数据分析

发布于:2025-06-29 ⋅ 阅读:(17) ⋅ 点赞:(0)

1. 数据加载与初步检查

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 加载数据
boston_df = pd.read_csv("boston_housing_data.csv")

# 查看前5行
display(boston_df.head())

# 检查数据基本信息(列名、数据类型、非空值数量)
print(boston_df.info())

# 统计描述(均值、标准差、最小值、最大值等)
display(boston_df.describe())

关键点

  • 是否有缺失值(boston_df.isnull().sum())?

  • 目标变量通常是 MEDV(房屋中位数价格)。

  • 特征包括 CRIM(犯罪率)、RM(房间数)、LSTAT(低收入人口比例)等。

2. 数据可视化

(1) 目标变量分布(MEDV)

 

plt.figure(figsize=(8, 4))
sns.histplot(boston_df['MEDV'], kde=True)
plt.title("Distribution of Median Home Prices (MEDV)")
plt.show()
  • 检查是否正态分布或存在偏态。

(2) 特征与目标变量的关系

# 选择关键特征与 MEDV 的关系
sns.pairplot(boston_df[['RM', 'LSTAT', 'PIRATIO', 'MEDV']])
plt.show()
  • RM(房间数)与 MEDV 通常呈正相关。

  • LSTAT(低收入人口比例)与 MEDV 通常呈负相关。

 (3) 相关性热力图

plt.figure(figsize=(10, 6))
sns.heatmap(boston_df.corr(), annot=True, cmap='coolwarm', fmt=".2f")
plt.title("Correlation Matrix")
plt.show()
  • 高相关性特征(如 RM 和 MEDV)可能对预测重要。

  • 多重共线性检查(如 TAX 和 RAD)。

3. 异常值检测

# 箱线图检查异常值
plt.figure(figsize=(12, 6))
sns.boxplot(data=boston_df)
plt.xticks(rotation=45)
plt.show()
  • 重点关注 CRIM(犯罪率)、ZN(住宅用地比例)等是否有极端值。

4. 简单回归建模(示例)

(1) 线性回归(预测 MEDV)

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 选择特征和目标变量
X = boston_df[['RM', 'LSTAT', 'PIRATIO']]
y = boston_df['MEDV']

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

# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测并评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse:.2f}")
  • 可尝试其他模型(如随机森林、梯度提升)。

(2) 特征重要性

# 如果是随机森林
from sklearn.ensemble import RandomForestRegressor

rf = RandomForestRegressor()
rf.fit(X_train, y_train)

# 特征重要性
pd.DataFrame({
    'Feature': X.columns,
    'Importance': rf.feature_importances_
}).sort_values('Importance', ascending=False)

5. 结论与建议

  1. 关键影响因素RM(房间数)、LSTAT(低收入人口比例)对房价影响最大。

  2. 异常值处理:某些特征(如 CRIM)可能需要对数变换或截断。

  3. 模型优化:可尝试更多特征工程(如交互项、多项式特征)或高级模型。


网站公告

今日签到

点亮在社区的每一天
去签到