本篇文章為大家展示了如何用Python代碼從零開始建立回歸樹,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
我們提供的服務有:網(wǎng)站制作、成都網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、方城ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的方城網(wǎng)站制作公司
介紹
流程圖用于通過可視媒體闡明決策過程。設計需要對整個系統(tǒng)有完整的了解,因此也需要人的專業(yè)知識。問題是:“就流程的復雜性而言,是否可以自動創(chuàng)建流程圖以使其設計更快,更便宜且更具可擴展性?” 答案就是決策樹!
決策樹可以自動推斷出最能表達決策內(nèi)部工作的規(guī)則。在經(jīng)過標記的數(shù)據(jù)集上訓練時,決策樹將學習規(guī)則樹(即流程圖),并遵循該樹來確定任何給定輸入的輸出。它們的簡單性和高解釋性使它們成為ML工具箱中的重要資產(chǎn)。
描述了回歸樹-具有連續(xù)輸出的決策樹-并實現(xiàn)了用于學習和預測的代碼段。使用波士頓數(shù)據(jù)集創(chuàng)建用例場景并學習定義房屋價格的規(guī)則??梢栽趨⒖嘉墨I中找到完整代碼的鏈接。
用于處理COVID-19的流程圖。[1]
學習規(guī)則
尋求的規(guī)則,樹類似的流程圖,是最好的解釋了房子的功能和它的價格之間的關(guān)系。每個規(guī)則將成為該樹中的一個節(jié)點,并將房屋分成不相交的集合,例如具有兩個房間的房子,具有三個房間的房子和具有三個以上房間的房子。規(guī)則也可以基于多種功能,例如帶有兩個房間且靠近查爾斯河的房屋。因此所有可能的樹的空間都是巨大的,需要簡化以計算方式解決學習問題。
作為第一個簡化,僅考慮二進制規(guī)則:將房屋分為兩部分的規(guī)則,例如“房屋是否少于三個房間?”。作為第二個,省略了特征的組合,因為組合的數(shù)量可能很大,并且僅考慮基于一個特征的規(guī)則。在這些簡化下,規(guī)則是具有兩個部分的“ 小于關(guān)系”:特征(例如房間數(shù)量)和劃分閾值(例如三個)。
基于此規(guī)則定義,我們通過遞歸搜索將數(shù)據(jù)最好分為兩部分的規(guī)則來構(gòu)建規(guī)則樹。
換句話說,首先將數(shù)據(jù)盡可能地劃分為兩個拆分,然后再分別考慮每個拆分。繼續(xù)分割分割,直到滿足預定條件,例如最大深度。由于簡化和貪婪規(guī)則搜索,構(gòu)造的樹只是最佳樹的近似。在下面,可以找到實現(xiàn)該學習的Python代碼。
用Python實現(xiàn)的遞歸拆分過程。
將拆分過程作為一個函數(shù)來實現(xiàn),并使用訓練數(shù)據(jù)(X_train,y_train)來調(diào)用它。該功能找到將訓練數(shù)據(jù)分為兩部分的最佳規(guī)則,并根據(jù)找到的規(guī)則進行分割。它通過使用左右拆分作為訓練數(shù)據(jù)來不斷調(diào)用自己,直到達到預先指定的最大深度或訓練數(shù)據(jù)太小而無法劃分為止。當滿足停止條件時,它將停止劃分,并以當前拆分中訓練數(shù)據(jù)的平均價格來預測房價。
在split函數(shù)中,將除法規(guī)則定義為具有l(wèi)eft,right,feature和threshold的鍵的字典。最佳劃分規(guī)則由另一個功能返回,該功能通過遍歷訓練集中的每個特征和閾值來詳盡地掃描可能的規(guī)則。確定特征的閾值取決于特征在整個數(shù)據(jù)集中所取的值。這是代碼:
查找最佳規(guī)則的功能,該規(guī)則將手頭的訓練數(shù)據(jù)分開。
該功能通過測量規(guī)則建議的分割質(zhì)量來跟蹤最佳規(guī)則。質(zhì)量通過名為“ 殘差平方和”(RSS)的“越低越好”度量來度量(有關(guān)RSS的更多詳細信息,請參見參考資料中的筆記本)。最后,最佳規(guī)則作為字典返回。
解釋規(guī)則
學習算法自動選擇特征和閾值以創(chuàng)建最能解釋房屋特征與其價格之間關(guān)系的規(guī)則。下面以最大深度為3的方式可視化從波士頓數(shù)據(jù)集中學習到的規(guī)則樹。可以觀察到提取的規(guī)則與人類的直覺相重疊。此外可以像跟蹤流程圖一樣容易地預測房屋價格。
從波士頓數(shù)據(jù)集中學習的最大深度為3的規(guī)則樹。
現(xiàn)在描述一個自動使用以上流程圖進行預測的過程。給定具有數(shù)據(jù)集中特征的房屋,在節(jié)點中提出問題并根據(jù)答案進行傳播,直到得出預測(即葉節(jié)點)為止。
例如,位于以下位置的房屋:(i)較低的身份百分比為5.3,(ii)每個住宅的平均房間為10.2,并且(iii)人均犯罪率為0.01,將第一個問題回答為“是”,第二個問題回答為“ 否”第三個是YES。因此預計其價格為45.80K??梢栽谙旅嬲业剿裱窂降目梢暬?。
樹規(guī)則中的示例預測路徑。
使用split函數(shù)返回的字典對預測過程進行編碼非常簡單。通過比較規(guī)則指定的特征值和閾值來遍歷規(guī)則字典。根據(jù)答案向左或向右移動,直到遇到帶有預測鍵(即葉節(jié)點)的規(guī)則。以下是用于預測的代碼段。
使用學到的樹來預測房屋價格的功能。
回歸樹是用作回歸模型的快速直觀的結(jié)構(gòu)。對于波士頓數(shù)據(jù)集,當適當調(diào)整最大深度時,它們可以達到0.9左右的R2分數(shù)。但是它們可能對數(shù)據(jù)集中的微小變化是脆弱的,這使得它們不可靠地用作單個預測變量。提出了隨機森林和梯度增強樹來解決高靈敏度問題,它們可以產(chǎn)生與深度模型相當?shù)慕Y(jié)果。
上述內(nèi)容就是如何用Python代碼從零開始建立回歸樹,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。