什么是訓練數(shù)據(jù)集 對數(shù)據(jù)集訓練時,只對訓練集進行訓練還是都訓練?
對數(shù)據(jù)集訓練時,只對訓練集進行訓練還是都訓練?如果你想測試你自己的數(shù)據(jù)集,你需要把它分成訓練集、驗證集和測試集。我們訓練機器學習模型使用現(xiàn)有數(shù)據(jù)預測未知數(shù)據(jù)。我們通常把模型對未知數(shù)據(jù)的預測能力稱為泛化
對數(shù)據(jù)集訓練時,只對訓練集進行訓練還是都訓練?
如果你想測試你自己的數(shù)據(jù)集,你需要把它分成訓練集、驗證集和測試集。
我們訓練機器學習模型使用現(xiàn)有數(shù)據(jù)預測未知數(shù)據(jù)。我們通常把模型對未知數(shù)據(jù)的預測能力稱為泛化能力。為了評價模型的泛化能力,通常將數(shù)據(jù)分為訓練集和測試集。訓練集用來訓練模型,測試集用來評價模型的泛化能力。
這里有幾點需要注意:
通常80%的數(shù)據(jù)集用作訓練集,20%用作測試集;
通常我們需要在開始構建模型之前劃分數(shù)據(jù)集,以防止數(shù)據(jù)窺探錯誤,也就是說,我們應該避免過多地了解測試集的樣本特征,并且防止我們選擇對測試集數(shù)據(jù)有幫助的模型,這將導致過度的結果,一般來說,我們在建立模型時需要對數(shù)據(jù)進行處理,包括一些數(shù)據(jù)清洗、數(shù)據(jù)特征縮放(標準化或規(guī)范化)。此時,我們只需要對訓練集執(zhí)行這些操作,然后將從訓練集獲得的參數(shù)應用到測試集,也就是說在工作流中,您不能使用在測試數(shù)據(jù)集上計算的任何結果。例如,我們得到的屬性中可能缺少值,因為在這些操作之前,我們已經將數(shù)據(jù)集劃分為訓練集和測試集。通常的做法是通過計算屬性值的中值來填充缺少的值。請注意,屬性值的中值是由訓練集中的數(shù)據(jù)計算的。當我們得到一個模型時,如果你想在模型的測試誤差要被測試到近似泛化誤差的時候,測試集中可能會有一些缺失的值。此時,由訓練集計算的中值填充相應屬性的缺失值。
用同一數(shù)據(jù)集訓練神經網絡,每次訓練結果不一樣,有時正確率很高,有時很低,為什么?
其實這個問題的實質是,如果我們用機器學習算法對數(shù)據(jù)集上的數(shù)據(jù)模型進行一次訓練,保存模型,然后用同樣的算法和同樣的數(shù)據(jù)集以及數(shù)據(jù)排序對其進行再次訓練,那么第一個模型和第二個模型是一樣的嗎?
這可能是因為神經網絡用增益或權重的隨機值初始化,然后每個模擬在訓練階段有不同的起點。如果您希望始終保持相同的初始權重,可以嘗試為初始權重修復種子以消除問題。
如果我們深入研究這個問題,我們可以根據(jù)ml算法的“確定性”來對其進行分類。當從同一個數(shù)據(jù)集進行訓練時:
一個是總是生成相同的模型,并且記錄以相同的順序呈現(xiàn);
另一個是總是生成不同的模型,并且記錄順序不同。
在實踐中,大多數(shù)是“不確定的”。模型變化的原因可能是機器學習算法本身存在隨機游走、不同權值的隨機初始化、不同分量的概率分布抽樣來分配優(yōu)化函數(shù)。
雖然模型的“不確定性”可能會對單個訓練結果造成干擾,但我們也可以用“不確定性”來確認模型的穩(wěn)定性,如決策樹、支持向量機(SVM)、神經網絡等,最終可以通過多次迭代來確認模型的穩(wěn)定性。
如何尋找自己茅塞頓開的悟性?
如何找到自己的悟性。在我看來。要善于思考,善于反思,善于總結。從平時的處事能力,接受和理解事物的能力。一個精明的人,必須是能在最短的時間內抓住機遇,不會被事物的表象所迷惑,能和一個無所不知、無所不知的人站在當下、展望未來的人。精明就是要有四種能力:敏感、洞察力、逆向思維和遠見。有見識的。就是要讓我們認真體驗人生,虛心做事,誠實做事,不斷開拓進取,實現(xiàn)人生理想和抱負。世界上最成功的人必須是有最高理解力的人。