[英]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.