簡體   English   中英

如何訓練 ML 模型以獲得多個可能的輸出?

[英]How to train ML model to get more than one possible output?

我一直試圖搜索這個問題,但無法得到答案。 在python中使用分類算法是否可以有多個可能的輸出?

我一直在研究一個農作物數據庫,該模型將使用 pH、土壤類型、溫度和濕度等輸入來預測哪種作物適合土地,在這種情況下,不止一種作物可以具有相似的 pH 值和土壤類型。 所以,我希望我的模型返回所有​​可能的結果。

所以,你能告訴我這是否可能嗎? 如果是我如何獲得輸出?

  Temp Humidity Moisture    Stype   suitable-crop      Ph
0   26    52        38     Sandy      Maize         Slightly acidic
1   32    62        34      Red     Ground Nuts     Neutral
2   29    52        45     Loamy     Sugarcane      Slightly alkaline
3   34    65        62     Black      Cotton        Moderately acidic
4   26    50        35     Sandy      Barley        slightly acidic

上面給出的是樣本數據。 這里的目標是“合適的作物”。 正如您所看到的,玉米和大麥對溫度、濕度、土壤類型(Stype)和 ph 值幾乎都有相同的要求。 我使用隨機森林算法來預測輸出。

Enter the soil type:sandy
Enter the pH type:slightly acidic
Enter temperature:27
Eneter Humidity:50
Enter moisture:37
result = model.predict([[Stype1, pH1, Temperature, Humidity, Moisture]])
print(result)

['Sugarcane'] 

結果就是這樣。 我希望我的模型也返回所有可能的合適輸出,如大麥和玉米。

是的,這是可能的。 scikit-learn 用戶指南有一個很好的討論(在決策樹的上下文中,但以下引用更普遍):

多輸出問題是一個有多個輸出要預測的監督學習問題,也就是說,當 Y 是大小為[n_samples, n_outputs]的二維數組時。

當輸出之間沒有相關性時,解決此類問題的一種非常簡單的方法是建立n個獨立模型,即每個輸出一個,然后使用這些模型獨立預測n個輸出中的每一個。 然而,因為與相同輸入相關的輸出值本身很可能是相關的,所以通常更好的方法是構建一個能夠同時預測所有 n 個輸出的單一模型。 首先,它需要更少的訓練時間,因為只構建了一個估計器。 其次,結果估計器的泛化精度通常會提高。

第二種方法是否可行可能取決於您使用的分類算法。 那些本機支持多輸出分類的算法通常會在 scikit-learn 中實現。 同樣,用戶指南是一個很好的起點。

暫無
暫無

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

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