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

机器学习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.mrgr.cn/news/69677.html

相关文章:

  • PostgreSQL 开启密码验证插件
  • leetcode268 丢失的数字
  • 机器学习在网络安全中的应用
  • VScode下脚本被禁止运行的原因及解决方案
  • 1 图的搜索 奇偶剪枝
  • 科技型中小企业的认定标准
  • 使用layui过程中的问题
  • mapreduce综合应用案例 — 气象数据清洗
  • 基于SpringBoot和Vue的公司文档管理系统设计与开发(源码+定制+开发)
  • LVGL UI设计神器助你高效开发嵌入式UI应用——v0.18.0发布(中)
  • SMOTE算法深度解析及代码实现
  • 「QT」几何数据类 之 QLine 整型直线类
  • UVC 输出视频格式修改和windows下数据分析
  • 【Linux系统编程】第四十四弹---从TID到线程封装:全面掌握线程管理的核心技巧
  • 树莓派(Raspberry Pi)产品介绍-硬件篇
  • ABC 379 D - Home Garden(队列+前缀和)
  • 「QT」几何数据类 之 QPointF 浮点型点类
  • 免费送源码:Java+springboott+MySQL+Tomcat 游戏攻略网站设计与实现 计算机毕业设计原创定制
  • 基于springboot的公益服务平台的设计与实现
  • 【论文复现】MSA+抑郁症模型总结(三)
  • 国际刑警组织在全球打击网络犯罪行动中捣毁了22000多台恶意服务器!思科为工业无线系统中的关键URWB漏洞发布补丁 | 安全周报1110
  • 人脸识别率低怎么办?如何通过代码提高准确率?
  • 第18篇 :深入剖析systemverilog中 randomize 失败案例启示录(二)
  • JavaAPI(2)
  • 关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细
  • 在.NET中正确捕获C++程序的cout输出