通常,我們在建模之前會對原始資料進行切分,現對該方法進行打包。
#資料切分, 按照7:3切分訓練集與測試集
## data_df:原始資料
## object_col:目標變數
defdata_split
(data_df , object_col)
:from sklearn.model_selection import train_test_split
y = data_df[object_col]
x = data_df.drop(object_col , axis =1)
#測試集佔比30%
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=
0.3, random_state=0)
# print(y_train)
train = pd.concat(
[y_train, x_train]
, axis=1)
test = pd.concat(
[y_test, x_test]
, axis=1)
return x_train, x_test, y_train, y_test
if __name__ ==
'__main__'
:import pandas as pd
import numpy as np
data = pd.read_csv(
'data/cs-training.csv'
)## 切分訓練集、測試集
x_train, x_test, y_train, y_test = data_split(data ,
'seriousdlqin2yrs'
)
訓練集與測試集切分
為了 更好的訓練資料並且更好測試模型,一般做機器學習之前都會進行訓練集和測試集的切分。其實我們可以先把資料的輸入x和輸出向量y進行乙個水平拼接,然後隨機之後拆開,但是過程比較麻煩。在sklearn中shuffle的並不是訓練集,而是訓練集長度大小的隨機索引。shuffle indexes np.ra...
劃分測試集與訓練集
cnn datasets為自有資料集,np.random.permutation操作為打亂資料 函式shuffle也是是對原來的陣列進行重新洗牌 即隨機打亂原來的元素順序 區別在於shuffle直接在原來的陣列上進行操作,改變原來陣列的順序,無返回值。而permutation不直接在原來的陣列上進行...
訓練集 驗證集 測試集
訓練集loss 驗證集loss 測試集loss 乙個好的網路,二者的差距應該是很低的。但一般情況下因為網路不可避免地存在一定程度上的過擬合,所以肯定是train loss低於test lost,但如果低太多,就得考慮是過擬合的問題還是因為樣本的特徵空間不統一的問題。驗證集基本是在每個epoch完成後...