獨家 | 熵–數據科學初學者必知的關鍵概念(附連結)

2021-01-16 數據派THU

本文為大家介紹了熵的概念、計算及其在決策樹算法中的應用。

熵是機器學習的關鍵概念之一。對於任何機器學習愛好者來說,這都是必知的,但許多人對此概念仍感到困惑。本文的重點是,通過探究概率論的基本概念、公式的邏輯與意義、以及其對決策樹算法的重要性來了解熵的作用。熵一詞最早由德國物理學家、數學家魯道夫·克勞修斯(Rudolf Clausius)提出,並在熱力學領域中使用。1948年,數學家兼電氣工程師香農(Claude E. Shannon)發表了一篇關於「通信的數學理論」的論文,解決了信息度量、選擇和不確定性的問題。香農開創了資訊理論領域,因此也被稱為「資訊理論之父」。「資訊理論,是一種研究信息編碼以及信息的量化、存儲和交流的數學方法。」在他的論文中,以數學方式測量了通信信號中「丟失信息」的統計性質。這項工作的目的是,探究如何最好地編碼發送者想要傳輸的信息。為此,香農開發了信息熵作為一種估計消息中信息內容的方法,這是衡量消息丟失的不確定度的一種方法。熵一詞的英文含義是:它是一種無序(disorder)、混亂(confusion)、無組織(disorganization)的狀態。首先,什麼是信息(information)?我所說的「信息」是什麼?簡而言之,信息是從某物或某人中學到的一些事實。理論上講,我們可以理解為,信息是可以作為變量存儲、傳輸或傳遞的,可以取不同的值。換言之,變量只是存儲單位。因此,我們通過查看變量的值,從變量中獲取信息,就像通過讀取消息或信件的內容,從消息或信件中獲取細節(或信息)。熵的計算,可以基於變量中存在的不同值的數量(信息量),也可以基於變量值所具有的驚奇度(surprise)。假設您此刻收到一條消息,若該消息是先前文本的重複,則該消息完全沒有提供信息;但若該消息透露了美國大選的結果,則該消息無疑是非常有用的。這告訴我們,消息或文本中的信息量,與其中可提供的驚奇度成正比。因此,可以直觀理解,信息的這種存儲、傳輸或傳遞,與該變量中的信息量有關。現在,擴展到某個事件的結果。例如,事件是投擲一枚硬幣,它將有兩個公平的、同樣可能的結果,該結果提供較少的信息。換言之,由於硬幣的結果將是正面或反面,因此具有較少的驚奇度。因此,投擲一枚硬幣具有較低的熵。在資訊理論中,隨機變量的熵,是變量可能結果中固有的「信息量」、「驚奇度」或「不確定度」的平均水平。即,事件越具確定性,它包含的信息將越少。簡言之,信息是不確定度或熵的增加。那麼這些理論,對我們有哪些幫助呢?我們如何將其應用到機器學習模型中?為了理解這一點,首先讓我們快速了解一下決策樹算法。決策樹(Decision Tree)是一種監督學習技術,是一種分層的if-else語句,它僅是規則的集合,或者也稱為基於條件比較運算符的拆分條件。決策樹算法廣泛應用於回歸和分類問題。以下示例將汽車類型二分為轎車和運動卡車,應用決策樹算法找到因變量(response variable)與預測變量(predictors)之間的關係,並以樹形結構的形式表示該關係。

圖片來源:https://media.springernature.com/original/springer-static/image/prt%3A978-1-4614-8265-9%2F19/MediaObjects/978-1-4614-8265-9_19_Part_Fig2-555_HTML.png


該流程圖由根節點(Root node)、分支節點(Branch nodes)和葉子節點(Leaf nodes)組成。根節點是原始數據,分支節點是決策規則,而葉節點是決策的輸出,且這些節點無法進一步劃分為分支。因此,它是基於某些條件或作為所述規則的問題的所有可能結果的圖形描述。通過創建自上而下的樹來訓練模型,繼而使用該訓練後的決策樹來測試新數據,以將其分為一個類別。需要注意的是,通過設計,決策樹算法會嘗試構建因變量中最小葉子節點是同質的樹。目標變量的同質性(homogeneity)意味著結果中只有一種類型的記錄,即在葉子節點中,該記錄傳達的是轎車或是運動卡車。有時,難點在於,樹是受限的,即樹被迫停止構建,以將分支分解為更小的葉子節點。在這種情況下,目標變量不是同質的,結果仍然是汽車類型(轎車和運動卡車)的混合。那麼對於決策樹算法,應如何選擇特徵?在該特徵中以什麼閾值來構建樹?為了回答這個問題,我們繼續學習機器學習算法中損失函數(loss function)的概念。決策樹算法通過優化損失函數從數據集中創建樹。在分類問題的情況下,損失函數用以度量根節點的目標列中的不純度(impurity)。不純度是指我們在上述討論的信息中可獲得的驚奇度或不確定度。在給定節點上,不純度用以度量Y變量中不同類別的混合物(在我們的例子中,即不同汽車類型的混合)。因此,不純度也稱為在信息中或每個節點上存在的異質性(heterogeneity)。我們的目標是在葉子節點(或最終結果)上儘可能減少這種不純度。這意味著目標函數是減少目標列中的不純度(即驚奇度或不確定度),換言之,是在給定數據的每個分支處增加Y變量的同質性(homogeneity)。要了解目標函數,我們需要了解如何計算目標列的不純度。有兩個指標:熵和基尼係數。除此之外,為了回答先前關於決策樹如何選擇特徵的問題,有多種拆分方法,包括熵、基尼係數、卡方。鑑於本篇的重點是熵,我們將進一步探討,熵如何幫助創建樹。假設現在進行一項實驗:有一盒裝滿相等袋數的、兩種口味(焦糖拿鐵和卡布奇諾)的咖啡。您可以閉眼選擇盒中的一袋咖啡,如果您獲得的是焦糖拿鐵,那麼您可以自由停止閱讀本文;如果您獲得的是卡布奇諾,那麼您將必須閱讀全文。如果盒中只有焦糖拿鐵和卡布奇諾兩種咖啡,那麼我們知道結果將是什麼,因此不確定度(或驚奇度)將為零。獲得焦糖拿鐵或卡布奇諾的概率為:P(咖啡==卡布奇諾)= 1–0.50 = 0.50如果盒中只有焦糖拿鐵一種咖啡,在沒有不確定度的情況下,事件發生概率為:

即,異質性與不確定度之間存在聯繫:事件的異質性越大,不確定度就越大;反之,事件的同質性越大,不確定度就越小。不確定度表示為熵(Entropy)或基尼係數(Gini)。


香農(Claude E. Shannon)通過以下方程式,以數學形式表達了概率與異質性或不純度之間的這種關係:(或)不確定度或不純度表示為類別的概率以2為底的對數;索引(i)表示可能的類別數(在我們之前的汽車類型二分例子中i=2)。

圖片來源:https://ccweb.imgix.net/https%3A%2F%2Fccweb.imgix.net%2Fhttps%253A%252F%252Fimg.youtube.com%252Fvi%252F6YEn9QRy3ks%252Fhqdefault.jpg%3Fauto%3Dformat%26cs%3Dstrip%26fit%3D%26h%3D710%26ixlib%3Dphp-3.3.0%26w%3D400%26s%3D80849c8a862b1138109a23bffe2f42ee?auto=format&ixlib=php-3.3.0&s=c1f6104029dafc383ef2e31bd9faa5f4在X軸上是事件的概率,在Y軸上表示異質性(由H(X) 表示的不純度)。我們將詳細探討該曲線的意義,然後計算咖啡口味實驗的熵。

具有一個非常獨特的屬性,即當只有兩個結果時,例如事件的概率=為1或0.50,則在這種情況下,取值如下(忽略負數):


當概率變為0時,對數值趨於無窮大,曲線的形狀變為:



但是,我們不希望出現上述情況,因為熵或不純度的測度只能取0~1的值(概率範圍為0~1)。因此,為了使曲線和的值恢復為零,我們將與概率(即本身)相乘。因此,表達式變為返回負值,為了消除這種負效應,我們將結果乘以負號,最後,方程式即為:現在,該方程式可用於顯示不確定度如何根據事件發生的可能性而變化。曲線如下:


熵從0到1的取值範圍,是針對二分類問題的。對於多分類問題,上述關係式仍然成立,但是取值規模可能會發生改變。


Python中的熵計算


我們仍然以前述的咖啡事件示例,計算三種不同情況下的熵值。事件Y表示獲得焦糖拿鐵。兩種口味類別的異質性或不純度公式如下:


其中,表示Y=1的概率,即事件(獲得焦糖拿鐵)發生的概率,表示Y=0的概率,即事件(獲得焦糖拿鐵)未發生的概率。


情況一:




在情況一中,當盒中裝有7袋焦糖拿鐵和3袋卡布奇諾咖啡時,要求選擇其中一個。熵值0.881即對該事件不確定度的度量。


情況二:


情況三:




在情況二和三中,可以看到熵值分別為1和0。在情況三中,當盒中只有一種口味的咖啡(焦糖拿鐵)時,不確定度或驚奇度也將被完全消除,從而熵值為零。

那麼,決策樹算法是如何使用這種計算方式來構建樹的?如上所述,在決策樹中,損失函數最小化葉子節點中的異質性。因此,目標是選擇特徵,並在特徵中以閾值來構建樹,以便在將數據分為兩部分時,獲得最大可能的同質性,換言之,目標是使樹的熵值最小化。在根節點上,通過香農的熵計算方程式,計算目標列的熵。在分支節點上,為目標列計算加權熵。加權熵意味著每個特徵取權重(每個類別的概率)。熵值越小,獲得的信息越多。

信息增益(Information Gain)即是在數據中觀察到的模式,亦即熵的減少。也可以視為父節點的熵減去子節點的熵,計算方式為(1–加權熵)。


前述示例中,三種情況的熵和信息增益計算如下:



假設有下面的樹,在根節點中共有四個值,子節點1中具有3個值(分支1具有2個值,分支2具有1個值),子節點2中具有1個值。根節點的熵為1。

圖片來源:https://media.geeksforgeeks.org/wp-content/uploads/tr4.png

此時,子節點2(child node 2)的熵為0,因為該節點中只有1個值,不存在異質性。子節點1的熵計算如下:

信息熵(香農熵)量化了隨機變量的值或隨機過程的結果中涉及的不確定度(驚奇度)。它在決策樹中的意義在於,使我們能夠計算目標變量的不純度或異質性。繼而,為了在因變量中達到最大的同質性水平,以使子節點的總熵必須小於父節點的熵的方式創建子節點。


參考資料

https://en.wikipedia.org/wiki/Claude_Shannon

https://en.wikipedia.org/wiki/Information_theory

https://en.wikipedia.org/wiki/History_of_entropy#Information_theory

Entropy – A Key Concept for All Data Science Beginnershttps://www.analyticsvidhya.com/blog/2020/11/entropy-a-key-concept-for-all-data-science-beginners/

劉思婧,清華大學新聞系研一在讀,數據傳播方向。文理兼愛,有點小情懷的數據愛好者。希望結識更多不同專業、不同專長的夥伴,拓寬眼界、優化思維、日日自新。

工作內容:需要一顆細緻的心,將選取好的外文文章翻譯成流暢的中文。如果你是數據科學/統計學/計算機類的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友歡迎加入翻譯小組。

你能得到:定期的翻譯培訓提高志願者的翻譯水平,提高對於數據科學前沿的認知,海外的朋友可以和國內技術應用發展保持聯繫,THU數據派產學研的背景為志願者帶來好的發展機遇。

其他福利:來自於名企的數據科學工作者,北大清華以及海外等名校學生他們都將成為你在翻譯小組的夥伴。


點擊文末「閱讀原文」加入數據派團隊~

轉載須知

如需轉載,請在開篇顯著位置註明作者和出處(轉自:數據派ID:DatapiTHU),並在文章結尾放置數據派醒目二維碼。有原創標識文章,請發送【文章名稱-待授權公眾號名稱及ID】至聯繫郵箱,申請白名單授權並按要求編輯。

發布後請將連結反饋至聯繫郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。

點擊「閱讀原文」擁抱組織


相關焦點

  • 入門|數據科學初學者必知的NumPy基礎知識
    本文介紹了一些 NumPy 基礎知識,適合數據科學初學者學習掌握。NumPy(Numerical Python)是 Python 中的一個線性代數庫。對每一個數據科學或機器學習 Python 包而言,這都是一個非常重要的庫,SciPy(Scientific Python)、Mat-plotlib(plotting library)、Scikit-learn 等都在一定程度上依賴 NumPy。對數組執行數學運算和邏輯運算時,NumPy 是非常有用的。在用 Python 對 n 維數組和矩陣進行運算時,NumPy 提供了大量有用特徵。
  • 熵的世界你不懂?----熵的概念辨析(1)
    熵,--一個難以理解和應用的概念。
  • 講點物理:談談熵 哈利波特的魔法科學
    中國小康網 獨家專稿我們在科幻裡面經常看到一些現實中不容易看到的神奇景象,比如《哈利·波特》裡面的魔棒。問題的答案,全在一個「熵」字。什麼是熵?熵是物理學中最重要的概念之一,重要性僅次於能量。熵是度量系統的混亂度。比如一個箱子中的空氣,一種情況是分子聚集在箱子一角,還有一種情況是分子遍布於箱子的每一個角落。那麼毫無疑問,所有分子聚集在箱子一角的情況較為有序——換句話說就是,熵比較小;而箱子裡遍布分子的情況,則較為混亂——換句話說就是,熵比較大。系統變得混亂,熵也隨之增大。
  • 微軟再推免費在線 Python 教程,面向數據科學和機器學習初學者
    去年九月,微軟曾面向 Python 初學者,推出了一套免費的教程視頻。從基本介紹和 VS Code 的配置講起,循序漸進語法概念等基礎內容講解。目前為止,該系列視頻播放量已達到將近 180 萬次。近日,微軟在此基礎上,再度更新兩個針對 Python 初學者的系列教程,作為對之前教程的補充,或者說是進階。因此,這兩個新的系列面向的不完全是純粹的 Python 新手,而是對 Python 稍有了解,並可能有其他語言的編碼經驗的人。
  • 獨家 | 教你使用torchlayers 來構建PyTorch 模型(附連結)
    附連結:https://github.com/szymonmaszke/torchlayers與Keras中的操作類似,上述的操作不需要用戶幹預(除了調用一次torchlayers.build)。Models Easily Using torchlayers原文連結:https://www.kdnuggets.com/2020/04/pytorch-models-torchlayers.html如您想與我們保持交流探討、持續獲得數據科學領域相關動態,包括大數據技術類、行業前沿應用、講座論壇活動信息、各種活動福利等內容,敬請掃碼加入數據派THU粉絲交流群,
  • 到底什麼是「熵」?----熵的概念辨析(5)
    到底什麼是「熵」? 以前的介紹:熵的世界你不懂?----熵的概念辨析(1)熵(傷)腦筋?
  • 深究熵的概念和公式以及最大熵原理
    很多文章告訴了我們概念和公式,但是很少有人講到這些公式都是怎麼來的,那麼就讓我們來深究一下這裡面的奧秘 熵有關熵的介紹,我在《自己動手做聊天機器人 十五-一篇文章讀懂拿了圖靈獎和諾貝爾獎的概率圖模型》中做過簡單的介紹,熵的英文是entropy,本來是一個熱力學術語,表示物質系統的混亂狀態。
  • 電影《信條》描摹「逆熵」,現代舞演繹《熵》,科學激發藝術創作靈感
    「熵」,或許是近期最熱的物理學術語。克里斯多福·諾蘭的科幻新片《信條》,便是建立在「熵」的概念上,以「逆熵」理論展開奇妙的時空旅行。而上海舞臺近日也出現了一臺現代舞《熵》,由演員、舞者尹昉編導,謝欣舞蹈劇場全新演繹。科學理論屢屢激發藝術創作的靈感,不斷在銀幕、文學、舞臺、歌壇碰撞出智慧的「連鎖閃電」。
  • 騰訊首推「降熵」概念稱無出其右
    務虛方面,騰訊首次在業界公開提出所謂「降熵」的概念,要讓信息追著用戶走;務實方面,騰訊首次進軍車聯網,聯手中國人保、殼牌兩家巨頭成立「i車生活平臺」,並推出「路寶APP+路寶盒子」。此外,騰訊還宣布,斥資11.7億元入股四維圖新,佔股比例為11.28%,成為四維圖新第二大股東……  騰訊首推「降熵」概念  對於首度提出的「降熵」概念,騰訊QQ瀏覽器首席產品架構師葉駿以QQ瀏覽器為例對此進行了解讀,「下一代QQ瀏覽器將會針對每一位用戶的個性需求,將有效信息直接推送給用戶
  • 了解「熵」的概念,環保行動才會更進一步
    在生活中,我們習慣分開擺放純物質,一般認為這樣的安排是「有序的」、「有用的」、「便利的」(大概不願意看到調味架上的糖和鹽被人搗蛋混在一起,對吧?)。此舉背後的科學理由是,因為在混合發生前,熵總是維持在最低的水平,我們仍有選擇,有能力去決定之後如何運用。那,熵是什麼?
  • 幾乎支撐著科學的半壁江山的「熵」到底是什麼?深入討論熵理論
    熵是現代科學中的一個時髦詞。通常它被用作「無序」的同義詞,但它要有趣的多。這個概念本身有著悠久的歷史。為了完全理解熵是什麼,我們需要知道它是從哪裡來的。最早提出熵概念的是拉扎爾·卡諾,他以研究發動機和領導法國革命軍而聞名。拉扎爾對輸入系統的功和輸出系統的功的比較之間的關係非常感興趣。他把輸出的功稱為「有用的功」,而把損失的功稱為「轉換能」。這就是後來的熵。
  • 來認識一下「熵」這個重要的概念
    「熵」是物理學中一個非常重要的概念,這個概念有多重要可以和「能量」概念對比一下。人們對能量的認識稍微早一些,也能夠體會得出能量這個概念在物理學中的重要地位。早期的時候有人認為能量是宇宙的主宰,而熵只不過是其影子。
  • 關鍵概念:每個數據科學家都應了解的5個概念
    圖源:unsplash本文將重點介紹一些數據科學領域的關鍵概念,掌握它們對於你今後的職業生涯大有益處。這些概念或許你已經了解,或許你還未掌握。不論你現在是否清楚,筆者的目的是向你專業地解釋為何它們至關重要。
  • 熵:傷腦筋的熵
    Entropy的本意是一個同能量轉換相關的熱力學廣延量,中文的熵,或熱溫商,是對克勞修斯公式形式上的直譯。Entropy是一個具有深遠意義的基礎概念,量子力學以及後來的通訊理論都得益於熵概念之上的深入研究。熱力學(thermodynamics)是大學物理教育中不可或缺的一門基礎課,我印象中這是一門教的人和學的人都倍感困惑的課程。
  • 熵:傷腦筋的熵-虎嗅網
    Entropy的本意是一個同能量轉換相關的熱力學廣延量,中文的熵,或熱溫商,是對克勞修斯公式形式上的直譯。Entropy是一個具有深遠意義的基礎概念,量子力學以及後來的通訊理論都得益於熵概念之上的深入研究。熱力學是大學物理教育中不可或缺的一門基礎課,我印象中這是一門教的人和學的人都倍感困惑的課程。
  • 熵到底是什麼?
    熵在現代科學中有點流行。通常,它被用作"障礙"的代名詞,但是比這更有趣。這個概念本身有著悠久而有趣的歷史。為了完全理解熵是什麼,我們確實需要查看熵的來源。熵的概念的第一個暗示是拉扎爾·卡諾(Lazare Carnot)提供的,最著名的是他研究引擎並領導法國革命軍的工作。
  • 熵:傷腦筋的熵|賢說八道
    Entropy的本意是一個同能量轉換相關的熱力學廣延量,中文的熵,或熱溫商,是對克勞修斯公式形式上的直譯。Entropy是一個具有深遠意義的基礎概念,量子力學以及後來的通訊理論都得益於熵概念之上的深入研究。熱力學(thermodynamics)是大學物理教育中不可或缺的一門基礎課,我印象中這是一門教的人和學的人都倍感困惑的課程。
  • 熵——奧妙無窮的概念,支配宇宙的萬事萬物
    本文參加百家號 #科學了不起# 系列徵文賽。我在學習物理(化學)時最喜歡的科目之一是熵的概念,以及它與幾乎所有事物的關係,從冰塊到整個宇宙。讓我們從頭開始。熵是什麼?熵可以被認為是隨機性的數量,或者等同於信息的缺失。物理上,熵是一個與「微觀構型」的數量成正比的量,而「微觀構型」與觀察到的「宏觀狀態」是一致的。簡單地說,這意味著熵度量了你可以重新排列一個「物體」的原子和分子的組合數。沙堡是一個低熵系統。這是一個熵增加的過程。
  • 循環經濟的科學提法是低熵經濟
    哈爾濱工業大學教授徐奉臻在《自然辯證法研究》2006年第12期發表《論作為新型現代化訴求的「低熵化發展模式」》一文認為:「循環經濟」的稱謂是不科學的,或至少是不充分的。
  • 靈芝:關於對「熵」這個概念的理解
    本文轉載自【微信公眾號:靈芝的心靈舞蹈成長營,ID:lzwd221】經微信公眾號授權轉載,如需轉載與原文作者聯繫今天的文章可能朋友們讀起來會有些晦澀,因為是對一個相對冷門的概念理解。昨天突然對「熵」這個概念有了更加生活化的領悟「熵」是什麼呢?