当前位置: 首页 > article >正文

机器学习Housing数据集

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_openml

设置Seaborn的美观风格

sns.set(style=“whitegrid”)

Step 1: 下载 Housing 数据集,并读入计算机

def load_housing_data():
housing = fetch_openml(name=“house_prices”, as_frame=True)
housing_df = housing.data

# 打印实际列名和列数,方便调试
print("数据集的列数:", housing_df.shape[1])
print("数据集的列名:", housing_df.columns)

# 检查列数是否为 14,如果是则重命名列,否则跳过重命名步骤
if housing_df.shape[1] == 14:
    housing_df.columns = [
        "CRIM", "ZN", "INDUS", "CHAS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX",
        "PTRATIO", "B", "LSTAT", "MEDV"
    ]
else:
    print("数据列数不符,未进行重命名。请检查数据集。")

return housing_df

读取数据

housing_df = load_housing_data()
print(“Housing 数据集的前 5 项数据:”)
print(housing_df.head())

Step 2: 定义特征

features = [
“CRIM”, “ZN”, “INDUS”, “CHAS”, “NOX”, “RM”, “AGE”, “DIS”, “RAD”, “TAX”,
“PTRATIO”, “B”, “LSTAT”, “MEDV”
]
print(f"\n定义的特征列为:{features}")

Step 3: 抽取五个特征:LSTAT、INDUS、NOX、RM、MEDV,绘制散点图矩阵

selected_features = [“LSTAT”, “INDUS”, “NOX”, “RM”, “MEDV”]
sns.pairplot(housing_df[selected_features], diag_kind=“kde”, markers=“o”)
plt.suptitle(“散点图矩阵(选取特征:LSTAT、INDUS、NOX、RM、MEDV)”, y=1.02)
plt.show()

Step 4: 选取其他五个特征绘制散点图矩阵

other_features = [“CRIM”, “AGE”, “DIS”, “RAD”, “TAX”]
sns.pairplot(housing_df[other_features], diag_kind=“kde”, markers=“o”)
plt.suptitle(“散点图矩阵(选取特征:CRIM、AGE、DIS、RAD、TAX)”, y=1.02)
plt.show()

Step 5: 计算相关系数矩阵,并绘制热力图

使用前面选定的五个特征加上自己选择的五个特征

all_selected_features = selected_features + other_features
correlation_matrix = housing_df[all_selected_features].corr()

绘制热力图

plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, fmt=“.2f”, cmap=“coolwarm”, square=True, cbar_kws={‘shrink’: .8})
plt.title(“相关系数矩阵热力图”)
plt.show()

总结 Housing 数据集的变化情况

print(“\n总结:\n通过散点图矩阵和相关系数热力图,我们可以观察到不同特征之间的关系。例如:”)
print(“- 房间数量(RM)与房价中位数(MEDV)呈正相关关系,房间数量越多,房价越高。”)
print(“- 人均犯罪率(CRIM)与地位较低人口比例(LSTAT)呈正相关关系,可能表明犯罪率与经济状况存在关联。”)
print(“- NOX和DIS的负相关性较强,可能表示距离市中心越远的地区空气污染物浓度越低。”)
print(“- 其他特征的相关性也可以从热力图中进一步分析。”)


http://www.kler.cn/a/388298.html

相关文章:

  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:优化数据加载的实战技巧(下)(16/30)
  • 准确--FastDFS快速单节点部署
  • Redis集群模式之Redis Sentinel vs. Redis Cluster
  • 前端入门一之ES6--面向对象、够着函数和原型、继承、ES5新增方法、函数进阶、严格模式、高阶函数、闭包
  • 原生 JavaScript基本内容和常用特性详解
  • Android Studio 将项目打包成apk文件
  • Mac打开time machine(时间机器)备份特殊文件
  • ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver(二)
  • DataFrame
  • Spring高手之路26——全方位掌握事务监听器
  • 第02章 CentOS基本操作
  • 腾讯云服务器到期网站迁移到新服务器参考指南
  • IMS高压发生器维修高压电源维修XRG100/1000
  • Spark的Shuffle过程
  • 【西门子官方车轨级S7-1500F安全PLC标准 SICAR架构应用实例】
  • 软件定义网络(SDN)在企业网络中的应用
  • 什么是python爬虫?
  • HashMap(深入源码追踪)
  • 005.精读《B-Tree vs LSM-Tree》
  • Linux 内核中断描述符 (irq_desc) 的初始化与动态分配机制详解
  • vue全家桶都有哪些?
  • C++ STL CookBook 6:STL Containers (I)
  • web语义化
  • leetcode hot100【LeetCode 79.单词搜索】java实现
  • 数据库基础(5) . DCL