机器学习常用数据集002:波士顿房价数据集

1、波士顿房价数据集概述

机器学习包sklearn中集成了各种各样的数据集,其中就包括波士顿房价数据集(boston_house_prices)是最简单的回归任务数据集之一。

该数据集共有506条波士顿房价的数据,每条数据包括14项特征,分别是房屋的13项数值型特征和1项目标特征:房价。此外,该数据中没有缺失的 属性/特征值,更加方便了后续的分析

该数据集特征含义如下表:

列名 说明 类型
CRIM 城镇人均犯罪率 float
ZN 住宅用地超过 25000 sq.ft. 的比例 float
INDUS 城镇非零售商用土地的比例 float
CHAS 查理斯河空变量(如果边界是河流,则为1;否则为0) int
NOX 一氧化氮浓度 float
RM 住宅平均房间数 float
AGE 1940 年之前建成的自用房屋比例 float
DIS 到波士顿五个中心区域的加权距离 float
RAD 辐射性公路的接近指数 float
TAX 每 10000 美元的全值财产税率 float
PTRATIO 城镇师生比例 float
B 1000(Bk-0.63)^ 2,其中 Bk 指代城镇中黑人的比例 float
LSTAT 人口中地位低下者的比例 float
MEDV 自住房的平均房价,以千美元计 float

2、波士顿房价数据获取

from sklearn import datasets  # 导入sklearn中集成的数据集
import pandas as pd  # 导入pandas
import matplotlib.pyplot as plt

df_boston = datasets.load_boston()
print("波士顿房价特征:\n", df_boston.data[:5])  # print前5个特征
print("波士顿房价特征的维度:\n", df_boston.data.shape)
print("波士顿房价标签:\n", df_boston.target[:5])  # print前5个标签
print("波士顿房价标签的维度:\n", df_boston.target.shape)

输出如下所示:

波士顿房价特征:
 [[6.3200e-03 1.8000e+01 2.3100e+00 0.0000e+00 5.3800e-01 6.5750e+00
  6.5200e+01 4.0900e+00 1.0000e+00 2.9600e+02 1.5300e+01 3.9690e+02
  4.9800e+00]
 [2.7310e-02 0.0000e+00 7.0700e+00 0.0000e+00 4.6900e-01 6.4210e+00
  7.8900e+01 4.9671e+00 2.0000e+00 2.4200e+02 1.7800e+01 3.9690e+02
  9.1400e+00]
 [2.7290e-02 0.0000e+00 7.0700e+00 0.0000e+00 4.6900e-01 7.1850e+00
  6.1100e+01 4.9671e+00 2.0000e+00 2.4200e+02 1.7800e+01 3.9283e+02
  4.0300e+00]
 [3.2370e-02 0.0000e+00 2.1800e+00 0.0000e+00 4.5800e-01 6.9980e+00
  4.5800e+01 6.0622e+00 3.0000e+00 2.2200e+02 1.8700e+01 3.9463e+02
  2.9400e+00]
 [6.9050e-02 0.0000e+00 2.1800e+00 0.0000e+00 4.5800e-01 7.1470e+00
  5.4200e+01 6.0622e+00 3.0000e+00 2.2200e+02 1.8700e+01 3.9690e+02
  5.3300e+00]]
波士顿房价特征的维度:
 (506, 13)
波士顿房价标签:
 [24.  21.6 34.7 33.4 36.2]
波士顿房价标签的维度:
 (506,)

从输出结果可以看到,标签数据(房价)是连续的数值型数据,因此可以判断该数据集是个回归任务的数据集。

3、 绘制数据

用scatter()函数绘制散点图。

from sklearn import datasets  # 导入sklearn中集成的数据集
import pandas as pd  # 导入pandas
import matplotlib.pyplot as plt

boston = datasets.load_boston()
print("波士顿房价特征:\n", boston.data[:5])  # print前5个特征
print("波士顿房价特征的维度:\n", boston.data.shape)
print("波士顿房价标签:\n", boston.target[:5])  # print前5个标签
print("波士顿房价标签的维度:\n", boston.target.shape)

cols_list = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']
df_boston = pd.DataFrame(boston.data, columns=cols_list)
df_boston['MEDV'] = boston.target
df_boston.to_csv('df_boston.csv', index=False)
df_boston.to_excel('df_boston.xlsx', index=False)
plt.figure()
plt.scatter(df_boston.loc[:, 'MEDV'], df_boston.loc[:, 'CRIM'], color='red', marker='o', label='setosa')
plt.scatter(df_boston.loc[:, 'MEDV'], df_boston.loc[:, 'AGE'], color='blue', marker='x', label='versicolor')
plt.scatter(df_boston.loc[:, 'MEDV'], df_boston.loc[:, 'RM'], color='green', marker='+', label='Virginica')
plt.show()

绘制散点图如图所示:
在这里插入图片描述

如需要整理好的详细的波士顿数据集、数据说明、可直接建模的数据等资料,可访问 Python编程网 获取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章