sklearn DecisionTreeClassifier具有一個名爲「splitter」的屬性,默認情況下它設置爲「best」,將它設置爲「best」或「random」是做什麼的?我無法從官方文檔中找到足夠的信息。sklearn的DecisionTreeClassifier中的「splitter」屬性是做什麼的?
1
A
回答
1
如果您選擇/保持「最佳」,隨機樹會分割最相關的功能。
如果選擇「隨機」,樹要採取隨機功能,並把它分解。因此,您的樹可能會以更深或更低的精度結束。
你可以做一些試驗,並生成一個graphviz看出區別。例如,在下面的圖片上,分割X 1,然後X [0]。但是,如果你反其道而行,你最終可能會由拆分通過X [0],則X 1,並再次精確X [0]
編輯:作爲例子,你可以考慮高度/人的體重。
讓我們考慮人口高度的這樣的平均水平1m70,女性通常1m65和男人1m75。兩種重新分配都是重疊的。 對於體重來說,它更分離,女性在65公斤左右,而男性85公斤(曲線從不重疊)。
如果您隨機分割,則可以從特徵高度開始。這意味着你將在高度> 1m70處分裂。你最終會得到兩個包含男性和女性的團體。所以你必須按重量分割,說出它是男人還是女人。
如果您使用最好,您可以直接根據體重進行分類。
編輯2:如果你有一個特點百分之一集,「最好」也將採取最相關的功能。想象一下,你仍然想分類男人和女人,你也有在你的數據集的眼睛的顏色,瞳孔的大小等......這些都不相關,使用隨機可能會首先選擇他們。
對我來說,這個選項使得只有當你知道你所有的功能都與周圍相同的實力相關者的意義,如果你想節省一些計算時間(尋找最好的分裂可能會發生在某些情況下,時間)
我希望它能幫助,
1
「隨機」設定隨機選擇一個功能,然後將其分解爲隨機和計算基尼係數。它重複了很多次,比較所有的分割,然後採取最好的分割。
這有幾個優點:
- 它的計算小於在每片葉子計算每個功能的最佳分散密集。
- 它應該不太容易過度配合。
- 如果您的決策樹是集成方法的一個組件,則額外的隨機性很有用。
相關問題
- 1. `sample_weight`對``DecisionTreeClassifier`在sklearn中的工作方式做了什麼?
- 2. 爲什麼決策樹結構只是sklearn DecisionTreeClassifier的二叉樹?
- 3. Mono.GetOptions.OptionAttribute的MaxOccurs屬性是做什麼的?
- 4. 在sklearn中決定DecisionTreeClassifier的max_depth
- 5. ASP.net AutoEventWireup屬性是做什麼的?
- 6. NHibernate.Search ContainedIn屬性是做什麼的?
- 7. 'sort'屬性是做什麼的?
- 8. html'typeof'屬性是做什麼的?
- 9. html bindpoint屬性是做什麼的?
- 10. android:name屬性是做什麼的?
- 11. CoreData屬性的索引屬性是做什麼的?
- 12. 屬性(屬性默認值)是做什麼的?
- 13. XSD中元素的ref屬性是做什麼的?
- 14. .classpath中的導出屬性是做什麼的?
- 15. NHibernate中的反向屬性和只讀屬性在做什麼?
- 16. 這是什麼xmlns屬性做
- 17. y,_賦值在python/sklearn中做什麼?
- 18. uitableviewcell的屬性是什麼?
- 19. 命名屬性是對象的最佳做法是什麼?
- 20. sklearn DecisionTreeClassifier更深度精度更低?
- 21. sklearn中的屬性錯誤svm.SVC
- 22. LoginPageLink中的'Type'屬性值是什麼?
- 23. xml中的'base'屬性是什麼?
- 24. 什麼是C#中的屬性
- 25. 什麼是rails中的「嵌套屬性」?
- 26. Groovy中的「屬性」是什麼?
- 27. 什麼是HTML中的枚舉屬性?
- 28. java中屬性的含義是什麼?
- 29. C#中屬性的用途是什麼?
- 30. XML屬性中的問號是什麼?
所以,如果讓我選擇「隨機」,基尼雜質或信息增益將不被計算出來的?因爲計算它們並使用「隨機」沒有任何意義,對嗎? –
我想它會在以後計算,但不用於選擇最佳功能。 –
這麼好的解釋....謝謝! –