1. 程式人生 > >mahout探索之旅——CART分類迴歸演算法

mahout探索之旅——CART分類迴歸演算法


CART演算法原理與理解

CART演算法的全稱是分類迴歸樹演算法,分類即劃分離散變數;迴歸劃分連續變數。他與C4.5很相似,但是一個二元分類,採用的是類似於熵的GINI指數作為分類決策,形成決策樹之後還要進行剪枝,我自己在實現整個演算法的時候採用的是代價複雜度演算法。

GINI指數

GINI指數主要是度量資料劃分或訓練資料集D的不純度為主,係數值的屬性作為測試屬性,GINI值越小,表明樣本的純淨度越高(即該樣本屬於同一類的概率越高)。選擇該屬性產生最小的GINI指標的子集作為它的分裂子集。比如下面示例中一項是3人有房,0人無房的欠款記錄(GINI=0,三個有房的全部都不欠款,是不是純度相當高,

GINI卻甚小。

在節點t時,GINI指數公式:


是節點t中類j所佔的比例。GINI的值範圍。

構建決策樹

構建決策樹時通常採用自上而下的方法,在每一步選擇一個最好的屬性來分裂。 "最好" 的定義是使得子節點中的訓練集儘量的純度。不同的演算法使用不同的指標來定義"最好"。一般有4中不同的不純度量可以用來發現CART模型的劃分,取決於目標變數的型別,對於分類的目標變數,可以選擇GINI雙化或有序雙化;對於連續的目標變數,可以使用最小二乘偏差(LSD)或最小絕對偏差(LAD)。這裡當然選擇GINI指數。

演算法的最佳分割點

數值型變數:(比如工資的高低)對記錄的值從小到大排序,計算每個值作為臨界點產生的子節點的異質性統計量。能夠使異質性減小程度最大的臨界值便是最佳的劃分點。

       分型別變數:列出劃分為兩個子集的所有可能組合,計算每種組合下生成子節點的異質性。同樣,找到使異質性減小程度最大的組合作為最佳劃分點。

決策樹規模

       一般在示例中展示的都是低深度模型,所以也不會出現決策樹的規模的問題。在實際的應用中,決策樹規模受使用者對深度要求、節點純度、節點樣本個數等影響、,因此這就決定了需要對決策樹進行停止生長的限制(剪枝)。

       剪枝必要性:當分類迴歸過於細化,會導致過擬合問題。

       前剪枝:停止生長策略(深度到達某個值就停止生長、純度全都超過某個值時不再劃分);

       後剪枝:在允許決策樹達到充分伸張後,自下而上的逐層剪枝(GINI指數明顯接近零,也就是屬性分類的某一類特別佔優勢)。

示例(訓練集)

對如下遞迴劃分方式如何建立決策樹?從而預測拖欠貸款的人群。

計算GINI指數,選擇分割點


計算GINI指數,選擇分割點

生成決策樹

(不好意思,不想畫表格,所以全部截圖上傳的,博文一直沒更新就是不太想編輯)

參考文獻

1.http://wenku.baidu.com/link?url=-U2IM6cEZtFCgqYl1XRwrRwpsxmVde-x29iZpoo_GAtswaEeIchz-WOwjQcJe_2i7Kje2kVu_P_xi9SAfcA5ACWKk-lbZjmWx1MLsUVQIfW

相關推薦

mahout探索——CART分類迴歸演算法

CART演算法原理與理解 CART演算法的全稱是分類迴歸樹演算法,分類即劃分離散變數;迴歸劃分連續變數。他與C4.5很相似,但是一個二元分類,採用的是類似於熵的GINI指數作為分類決策,形成決策樹之後還要進行剪枝,我自己在實現整個演算法的時候採用的是代價複雜度演算法。 G

機器學習演算法--CART分類迴歸

許多問題都是非線性的,用線性模型並不能很好的擬合數據,這種情況下可以使用樹迴歸來擬合數據。介紹CART,  樹剪枝,模型樹。 1.CART 傳統決策樹是一種貪心演算法,在給定時間內做出最佳選擇,不關心是否達到全域性最優。切分過於迅速,特徵一旦使用後面將不再使用。不能處理連續型特徵,

【機器學習】決策樹(基於ID3,C4.5,CART分類迴歸演算法)—— python3 實現方案

內含3種演算法的核心部分. 沒有找到很好的測試資料. 但就理清演算法思路來說問題不大 剪枝演算法目前只實現了CART迴歸樹的後剪枝. import numpy as np from collections import Counter from sklearn imp

【Linux探索】第一部分第三課:測試並安裝Ubuntu

u盤 nco 過程 sans ubunt windows u盤啟動盤 系統 .com 內容簡單介紹 1、第一部分第三課:測試並安裝Ubuntu 2、第一部分第四課預告:磁盤分區 測試並安裝Ubuntu 大家好,經過前兩個比較偏理論(是否

Avalon探索

lin .html list eight -h ide ava avalonjs 案例 avalon2是一款基於虛擬DOM與屬性劫持的 迷你、 易用、 高性能 的 前端MVVM框架, 擁有超優秀的兼容性, 支持移動開發, 後端渲染, WEB Component式組件開發,

【Linux探索】第四部分第三課:文件傳輸,瀟灑同步

命令行 上傳文件 文件夾 images lsh wget命令 ace 目標 wechat 內容簡單介紹 1、第四部分第三課:文件傳輸。瀟灑同步 2、第四部分第四課:分析網絡。隔離防火 文件傳輸。瀟灑同步 這一課的內容相

【C++探索】第二部分第一課:面向對象初探,string的驚天內幕

信息技術 false cli 方法 復雜 weixin include 命令 就是 內容簡單介紹 1、第二部分第一課:面向對象初探。string的驚天內幕 2

javascript跨域訪問探索

是否 list 好的 掌握 HR edi 性能 擁有 developer 需求: ??????? 近期工作負責一個互聯網應用A(我公司應用)與還有一個互聯網應用B進

webservice 菜鳥探索

unable lib poi style 目錄 使用 void disable 通過 項目背景   接到的任務是通過調用其他平臺廠商提供的webservice接口來獲取他們的圖片數據把圖片下載下來錄入我司平臺。之前沒有接觸過webservice,所以開始了這次webserv

Spring Cloud探索(二)——Spring Cloud Eureka

2.1 什麼是服務註冊與發現 在服務治理框架中,通常都會構建一個註冊中心,每個服務單元向註冊中心登記自己提供的服務,包括服務的主機與埠號、服務版本號、通訊協議等一些附加資訊。註冊中心按照服務名分類組織服務清單,同時還需要以心跳檢測的方式去監測清單中的服務是否可用,若不可用需要從服務清單中剔除,以

在Docker中執行PHP專案的探索

Docker出現後,容器技術在網際網路領域得到了空前的普及,無論是大公司還是屌絲創業公司的碼農基本上都會在各種技術社群或者各種演講會議上了解到過相關技術,我們作為一家屌絲創業公司也不例外,去年對Docker做了一番瞭解,並在年前測試了一些方案,今天在這裡總結一下遇到的各種坑以及踩坑過程中的一

Web 探索 | 第一課

             本文純屬個人閱讀後的筆記,如有不足之處,請多多指教 Client-Server 模型 我們去餐廳用餐,服務我們的服務生英語也是“Server”(或者也叫 waiter) 在資訊科技領域,這種模型就是最著名和使用最廣泛“客戶機-伺服器” (也有稱

Spring Boot 探索(一)——Spring Boot 簡介

一、什麼是Spring Boot 隨著技術日新月異的發展,如今的軟體設計已不想曾經那般單一。業務複雜,功能繁瑣,大量三方元件的相互整合,成為了開發的一大難題。幸而,Spring Boot如同一道曙光,為我們java開發者帶來了福音,讓我們擺脫專案構架時各種配置的鬧心,得以專

Spring Boot 探索(五)——Web支援

一、Spring MVC配置 /** * 主要WebMvc配置 * @author sunyiran * @date 2018-09-29 */ @Configuration public class WebMvcConfig extends WebMvcConfi

PHPExcel探索整理

一、前言       慕課網:PHPExcel探索之旅      PHPExcel是PHP語言操作Excel檔案最強大的一個工具,也是身為一個PHPer的必備技能。本課程將帶領大家全面解析PHPexcel的匯入匯出、樣式控制、圖形報表操作,幫助大家在今後工作中

Android探索(第十篇) 推薦幾款非常好用的Bug除錯工具

首推 騰訊Bugly - 一種愉悅的開發方式是一款非常方便幫組開發者實時的檢測App的異常及應用統計,還有更加強大的應用更新及熱修復,讓你的App 6飛起 官網地址:https://bugly.qq

Android探索(第三十六篇)Android中使用者反饋需要開發?不存在的

作為一個合格的Android開發者,我們時不時會碰到產品給使用者反饋功能需求,你大概需要一天?兩天?三天?請求介面?NO NO NO~~~不存在的 下面介紹一個平臺叫吐個槽官網 1. 進入平臺後需要建立產品,建立好之後會為你分配APPID 2.

實戰天池精準醫療大賽三_分類迴歸與排序

1. 說明  開賽第一週掙扎在前100的邊緣,第二週掙扎在前20的邊緣,第三週懶得弄了,坐等換資料。初賽的前100名可進複賽,所以在前100中排名前後也沒啥意義,開始的時候覺得自己分數蒙的成份很高,換了資料就完蛋,然後不斷改進,坐實;後來就有點瞎叫勁了。又傲嬌又膽小,也沒結交到隊友,至今還是孤軍作戰。記錄一

機器學習---SVM分類

本次內容主要講解什麼是支援向量,SVM分類是如何推導的,最小序列SMO演算法部分推導。 最後給出線性和非線性2分類問題的smo演算法matlab實現程式碼。 一、什麼是支援向量機(Support Vector Machine) 本節內容部

CART分類迴歸

這一篇主要是CART,有幾個重點的詞語先寫下來,重點哦:基尼指數(Gini index)、最小二乘迴歸樹(least squares regression tree) CART:classification and regression tree。分類迴歸樹。