簡體   English   中英

如何通過 Matlab 中的 PartitionedEnsemble 模型預測新數據(測試集)的標簽?

[英]How to predict labels for new data (test set) by the PartitionedEnsemble model in Matlab?

我通過 Matlab 2014a 中的函數fitensemble()為二元分類問題訓練了一個集成模型 (RUSBoost)。 此函數的訓練通過函數fitensemble()的輸入參數“kfold”進行 10 倍交叉驗證。

但是,如果我使用predict(model, Xtest) ,則此函數訓練的輸出模型不能用於預測新數據的標簽。 我查看了 Matlab 文檔,其中說我們可以使用kfoldPredict()函數來評估訓練后的模型。 但是我沒有通過這個函數找到新數據的任何輸入。 此外,我發現經過交叉驗證的訓練模型的結構與沒有交叉驗證的模型不同。 那么,誰能告訴我如何使用經過交叉驗證訓練的模型來預測新數據的標簽? 謝謝!

kfoldPredict()需要一個RegressionPartitionedModelClassificationPartitionedEnsemble對象作為輸入。 這已經包含了 kfold 交叉驗證的模型和數據。
RegressionPartitionedModel對象有一個字段Trained ,其中存儲了用於交叉驗證的受過訓練的學習者。 您可以使用這些學習器中的任何一個,並像predict(learner, Xdata)一樣使用它。

編輯:

如果 k 太大,則一次或多次迭代中有意義的數據可能太少,因此該迭代的模型不太准確。 k 沒有一般規則,但k=10就像在 MATLAB 默認值中一樣,是一個很好的起點。 也許這對你來說也很有趣: https : //stats.stackexchange.com/questions/27730/choice-of-k-in-k-fold-cross-validation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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