決策樹演算法在醫療、控制領域早有應用。最近興起熱潮的無人駕駛路徑規劃演算法中,決策樹更是佔據了一席之地。只是在動力鋰電池的SOC估計中,應用有限,並且必須與其他方法結合適用。

1 決策樹原理

在機器學習領域,決策樹經常被用於預測和分類,用來描述樣本屬性和分類之間的關係。在決策樹上,每個非葉子節點代表一個目標屬性,每個葉節點代表一種樣本分類。上層節點必須覆蓋下層節點屬性。決策樹的工作,就是從無次序無規則的樣本數據中推測出規則,再用規則去分類其他數據。

決策樹的分類過程從樹的根節點開始,根據樣本特性和分類關鍵參數的匹配選取樹枝,樹枝決定下一個樣本分割節點在哪。直至到達了葉節點,樹枝的選擇過程才能終止。葉節點的輸出就是分類結果,一般是一個判斷,「Yes」或者「No」。

決策樹的構建,是建立在對訓練數據規律的歸納總結基礎上的,訓練的過程就是決策樹獲得分列規則(樹杈)和最終分類(樹葉)的過程。每一次訓練,決策樹擬合併逼近訓練數據集所屬的離散函數,訓練數據很大程度上決定了決策樹的樣貌和質量。

決策樹本來只能解決離散化問題,連續取值問題想要應用決策樹進行分類,需要首先進行離散化。離散化的數量和每個離散點的具體取值,都會對決策樹模型產生影響。

1.1 決策樹工作過程

1) 利用已知樣本訓練決策樹,直到它產生一套分類方法;

2) 使用測試樣本對成型的分類樹進行測試,如果分類效果不滿意,則重新訓練。不斷重複,直到取得理想分類效果為止;

3) 運用成熟的決策樹去解決新的分類問題。

1.2 構造決策樹的關鍵問題

理想的決策樹是,葉子節點的數量最少,且葉子的深度最小。也就是最小的計算量實現最複雜的分類功能。決策樹的構造總體說,分兩步,首先是選擇樹杈的分列原則;其次是樹的剪枝。

分列原則的選擇,就是確定一個排序,排列訓練集中數據所具備的所有特點中,最優先考察哪個參數,以參數的不同適合水平,作為樣本的劃分依據。人們把分列原則的不同,作為決策樹不同類型的標誌。

決策樹剪枝,訓練數據集中包含有雜訊和一些異常數據,表現為決策樹出現離群的樹葉,為了去除非正常數據對分類模型的干擾,決策樹需要剪枝。按照實施剪枝的時間點不同,剪枝可以分為先剪枝和後剪枝兩種。先剪枝,是在樹的生長過程中,程序判斷這個節點的位置已經偏離,則把節點的性質改成樹葉,其後不再有分叉;後剪枝,是在整個決策樹構造完成以後,刪除離群的節點,並用樹葉替代。此外,還有一些剪枝方法,擴展測試集方法、選擇不同的測試集評價函數、使用資料庫約束、將決策樹轉化成另一種數據結構等。幾種剪枝方法可以複合使用,提高剪枝的效力。

1.3 決策樹的過度擬合問題

過度擬合問題主要出現在訓練數據集規模比較小或者比較集中於目標空間的某一個局部的情形。決策樹根據訓練樣本推理出集合空間,如果沒有人為干預,給予數據空間的額外信息,同時又出現了大量數據與空間假設相吻合,則構造成型的決策樹將無法掌握整個數據空間的完整正確信息,使得其後對新數據的分類出現偏頗。這個過程就是過度擬合。

2 決策樹分類

決策樹的分類基礎從樹杈的分列原則而來,種類繁多,應用比較廣泛的是下面幾種。

CLS概念學習系統,決策樹演算法從概念學習系統演算法演化而來。CLS從一個空的決策樹開始構建樹,按照集合中最鮮明的特徵將數據劃分成若干組,然後在每組內遞歸調用同一個判別原則,最終使得每組數據中只包含同一個類型的數據。CLS演算法不能處理過大的問題。

ID3演算法,是真正決策樹演算法的開端,並且是最成熟的一種演算法,主要解決離散數據分類問題。ID3演算法的核心是判斷哪個屬性是最佳的分類屬性,其主要手段是計算按照每一種屬性分類後,系統的信息增益情況,最後按照增益小的屬性進行分裂。

C4.5 演算法,是ID3的改進版,可以處理連續型屬性數據集,方法是將數據增序排列,從兩個數據的中點斷開,而後按照離散數據處理,計算分裂增益。另一個改進之處,用增益率替代增益值本身,避免了訓練數據量大小對增益的影響。

其餘常見的決策樹演算法還有 CART演算法、SLIQ演算法、SPRIN T演算法等,以後有機會繼續學習。主要決策樹的特點對比表格如下:

3 決策樹與其他智能演算法的比較優勢

理論上,決策樹可以解決任意維問題;

構建決策樹質量的高低,主要取決於訓練數據集的質量,而不像模糊演算法一類的方法,需要人類經驗邏輯去構建模型的基本框架。

4 決策樹在SOC估計中的應用

決策樹在動力鋰電池荷電量SOC估計中的應用案例不多。下面內容來自一篇文獻。作者張澤宇在其論文《基於決策樹模糊等效電路模型的鋰電池SOC估計方法》中介紹了將決策樹應用於SOC估計的實現過程。SOC的具體計算方法採用擴展卡爾曼濾波演算法,這個演算法需要一個模型估計值和一個觀測參數的計算值,將兩個值加權平均得到某一個時刻的計算值,然後以這個計算值為基礎,向下一個估計點移動。EKF的模型具體到本文,作者則採用變參數的等效電路模型。

論文的整體想法是,通過觀察充放電實驗過程中的數據特點,建立鋰電池電路模型;實際經驗中,鋰電池的性能不是一成不變的,溫度的變化會帶來模型參數的變化。為了描述這種變化,作者期望創建模型參數跟隨環境變數進行調整的等效電路模型,具體手段就是利用決策樹和模糊邏輯的方法。

電路模型設計成恆壓源串聯純電阻,再串聯兩組RC電路的形式,模型可變的參數分別為串聯純電阻阻值,每組RC器件的阻值和容值。在模型中辨識以上參數,提供給EKF做計算,參數辨識過程,全部由決策樹實現,如上圖所示的決策過程。而SOC與模型參數的具體函數關係,則由模糊演算法通過學習實驗數據得到。決策過程從樹的根節點開始,根據不同的溫度,區分SOC與鋰電池等效電路模型不同關係。溫度是個連續變數,文章採用C4.5演算法進行相關推算。

參考

1 葉萌,決策樹學習研究綜述

2 路紅梅,基於決策樹的經典演算法綜述

3 陳敏雅,基於SVM多分類決策樹的研究綜述

4 基於數據挖掘技術的在線學習行為研究綜述

5 韓松來,決策樹的屬性選取策略綜述

6 張澤宇,基於決策樹模糊等效電路模型的鋰電池SOC估計方法

7 王強,決策樹過擬合問題研究

(圖片來自互聯網)


推薦閱讀:
相关文章