97视频在线观看免费高清完整版在线观看-69精品人人人人-爱的色放3-亚洲黄色一区-亚洲精品视频免费在线观看-男人天堂免费视频-久久久社区-日韩综合一区二区-色撸撸在线-蝌蚪av-国产乱淫视频-男生尿隔着内裤呲出来视频-人操人操-欧美鲁鲁-免费视频99-3级av-中国一级大黄大黄大色毛片-久久久欧美精品-99精品在线看-色峰视频-印度毛茸茸-国产福利毛片-国产极品999-69日韩-天天综合网国产

星空人工智能技術網

從零開始學星空人工智能(13)--Python · 決策樹(一)· 準則

 這一章主要打算用大白話說一下決策樹是什么,然后介紹一個算法中的核心輔助結構——Cluster 的實現(我也不知道中文叫什么我也不知道為什么當初腦子里第一個蹦出來的就是這個名字)(逃)

決策樹,顧名思義,就是用來決策的樹(廢話)??梢赃@樣去想一個決策樹的決策過程:

  1. 輸入一個數據

  2. 根據數據的某個特征來把數據分成好幾份

  3. 如果分完數據后發現

    1. 某堆數據里面某一個類別的數據占相當大多數,就不再分隔這堆數據、直接輸出類別

    2. 某堆數據還很“混亂無序”,那么就這堆數據就要繼續分下去(轉第 2. 步)

大概就這三步。可以發現,大部分時間都是根據某個“準則”來進行操作的,所以怎樣選擇這個準則就成了至關重要的問題

我們同時還可以發現,這個過程是個遞歸過程。通俗點來說,就是整個過程都是對同一類物體做的同一系列操作

以上兩個發現對應著兩個核心。這一章我們就先講第一個核心——準則

常見的準則有兩種,分別是熵和 Gini 系數。這里就主講實現(Again,我會先講一個相對樸素的實現,而把支持樣本權重的版本放在后面):

  1. 預處理數據,準備好接下來可能要用到的變量

  1.  

    1. 輸入的 data 是 n x d 維的;n 代表有 n 個數據,d 代表有 d 個維度

    2. 輸入的 labels 是標簽向量

    3. Counter 是內置庫的功能,用于數 labels 中各個類別的出現次數

    4. base 是計算熵的時候對數的底,基本可以不管

  2. 熵與條件熵

    1. 利用 labels 和 counters 計算

    2. 這里支持用戶自己輸入各類別的出現次數;如果沒有輸入,就用內置的類別次數代替
      eps 則是為了數值穩定

    3. 利用上述 ent 函數計算相對熵(建議先知道定義是什么再看……)

    4. 看上去很復雜,其實就四點:

      1. 獲取指定維度數據的所有特征

      2. 根據這些特征將原數據切分成若干份

      3. 將這幾份數據分別喂給一個 Cluster 并利用上面第 1. 步定義的 ent 函數算出熵

      4. 把這些熵按定義弄出一個條件熵

  3. Gini 系數,這個實現起來比較方便、因為形式比較簡單
    666.png

  4. 同樣支持用戶自己輸入各類別的出現次數

  5. 信息增益。這是決策樹生長的重點,但有了上面兩個函數之后,根據定義的話、直接條件熵減去熵就行(或者更寬泛地說、是混亂程度減去條件混亂程度),最多再做一些小的改動。相信聰明的觀眾老爺們可以輕松地完成最樸素的實現,所以在這里我就不細講怎么定義 info_gain 了,等到講比較復雜的模型時再補吧~
    順便也可以當做作業和練習呢~
    其實主要是因為懶呢~(被 pia 飛)
    ========== 更新 ==========
    這里提供一個根據 ID3 算法的信息增益實現,C4.5 和 CART 的話會在后面講~

555.png

 

001.png掃一掃獲取最新精彩內容與學習資料 

星空人工智能技術網 倡導尊重與保護知識產權。如發現本站文章存在版權等問題,煩請30天內提供版權疑問、身份證明、版權證明、聯系方式等發郵件至1851688011@qq.com我們將及時溝通與處理。?。?a href="/">首頁 > 大數據 » 從零開始學星空人工智能(13)--Python · 決策樹(一)· 準則

()
分享到:

相關推薦

留言與評論(共有 0 條評論)
   
驗證碼: