簡體   English   中英

訓練,測試,驗證拆分的Python。 三套

[英]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個不同的對象,其中包括來自dftrain的前60%數據,對應於validate 60%和80%之間的間隔的數據,以及對應於test 80%-100%的最后20%的數據。 標簽在這些數據框中。

train_test_split您傳遞了兩個對象X和Y,這兩個對象以前很可能是從原始數據集中拆分出來的,然后返回4個對象,其中2個對應於train,兩個對應於test。 請記住以下幾點:首先將數據集拆分為independent variablesexplained/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM