點一下關注吧!!!非常感謝!!持續更新!!!
大模型篇章已經開始!
- 目前已經更新到了第 22 篇:大語言模型 22 - MCP 自動操作 Figma+Cursor 自動設計原型
Java篇開始了!
- MyBatis 更新完畢
- 目前開始更新 Spring,一起深入淺出!
目前已經更新到了:
- Hadoop(已更完)
- HDFS(已更完)
- MapReduce(已更完)
- Hive(已更完)
- Flume(已更完)
- Sqoop(已更完)
- Zookeeper(已更完)
- HBase(已更完)
- Redis (已更完)
- Kafka(已更完)
- Spark(已更完)
- Flink(已更完)
- ClickHouse(已更完)
- Kudu(已更完)
- Druid(已更完)
- Kylin(已更完)
- Elasticsearch(已更完)
- DataX(已更完)
- Tez(已更完)
- 數據挖掘(已更完)
- Prometheus(已更完)
- Grafana(已更完)
- 離線數倉(已更完)
- 實時數倉(正在更新…)
- Spark MLib (正在更新…)
Bagging和Boosting區別
數據方面
● Bagging:對數據進行采樣訓練
● Boosting:根據前一輪學習結果調整數據的重要性
投票方面
● Bagging:所有學習器平權投票
● Boosting:對學習器進行加權投票
學習順序
● Bagging:學習是并行的,每個學習器沒有依賴關系
● Boosting:學習是串行的,學習有先后順序
主要作用
● Bagging:主要用于提高泛化性能,解決過擬合
● Boosting:主要用于提高訓練精度,解決欠擬合
GBDT
基本介紹
GBDT的全稱是:Gradient Boosting Decision Tree,梯度提升樹,在傳統機器學習算法中,GBDT算的上是TOP3的算法。
Decision Tree
無論是處理回歸問題還是二分類還是多分類問題,GBDT使用的決策樹統統都是CART回歸樹。
對于回歸樹算法來說最重要的是尋找最佳的劃分點,那么回歸樹中可劃分點包含了所有的特征的所有可取的值。
在分類樹中最佳劃分點的判斷標準是熵或者基尼系數,都是純度來衡量的,但是在回歸樹中的樣本標簽華四連續數值,所以再使用熵之類的指標不再合適,取而代之的是平方誤差,他能很好的評判擬合程度。
回歸決策樹
不管是回歸決策樹還是分類決策樹,都會存在兩個問題:
● 如何選擇劃分點?
● 如何決定葉節點的輸出值?
一個回歸樹對應輸入空間(即特征空間)的一個劃分以及在劃分單元上的輸出值。分類決策樹中,采用的信息論中的方法信息增益以及信息增益率,通過計算選擇最佳劃分點。
在回歸樹中,采用的是啟發式的方法,假設數據集有 n 個特征:
假設將輸入空間劃分為M個單元,R1、R2…Rm,那么每個區域的輸出值就是:cm = avg(yi | xi ∈ Rm) 也就是該區域內所有點y值的平均數
舉例:
如下圖,加入要對樓內居民的年齡進行回歸,將樓劃分為3個區域R1,R2,R3,那么R1的輸出就是第一列居民年齡的平均值,R2輸出的就是第二列居民年齡的平均值,R3的輸出就是第三、四列八個居民年齡的平均值
算法流程
輸入:訓練數據集D
輸出:回歸樹 f(x)
在訓練數據集所在的輸入空間中,遞歸的將每個區域劃分為兩個子區域并決定每個子區域上的輸出值,構建二叉決策樹:
1.選擇最優切分特征j與切分點s,求解:
遍歷特征j對固定的切分特征j掃描切分點s,選擇使得上式達到最小值的對(j,s)
2.用選定的對(j,s)劃分區域并決定相應的輸出值:
3.繼續對兩個子區域調用步驟(1)和(2),直到滿足停止條件。
4.將輸入空間劃分M個區域 R1,R2…Rm,生成決策樹:
測試案例
通過一個實例加深對回歸決策樹的理解
訓練數據
訓練數據見下表
計算過程
選擇最優的切分特征j與最優切分點s:
● 確定第一個問題:選擇最優切分特征:在本數據集中,只有一個特征,因此最優切分特征自然是X
● 確定第二個問題:我們考慮9個切分點[1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5]:損失函數定義平方損失函數 Loss(y,f(x))= (f(x) - y) -y)^2,將上述9個切分點依次帶入下面的公式 cm=avg(yi | xi ∈ Rm)
計算子區域的輸出值:
例如:取 s = 1.5,此時 R1 = {1}, R2 = {2,3,4,5,6,7,8,9,10},這兩個區域的輸出值分別為:
● c1 = 5.56
● c2 = (省略…) = 7.50
同理,可以得到其他各切分點的子區域輸出值,如下表所示:
計算損失函數值,找到最優切分點:
把c1,c2的值代入到同平方損失函數 Loss(y, f(x)) = (f(x)- y) ^ 2
當 s = 1.5 時
同理,計算得到其他各切分點的損失函數值,可獲得下表:
顯然取 s = 6.5 時,m(s)最小,因此,第一個劃分變量【j=x, s=6.5】
用選定的 (j, s) 劃分區域,并決定輸出值:
● 兩個區域分別是 R1={1,2,3,4,5,6}, R2={7,8,9,10}
● 輸出值 cm = avg(yi | xi ∈ Rm),c1 = 6, c2 = 8.91
調用步驟(1)、(2),繼續劃分,對R1繼續劃分:
取切分點[1.5,2.5,3.5,4.5,5.5],則各區域的輸出值c如下表:
計算損失函數m(s):
s=3.5,m(s)最小。
生成回歸樹:
假設在生成3個區域之后停止劃分,那么最終生成的回歸樹形式如下: