機器學習常用數據集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編程網 獲取

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