5 sklearn的資料集-datasets
阿新 • • 發佈:2019-01-26
sklearn的資料集-datasets
1 sklearn 強大資料庫
data sets,有很多有用的,可以用來學習演算法模型的資料庫。
eg: boston 房價, 糖尿病, 數字, Iris 花。
主要有兩種:
- 封裝好的經典資料。eg: boston 房價, 糖尿病, 數字, Iris 花。在程式碼中以“load”開頭。
- 自己設計引數,然後生成的資料,例如用來訓練線性迴歸模型的資料(強大)。在程式碼中以“make”開頭
2 文件介紹
2.1 經典資料
例如,點選進入 boston 房價的資料,可以看到 sample 的總數,屬性,以及 label 等資訊。
2.2 構造資料
如果是自己生成資料,按照函式的形式,輸入 sample,feature,target 的個數等等。
sklearn.datasets.make_regression(n_samples=100, n_features=100, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)[source]
3 例子1,房價
# 匯入滿滿的資料庫
from sklearn import datasets
# 分割資料的模組,把資料集分為訓練集和測試集
from sklearn.cross_validation import train_test_split
# 匯入 線性迴歸 方法
from sklearn.linear_model import LinearRegression
# 載入資料
loaded_data = datasets.load_boston()
# 獲取資料的輸入與輸出,sklearn很規則的吧資料分為了data(輸入)與target(輸出)兩部分
data_X = loaded_data.data
data_y = loaded_data.target
# 將資料集分割成 訓練集 與 測試集,切順序是打亂的。其中測試集佔30%
X_train,X_test,y_train,y_test = train_test_split(data_X,data_y,test_size=0.3)
# 建立模型,可以直接用預設值去建立 model,預設值也不錯,也可以自己改變引數使模型更好。
model = LinearRegression()
# 用 training data 去訓練模型
model.fit(X_train, y_train)
# 再打印出預測值,這裡用 X 的前 4 個來預測,同時列印真實值,作為對比。
print(model.predict(X_test[:4, :]))
print(y_test[:4])
'''
結果如下:
[ 19.56926228 33.20448769 31.89484639 39.34984426]
[ 18.6 33.2 30.3 43.5]
'''
4 例子2:建立虛擬資料並可視化
# 匯入滿滿的資料庫,這裡用它的第二個方面:構造資料
from sklearn import datasets
# 匯入 線性迴歸 方法
from sklearn.linear_model import LinearRegression
# 畫圖工具
import matplotlib.pyplot as plt
# 構造用於迴歸的資料make_regression
# 引數的意思:100個例子,1種特徵,1種輸出,噪聲的大小為5
X,y = datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=2)
# 影象化我們剛剛建立的資料
plt.plot(X,y,'o')
plt.show()
可以看到用函式生成的 Linear Regression 用的資料。
noise 越大的話,點就會越來越離散,例如 noise 由 10 變為 50.