【scikit-learn】sklearn.datasets.fetch_california_housing() 函数:加州房价预测数据, 回归任务

sklearn.datasets.fetch_california_housing()

fetch_california_housing()sklearn.datasets 提供的 加州房价预测数据集,用于 回归任务,适用于 机器学习算法测试和特征工程研究


1. fetch_california_housing() 数据集简介

属性说明
样本数20640
特征数8(人口、房间数、房屋年龄等)
任务类型回归问题(预测房价)
目标值房价中位数(单位:万美元

2. fetch_california_housing() 代码示例

(1) 加载数据集

from sklearn.datasets import fetch_california_housing

# 加载数据
housing = fetch_california_housing()

# 获取特征矩阵和目标变量
X, y = housing.data, housing.target

print("特征矩阵形状:", X.shape)
print("目标变量形状:", y.shape)
print("特征名称:", housing.feature_names)

输出

特征矩阵形状: (20640, 8)
目标变量形状: (20640,)
特征名称: ['MedInc', 'HouseAge', 'AveRooms', 'AveBedrms', 'Population', 'AveOccup', 'Latitude', 'Longitude']

解释

  • X.shape = (20640, 8)20640 个样本,每个样本 8 个特征。
  • y.shape = (20640,)20640 个目标值(房价)。
  • feature_names:包含 收入 (MedInc)、房龄 (HouseAge)、人口 (Population) 等 8 个特征。

(2) 数据集格式

print(type(housing))

输出

<class 'sklearn.utils._bunch.Bunch'>

解释

  • fetch_california_housing() 返回的是 Bunch 对象,类似于字典,可通过 .data.target.feature_names 访问数据

(3) 转换为 Pandas DataFrame

import pandas as pd

# 转换为 DataFrame
df = pd.DataFrame(housing.data, columns=housing.feature_names)
df["target"] = housing.target  # 添加目标变量(房价)

print(df.head())

输出

   MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  Longitude  target
0  8.3252      41.0  6.984127  1.023810      322.0  2.555556     37.88   -122.23   4.526
1  8.3014      21.0  6.238137  0.971880      240.0  2.109842     37.86   -122.22   3.585
2  7.2574      52.0  8.288136  1.073446      496.0  2.802260     37.85   -122.24   3.521
3  5.6431      52.0  5.817352  1.073059      558.0  2.547945     37.85   -122.25   3.413
4  3.8462      52.0  6.281853  1.081081      565.0  2.181467     37.85   -122.25   3.422

解释

  • 数据已经标准化,单位仍然是可解释的真实值
  • 目标值 (target) 是房价中位数,单位是万美元

3. fetch_california_housing() 数据分析

(1) 目标值分布

import seaborn as sns
import matplotlib.pyplot as plt

sns.histplot(df["target"], bins=30, kde=True)
plt.title("加州房价分布")
plt.show()

解释

  • 查看房价的分布情况,判断是否需要归一化。

(2) 特征相关性

import numpy as np
import seaborn as sns

# 计算相关性
corr_matrix = df.corr()

# 可视化
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap="coolwarm")
plt.title("特征相关性热图")
plt.show()

解释

  • 观察特征与目标变量的相关性,决定是否进行特征选择。

4. 适用场景

  • 回归任务(预测房价)。
  • 特征工程与数据可视化(数据已标准化)。
  • 机器学习算法测试(如 线性回归随机森林XGBoost

5. fetch_california_housing() vs. 其他数据集

数据集任务类型样本数特征数适用场景
load_iris()多分类1504经典分类问题
load_wine()多分类17813葡萄酒分类
load_digits()多分类179764手写数字识别
load_diabetes()回归44210糖尿病预测
fetch_california_housing()回归206408房价预测

6. 结论

  • fetch_california_housing() 提供了 20640 个样本,用于回归任务,适用于 房价预测、特征工程研究
  • 数据 未经归一化,单位仍然可解释,适用于 真实世界的回归问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值