2017-04-25 112 views
-1

我是相對較新的Python中的數據科學,並在探索數據科學方面的一些競爭,我對「訓練數據集」和「測試數據集」感到困惑。有些項目已經合併,有些則保持分開。有兩個數據集的基本原理是什麼?任何建議將有幫助,謝謝數據科學中的訓練數據和測試數據

+0

https://stats.stackexchange.com/questions/19048/what-is-the-difference-between-test-set-and-validation-set – languitar

回答

1

「培訓數據」和「測試數據」是指您希望分析的數據的子集。如果監督式機器學習算法被用於對數據做某些事情(例如將數據點分爲羣集),則該算法需要被「訓練」。

監督機器學習算法的一些示例是支持向量機(SVM)和線性迴歸。它們可用於對具有多個維度的數據進行分類或聚類,從而使我們能夠聚合相似的數據點。

這些算法需要在被用於「測試集」之前,使用正在分析的數據子集(「訓練集」)進行訓練。從本質上講,培訓爲算法提供了一個機會來推導出它所呈現的一些新數據的一般解決方案,這與我們作爲人類訓練的方式非常相似,因此我們可以在將來處理新的情況。

希望這會有所幫助!

+0

真的很好的解釋,最後一個問題,爲什麼在一些模型人合併培訓和測試數據,有些則保持獨立。感謝你的幫助。 – iahmed

+0

據我所知,您的測試和培訓數據應該始終保持分開。原因是當你訓練你的算法時,應該保持對應該是「未知」的數據的無知。如果訓練集包含測試集中的元素,則會受到污染。 –

0

數據集是行的列表,可以分爲訓練和測試段。這樣做的原因是在代碼的訓練過程中使用的數據行之間保持CLEAR分隔(認爲它就像您用來「訓練」嬰兒學習對象的閃卡)和數據行(當你測試寶寶學習物體時)。您希望它們分開以便獲得算法執行得如何的準確評分(例如,當測試時,嬰兒得到9/10正確)。如果您將訓練排和試驗碼混合在一起,您不會知道寶寶是否記住了訓練結果,或者實際上知道如何識別9/10張新圖像。

通常,數據集是作爲一個集合給出的,因爲在代碼執行過程中,通過隨機選擇行來隨機選擇訓練和測試集是很好的。這樣,您可以多次運行培訓並進行不同時間的測試,並且可以取平均值。例如,寶寶可能首次獲得9/10,下一個6/10,最後7/10。平均準確率將達到73.3%。這是一個比只嘗試一次更好的表示方式(正如你所看到的並不完全準確)。

0

列車數據集用於訓練您的模型,並在訓練完成後如何檢查訓練好的模型有多準確?爲此,我們使用測試數據集,我們通常將可用數據分爲兩部分,一部分用於訓練,一部分用於測試。

相關問題