
今天,我們繼續(xù)開啟分類算法之旅,它是一種高效簡介的分類算法,后面有一個集成算法正是基于它之上,它是一個可視化效果很好的算法,這個算法就是決策樹。
1 一個例子
有一堆水果,其中有香蕉,蘋果,杏這三類,現在要對它們分類,可以選擇的特征有兩個:形狀和大小,其中形狀的取值有個:圓形和不規(guī)則形,大小的取值有:相對大和相對小?,F在要對其做分類,我們可以這樣做:
首先根據特征:形狀,如果不是圓形,那么一定是香蕉,這個就是葉子節(jié)點;
如果是圓形,
再進一步根據大小這個特征判斷,如果是相對大的,則是蘋果,如果否,則是杏子,至此我們又得到兩個葉子節(jié)點,并且到此分類位置,都得到了正確劃分三種水果的方法。
大家可以體會剛才這個過程,這就是一個決策分類,構建樹的一個過程,說成是樹,顯得有點高大上,再仔細想想就是一些列 if 和 else 的嵌套,說是樹只不過是邏輯上的一種神似罷了。
剛才舉的這個例子,有兩個特征:形狀和大小,并且選擇了第一個特征:形狀作為第一個分裂點,大小作為第二個分裂點,那么不能選擇第二個特征作為第一分裂點嗎? 這樣選擇有沒有公式依據呢?
2 分裂點選擇依據
在上個例子中,有三類水果,現在假設杏都被我們家的寶寶吃完了,現在手里只有香蕉和蘋果這兩類水果了,并且這個時候要對它們做分類,此時機靈的你,一定會根據特征:形狀對它們分類了,因為這樣一下就會把它們分開了,此時我們說這類集合的純度更高,與之前的那三類水果在形狀這個特征上。
純度這個概念是很好的理解的,種類越少純度越高,自然兩類純度更高。 此時有人提出了一個和它相反的但是不那么容易理解的概念:熵。它們是敵對雙方:熵越大,純度越低;熵越小,純度越高。
這是一種概念,那么如何用公式量化熵呢:
其中 i 等于蘋果,香蕉,杏,P(i)是集合中取得某一個水果的概率。
試想一下,如果我們想更好地對某個集合完成分類,會怎么做呢?我們一定會優(yōu)先選擇一個特征,使得以這個特征做分類時,它們能最大程度的降低熵,提高分類的純度,極限的情況是集合中100個元素(集合中只有兩類水果),根據某個最優(yōu)特征,直接將分為兩類,一類都是蘋果,一類都是杏,這樣熵直接等于0。
這個特點就是所謂的信息增益,熵降低的越多,信息增益的就越多。很多時候都不會發(fā)生上述說的這個極限情況,就像文章一開始舉的例子,根據形狀劃分后,熵變小了,但是未等于0,比如剛開始三類水果的熵等于0.69,現在根據形狀分裂后,熵等于了0.4,所以信息增益為0.69 – 0.4 = 0.29 。如果根據大小劃分,信息增益為0.1,那么我們回考慮第一個分裂特征:形狀。
這種方法有問題嗎?
3 信息增益越大,分類效果越好?
這是只根據信息增益選擇分裂特征點的bug,請看下面舉例。
如果某個特征是水果的唯一標示屬性:編號,那么此時如果選擇這個特征,共得到100個葉子節(jié)點(假設這堆水果一共有100個),每個葉子節(jié)點只含有1個樣本,并且此時的信息增益最大為 0.69 – 0 = 0.69 。
但是,這是好的分類嗎? 每一個樣本作為單獨的葉子節(jié)點,當來了101號水果,都不知道劃分到哪一個葉子節(jié)點,也就不知道它屬于哪一類了!
因此,這個問題感覺需要除以某個變量,來消除這種情況的存在。
它就是信息增益率,它不光考慮選擇了某個分裂點后能獲得的信息增益,同時還要除以分裂出來的這些節(jié)點的熵值,什么意思呢? 剛才不是分裂出來100個節(jié)點嗎,那么這些節(jié)點自身熵一共等于多少呢:
再除以上面這個數后,往往信息增益率就不會那么大了。這就是傳說中的從ID3 到 C4.5 的改進。
4 與熵的概念類似的基尼系數
只需要知道基尼系數和熵差不多的概念就行了,只不過量化的公式不同而已,這就說明理解了,至于公式長什么樣子,用的時候去查就行了。
讓我們看一下遠邊的大海,和海邊優(yōu)美的風景,放松一下吧!
5 展望
以上介紹了決策樹的一些概念和分裂點選取的基本方法。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數的日期轉換:從基礎用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數據處理中,日期格式轉換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關聯查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數據庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數據分析師:表結構數據 “獲取 - 加工 - 使用” 全流程的賦能者 表結構數據(如數據庫表、Excel 表、CSV 文件)是企業(yè)數字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數據分析師:解鎖表結構數據特征價值的專業(yè)核心 表結構數據(以 “行 - 列” 規(guī)范存儲的結構化數據,如數據庫表、Excel 表、 ...
2025-09-17Excel 導入數據含缺失值?詳解 dropna 函數的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數據時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數據分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數據差異是否 “ ...
2025-09-16CDA 數據分析師:掌控表格結構數據全功能周期的專業(yè)操盤手 表格結構數據(以 “行 - 列” 存儲的結構化數據,如 Excel 表、數據 ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數據分析師:激活表格結構數據價值的核心操盤手 表格結構數據(如 Excel 表格、數據庫表)是企業(yè)最基礎、最核心的數據形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調用、數據爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數據的科學計數法問題 為幫助 Python 數據從業(yè)者解決pd.read_csv讀取長浮點數據時的科學計數法問題 ...
2025-09-12CDA 數據分析師:業(yè)務數據分析步驟的落地者與價值優(yōu)化者 業(yè)務數據分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數據把關的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數據驅動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數據分析師與戰(zhàn)略 / 業(yè)務數據分析:概念辨析與協(xié)同價值 在數據驅動決策的體系中,“戰(zhàn)略數據分析”“業(yè)務數據分析” 是企業(yè) ...
2025-09-11Excel 數據聚類分析:從操作實踐到業(yè)務價值挖掘 在數據分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數據中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數據解讀到決策支撐的價值導向 統(tǒng)計模型作為數據分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10