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编程网 获取