訓練集與測試集切分

2021-08-14 15:13:00 字數 1181 閱讀 5843

為了 更好的訓練資料並且更好測試模型,一般做機器學習之前都會進行訓練集和測試集的切分。

其實我們可以先把資料的輸入x和輸出向量y進行乙個水平拼接,然後隨機之後拆開,但是過程比較麻煩。在sklearn中shuffle的並不是訓練集,而是訓練集長度大小的隨機索引

shuffle_indexes=np.random.permutation(len(x)) #x為資料的輸入

shuffle_indexes

np.random.permutation( x )這個函式可以產生x和隨機數,並且隨機數的範圍是0~x

shuffle_indexes=np.random

.permutation(3)

shuffle_indexes

array([2, 0, 1])

test_ratio=0.2

test_size=int(len(x) * test_ratio)

test_indexes=shuffle_indexes[:test_size]

train_indexes=shuffle_indexes[test_size:]

x_train=x[train_indexes]

y_train=y[train_indexes]

x_test=x[test_indexes]

y_test=y[test_indexes]

有了之前的知識就能更好的理解sklearn中的切分函式的每個引數的意思。

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2, 

random_state=0)

引數意義:

x,資料集的輸入

y, 資料集的輸出

test_size 預設引數,這個測試集所佔百分比。

radom_state 預設引數,隨機數種子,一般除錯的時候希望每次切分要是一樣的,就給這個種子乙個固定的值就好了。

PYTHON 訓練集與測試集切分

通常,我們在建模之前會對原始資料進行切分,現對該方法進行打包。資料切分,按照7 3切分訓練集與測試集 data df 原始資料 object col 目標變數 defdata split data df object col from sklearn.model selection import t...

劃分測試集與訓練集

cnn datasets為自有資料集,np.random.permutation操作為打亂資料 函式shuffle也是是對原來的陣列進行重新洗牌 即隨機打亂原來的元素順序 區別在於shuffle直接在原來的陣列上進行操作,改變原來陣列的順序,無返回值。而permutation不直接在原來的陣列上進行...

訓練集 驗證集 測試集

訓練集loss 驗證集loss 測試集loss 乙個好的網路,二者的差距應該是很低的。但一般情況下因為網路不可避免地存在一定程度上的過擬合,所以肯定是train loss低於test lost,但如果低太多,就得考慮是過擬合的問題還是因為樣本的特徵空間不統一的問題。驗證集基本是在每個epoch完成後...