決策樹算法(一)——一些重要的數學概念


寫在前面的話      

趁着現在我還是高中數理化老師,偶爾兼職英語老師的時候趕緊抓緊時間寫點有關計算機科學技術的東西。一來是表示我對計算機的熱愛,二來,當然是最重要的咯,滿足一下我強大的虛榮心。哈哈哈哈!想想高中數學物理化學老師在折騰計算機,是不是有種瞬間吊炸天的感覺。  

這個系列我寫了一個月了,之后會陸陸續續的放出來的。希望對大家有一點點幫助。如果您沒有看懂我在寫啥,那一定是我錯了,講的不夠清楚。世界上沒有什么知識點是難的,只是看你知識儲備和理解力達到了相應的水平沒有。至少我是這么認為的。

當然,您要是覺得我寫的有啥不好的,使勁的噴,隨便噴,帶着憤怒的情緒狂噴都沒有問題!把問題告訴我,讓我有所進步,讓大家一起進步,那真真是極好的!


1.背景知識


在我們談論決策樹的時候我們先來玩一個游戲好咯。 
2016年是奧運年,我最喜歡的兩個運動員,(內心戲:當然是女的咯。因為我也是妹子,哈哈哈。)一個當然是女王隆達羅西,還有一個就是伊辛巴耶娃咯。

好的,現在我們就來玩猜運動員的游戲。

我在心里想一個運動員的名字,比如說就是伊辛巴耶娃。然后你有20次的提問機會,但是我只能回答你是還是不是這兩種可能。

我們可以這樣對話: 
你:男的? 
我:不是 
你:參加過往屆奧運會? 
我:是 
你:參加過兩次? 
我:不是 
你:參加過三次? 
我:是 
你:參加的是田賽 
我:是 
你:耶辛巴伊娃 
我:恭喜你,答對了!

以上我們玩的這個過程就有一點點像決策樹算法

我們經常使用決策樹處理分類問題,近年來,決策樹也是經常使用的數據挖掘的算法。

決策樹的概念是非常簡單的,我們可以通過一個圖形來快速的了解決策數。我用了《機器學習與實戰》這本書的內容來講解。如圖1所示,下面的這個流程圖就是一個決策樹,正方形代表的是判斷模塊(decision block),橢圓形代表的是終止模塊(terminating block),表示已經得出結論,可以終止運行,從判斷模塊引出的左右箭頭稱作分支(branch)



這是一個假想的郵件分類系統。首先這個系統會檢測發送郵件的域名地址,如果地址為myEmployer.com 則將郵件歸類到“無聊時需要閱讀的郵件”如果沒有這個域名我們就檢查郵件中的內容是不是包含了“曲棍球”的郵件。如果包含則把這些郵件放置在“需要及時處理的朋友郵件”,否則就把這些郵件歸類到“無需閱讀的垃圾郵件”

2.構造決策樹

根據上面的描述我們已經發現構造決策樹做分類的時候首要目的就是每次分類的時候都能找到最容易區分一個集合和另一個集合的特征。在上面例子中,我們首先就是查找郵件的域名,在第一次分類的時候,郵件的域名就是我們最重要的分類特征。

為了找到決定性的特征,划分出最好的結果,我們必須評估每個特征,完成測試之后,原始數據集就被划分為幾個數據子集。根據我們挑選出的最佳特征,這些數據會被分成兩類。我們分別檢測這兩類,如果類別相同則不需要再次划分,如果類別不同,我們要重復上面的步驟。就是在被划分出的子集當中在挑選其他的重要特征把這些數據在細分成其他的類別。

根據這個描述,我們可以很容易發現這個過程就是一個遞歸的過程,怎么找到這些最佳特征,我們要做的事情就需要了解一些數學概念。我們需要用到信息論的知識來划分數據集。



3.一些需要了解的數學概念

划分數據集的原則就是:將無序的數據變得更加有序。我們可以有多種方法來划分數據,在這里我們構建決策樹算法使用的是信息論划分數據集,然后編寫代碼將理論應用到具體的數據集上,然后編寫代碼構建決策樹。我們在組織雜亂無章的數據時使用信息論度量信息。


比如我給出一條信息:

我愛你1314.

這就是一條簡單的信息,這個時候我們可以對這個信息做一些分類,比如說找出這句話中的動詞,數字,以及代詞,名詞等。我們要知道的就是 信息處理就是將雜亂無章的信息用數理統計的方法表示出來。

在這里我們可以將這個信息分成 三類: 代詞(名詞),動詞,以及數字,我們用X1表示代詞,X2表示動詞,X3表示數字,p(xi)表示的是這個分類在這個信息當中出現的概率。那么我們就可以將信息定義為:


高中畢業的人都知道吧,概率p(Xi)是一個分數,然后對數函數以2為基底,它是比1大的,如果冪是分數,基底是大於1的那個這個值是個負數。為了方便處理,前面添加負號。

信息熵,簡稱熵是用來表示信息的期望值得。


3.1 信息熵


根據百科詞條的定義,我們先來看一下信息論中的一下基本概念

信息論:
信息論是運用概率論與數理統計的方法研究信息、信息熵通信系統、數據傳輸、密碼學數據壓縮等問題的應用數學學科。信息系統就是廣義的通信系統,泛指某種信息從一處傳送到另一處所需的全部設備所構成的系統。

1948年,香農提出了“信息熵”的概念,解決了對信息的量化度量問題。信息熵這個詞是C.E.香農從熱力學中借用過來的。熱力學中的熱熵是表示分子狀態混亂程度的物理量。香農用信息熵的概念來描述信源的不確定度。

我們可以用信息熵來度量信息量的多少。
在給出信息熵的計算公式的時候,我想先說幾個基本的概念,以便於你理解信息熵的計算公式。



3.2隨機變量

我們可以先看下面的一些問題。 
某人射擊一次,可能出現命中0環,命中1環…,命中10環等結果。即可能出現的結果可以由0,1,2,3,4,5,6,7,8,9,10這11個數來表示。

在某次的產品檢驗中,在可能含有次品的100件產品中任意抽取4件來檢驗,那么其中含有的次品可能的是0件,1件,2件,3件,4件,即可能出現的結果可以由0,1,2,3,4這5個數來表示。

我們把上面這些事件稱為隨機實驗,隨機實驗想要得到的結果(例如射擊一次命中的環數)可以用一個變量來表示的話,那么這樣的變量就叫做隨機變量(random variable)

隨機變量的一些特征: 
1. 可用數表示 
2. 實驗前可判斷出所有可能取值 
3. 實驗前不能判斷具體取哪個值 
4. 所有可能值按照某種順序列出

離散型隨機變量 
隨機變量的取值是可以一一列出的比如上面所說的射擊事件

連續型隨機變量 
那就是取值不能一一列出的咯,比如說一天內氣溫的變化量

推廣
一般地,如果X是隨機變量,若有Y=f(X),則Y也是隨機變量


 

3.3數學期望

在概率論中,數學期望簡稱期望,通俗的說就是平均值,它表示的是隨機變量的取值的平均水平。

計算的公式 
X1,X2,X3,……,Xn為這離散型隨機變量,p(X1),p(X2),p(X3),……p(Xn)為這幾個數據的概率函數。在隨機出現的幾個數據中p(X1),p(X2),p(X3),……p(Xn)概率函數就理解為數據X1,X2,X3,……,Xn出現的頻率f(Xi).則: 
E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn) = X1*f1(X1) + X2*f2(X2) + …… + Xn*fn(Xn)

上面的這個看着有點惡心,我們來溫故一下當年高中數學課本中的東東,分分鍾暴露了年齡的數學課本啊,但是還是很喜歡
(在這里我們主要考慮離散型隨機變量)

總而言之,數學期望就是隨機變量的取值乘以在隨機實驗中這個隨機變量取到的概率。

推廣一下



下面來舉個例子




如果你已經理解了數學期望,隨機變量這些概念那么我們就來說說信息熵的計算。

都說了熵是表示信息的期望值,信息的期望值,信息的期望值,如果您已經看懂了數學期望怎么算,那么你應該會很容易理解信息熵會怎么計算。

還是剛才那個例子,我們給出了一個信息:我愛你1314,然后把這個信息分為三類,然后我們要計算這個信息的熵。

那是不是就要計算這個信息所有類別的可能值得數學期望了。
那么熵的公式就是下面這個樣子的:



其中n表示的是這個信息被分為n類。

3.4 信息增益(information gain)

     在划分數據集之前之后信息發生的變化稱為信息增益,知道如何計算信息增益,我們就可以計算每個特征值划分數據集獲得的信息增益,獲得信息增益最高的特征就是最好的選擇。
     講完這個我們現在應該要學會怎么計算信息增益了,下一章再講吧。實在是打不動這么多字了,下一章我們就開始愉快的寫代碼了~

寫在后面的話


你必須非常努力,才可以看起來毫不費力~
 
轉自:http://blog.csdn.net/Grace_0642/article/category/6307710


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM