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編程網 獲取