推荐系统笔记:决策树回归树
?????????決策樹和回歸樹經常用于數據分類。 決策樹是為那些因變量(target,label)是分類的情況而設計的,而回歸樹是為那些因變量(target,label)是數值的情況而設計的。
???????? 在討論決策樹對協同過濾的泛化之前,我們將首先討論決策樹在分類中的應用。
1 決策樹在分類/回歸中的應用
????????考慮我們有一個 m×n 矩陣 R 的情況。不失一般性,假設前 (n ? 1) 列是自變量(x),最后一列是因變量(y)。
???????? 為了便于討論,假設所有變量都是二進制的。 因此,我們將討論創建決策樹而不是回歸樹。 稍后,我們將討論如何將這種方法推廣到其他類型的變量。
?????????決策樹是數據空間的分層劃分,使用一組分層決策,稱為自變量中的拆分標準。
????????在單變量決策樹中,一次使用單個特征來執行拆分。例如,在特征值為 0 或 1 的二元矩陣 R 中,特征變量值為 0 的所有數據記錄將位于一個分支中,而所有數據取值為 1 的特征變量將位于另一個分支中。大多數屬于不同類的記錄將被分離出來。
????????當決策樹中的每個節點都有兩個子節點時,生成的決策樹稱為二叉決策樹。
1.1 Gini指數?
? ? ? 衡量決策樹分裂的質量可以通過使用分裂產生的子節點的加權平均基尼指數來評估。
???????? 如果 p1 ...pr 是節點 S 中屬于 r 個不同類的數據記錄的占比,則該節點的基尼指數 G(S) 定義如下:
????????
? ? ? ? ——>一個節點的Gini系數
?????????基尼指數介于 0 和 1 之間,數值越小,越表明判別力越大。
? ? ? ? 比如我們有六個點
| S的兩個分支節點各有多少個節點 | S的Gini系數 |
| (6,0) | 1-(1)**2-(0)**2=0 |
| (4,2) | 1-(1/3)**2-(2/3)**2=0.44 |
| (3,3) | 1-(1/2)**2-(1/2)**2=0.5 |
? ? ? ? 可以看出,S點越不確定屬于哪一類,Gini系數越大
????????分裂的整體基尼指數等于子節點基尼指數的加權平均值。
????????在這里,節點的權重由其中的數據點數定義。
???????? 因此,如果 S1 和 S2 是二叉決策樹中節點 S 的兩個子節點,分別有 n1 和 n2 條數據記錄,那么分裂 S ? (S1, S2) 的基尼指數可以計算如下 ????????
????????
1.2 構造決策樹
????????Gini 指數用于選擇適當的屬性以用于在樹的給定級別執行拆分。
????????可以根據公式 3.2 測試每個屬性以評估其拆分的基尼指數。選擇基尼系數最小的屬性進行拆分。
????????該方法以自上而下的方式分層執行,直到每個節點僅包含屬于特定類別的數據記錄。或者,當節點中的最小部分記錄屬于特定類時,也可以提前停止樹的生長。
????????這樣的節點被稱為葉節點,它被標記為該節點中記錄的主導類。
? ? ? ? 當我們需要對一個示例進行分類時,我們就可以根據我們構造的決策樹來為這個示例設定一條路徑。葉子的標簽將是該實例的標簽。????????
????????
????????圖 3.2 說明了一個基于四個二元屬性構建的決策樹示例。樹的葉子節點在圖中用陰影表示。··????????注意,決策樹不一定使用所有屬性進行拆分。例如,最左邊的路徑使用屬性 1 和 2,但不使用屬性 3 和 4。
????????此外,決策樹中的不同路徑可能使用不同的屬性序列。這種情況在高維數據中尤為常見。
????????測試實例 A=0010 和 B=0110 到相應葉節點的映射示例如圖 3.2 所示。由于數據分區的分層性質,這些測試實例中的每一個都被映射到唯一的葉節點。
1.3 多類別屬性 & 連續數值屬性 的決策樹?
????????該方法可以擴展到數值自變量,只需稍作修改。
????????為了處理數值特征變量,可以將屬性值劃分為多個區間以執行拆分,其中拆分的每個分支對應于不同的間隔。 然后通過根據基尼指數標準選擇屬性來執行拆分。
???????? 這種方法也適用于多分類特征變量,其中分類屬性的每個值對應于分割的一個分支。
1.4 數值因變量(target)的決策樹
????????為了處理數值因變量,拆分標準從基尼指數更改為更適合數字屬性的度量。
???????? 具體而言,使用數值因變量的方差代替基尼指數。 較低的方差是更可取的,因為這意味著節點包含有區別地映射到因變量局部的訓練實例。
???????? 葉節點中的平均值,或接一個線性回歸模型,用于對葉節點進行預測
1.5 剪枝
????????在許多情況下,需要執行剪枝以減少過擬合。
????????在這種情況下,在樹構建階段不使用全部,只使用部分訓練數據。
???????? 然后,在保留的訓練數據上測試剪枝的效果。 如果節點的移除提高了對保留數據的決策樹預測的準確性,則對該節點進行剪枝。
???????? 此外,也可以使用拆分標準的其他變體,例如錯誤率和熵。
2 將決策樹延伸到協同過濾
2.1 主要挑戰
????????將決策樹擴展到協同過濾的主要挑戰是預測條目和觀察條目沒有以列方式作為特征和類變量清楚地分開。
????????此外,評分矩陣非常稀疏,其中大部分條目都丟失了。這在樹構建階段對訓練數據進行分層劃分帶來了挑戰。
????????此外,由于協同過濾中的因變量和自變量(項目)沒有明確劃分,決策樹應該預測什么項目?
2.2 解決“應該預測什么”
????????通過構建單獨的決策樹來預測每個項目的評分。
???????? 考慮具有 m 個用戶和 n 個項目的 m × n 評級矩陣 R。 需要通過將每個屬性視為因變量,其余屬性視為自變量來構建單獨的決策樹。
????????因此,構建的決策樹的數量等于屬性/item的數量n。?
? ? ? ? 但在這種考慮下,缺少自變量的問題更難解決。
???????? 考慮將特定項目(例如特定電影)用作拆分屬性的情況。 所有評分小于閾值的用戶都被分配到樹的一個分支,而評分大于閾值的用戶被分配到另一個分支。
???????? 由于評分矩陣是稀疏的,因此大多數用戶不會為此項目指定評分。
????????這些用戶應該分配到哪個分支? 從邏輯和直觀上看,應將此類用戶分配給兩個分支。
????????然而,在這種情況下,決策樹不再是嚴格劃分。 根據這種方法,測試實例將映射到決策樹中的多個路徑,并需要將來自各個路徑的可能相互沖突的預測組合成單個預測。
2.3 使用降維的思路
????????第二種(也是更合理的)方法是使用推薦系統筆記: 基于鄰居的協同過濾問題 中的降維中討論的降維方法創建數據的低維表示。
????????考慮需要預測第 j 個項目的評分的場景。一開始,m × (n ? 1) 維的 評分矩陣,不包括第j 列,被轉換成一個低維的m × d 表示,其中d遠小于n ? 1,低秩矩陣所有元素都有數值。
? ? ? ? 然后,我們就可以將問題視為標準分類或回歸問題,此簡化表示用于構建第 j 個項目的決策樹。
????????通過將 j 的值從 1 更改為 n 來重復此方法,以構建總共 n 個決策樹。因此,第 j 個決策樹僅用于預測第 j 個項目的評分。?
????????值得注意的是,這種將降維與分類模型相結合的更廣泛方法不僅限于決策樹。 將此方法與幾乎任何分類模型結合使用相對容易。 ? ? ? ??
????????參考資料?Sci-Hub | Recommender Systems | 10.1007/978-3-319-29659-3
總結
以上是生活随笔為你收集整理的推荐系统笔记:决策树回归树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统笔记: 基于邻居的协同过滤问题
- 下一篇: python 笔记 :Gym库 (官方文