2017-07-26 157 views
-4

我有一個5類數據。每班有大約1000,1200,1500,1900,2000個樣本。我想在訓練數據中有200個每個類的例子。其他樣品將成爲測試數據。也就是說,訓練數據將包括每個類別中的[200,200,200,200,200,200]個樣本,測試數據將由每個類別中的[800,1000,1300,1700,1800]樣本組成。將分區數據集拆分爲訓練和測試(訓練數據每個類有200個示例)

我們如何在Python中做到這一點?是否有任何預定義的方法/包在Python中執行此操作?

另一個例子

train_test_split(data, labels, train_size=0.0042) Label Number Total Samples Train Samples Test Samples 1 6631 33 6598 2 18649 89 18560 3 2099 6 2093 4 3064 11 3053 5 1345 5 1340 6 5029 26 5003 7 1330 3 1327 8 3682 21 3661 9 947 6 941 Total 42776 200 42576

train_test_split(data, labels, train_size=) Label Number Total Samples Train Samples Test Samples 1 6631 33 6598 2 18649 89 18560 3 2099 6 2093 4 3064 11 3053 5 1345 5 1340 6 5029 26 5003 7 1330 3 1327 8 3682 21 3661 9 947 6 941 Total 42776 200 42576

所以,我希望它是這樣的:

Label Number Total Samples Train Samples Test Samples 1 6631 200 6431 2 18649 200 18449 3 2099 200 1899 4 3064 200 2864 5 1345 200 1145 6 5029 200 4829 7 1330 200 1130 8 3682 200 3482 9 947 200 747 Total 42776 1800 40976

+1

你到現在爲止做了什麼? – Kshitiz

+0

我使用Google搜索,但找不到有效的解決方案。 'train_test_split'函數中的'train_size'參數不是解決方案。如果「int」是,則自動計算百分比。 –

+0

如果int是自動計算的,則百分比是什麼意思? – Kshitiz

回答

0

您可以將sklearn.model_selection.train_test_splittrain_size參數設置爲一個整數值,表示列車樣本的絕對數量,200。如果它是一個浮點數,它應該介於0.0到1.0之間以表示您想要考慮的訓練樣本的比例。例如,0.8意味着80%。

+0

如果參數'train_size'是200,則每類訓練數據中元素的數量分別是[26,32,39,50,53]。訓練數據中的樣本總數爲200.我不想要這樣。每個班級由200個樣本組成,因此您在訓練數據中總共有1000個樣本。 –

+0

那麼,如果你把1000作爲'train_size',那麼除了200左右外,其他所有的都不會是200,它的平等真的很重要嗎? –

+0

你能告訴我們你的數據集的一部分嗎? – Kshitiz

相關問題