[英]Train, Test, Validate split Python. Three sets
有人提出了一種將數據集分成三組的解決方案。 我想知道在這種情況下標簽在哪里。 或然后如何設置標簽。
train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])
我將根據評論回答問題:
使用此方法進行拆分:
train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])
您將獲得3個不同的對象,其中包括來自df
的train
的前60%數據,對應於validate
60%和80%之間的間隔的數據,以及對應於test
80%-100%的最后20%的數據。 標簽在這些數據框中。
在train_test_split
您傳遞了兩個對象X和Y,這兩個對象以前很可能是從原始數據集中拆分出來的,然后返回4個對象,其中2個對應於train,兩個對應於test。 請記住以下幾點:首先將數據集拆分為independent variables
和explained/target variable
,然后將這兩個對象拆分為訓練和測試。
使用np.split
進行反之亦然,您首先要將數據集分為3個對象,進行訓練,驗證和測試,然后將它們分別分成independent variables
通常稱為X和target variable
Y)。進行相同的拆分,只是順序相反。
但是,請記住,通過傳遞np.split
的索引意味着分割不是隨機進行的,而使用train_test_split
則會得到隨機的訓練和測試子集。 另一方面, np.split
允許更大的靈活性,例如,如您在示例中所證明的,創建兩個以上的子集。
嘗試這個。 將train_test_split之一的輸出輸入第二個
import numpy as np
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4)
X_test, X_validate, y_test, y_validate = train_test_split(X_test, y_test, test_size=0.5)
該函數將2個數組隨機拆分為4個數組,而test_size確定分配給測試輸出與序列的拆分的大小。 輸入y是構建機器學習模型的目標,輸入X是模型的特征。 如果要將它們組合在一起,則只需合並等效的X和y輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.