機器學習之決策樹(二)

1、C4.5算法介紹
C4.5算法與ID3算法不同的是採用了信息增益比作爲特徵的選擇,原因是:信息增益在選擇屬性時偏向於選擇取值較多的屬性。


2、信息增益比
特徵A對訓練數據集D的信息增益比定義爲其信息增益g(D,A)與特徵A的熵HA(D)之比(計算方式請看上一篇):
機器學習之決策樹(二)


3、CART算法介紹
CART算法使用Gini指數作爲特徵的選擇,並且使用平方誤差最小化原則對連續型特徵進行離散化,所以CART算法既可以用於分類,也可以用於迴歸。


4、Gini指數
機器學習之決策樹(二)


5、sklearn庫的實現

import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

def decisionTree():
    #讀取數據
    data = pd.read_csv('train.csv')
    #數據預處理
    x = data[['Pclass','Age','Sex','Embarked']]
    y = data['Survived']
    x['Age'].fillna(x['Age'].mean(),inplace=True)
    x['Embarked'].fillna('S',inplace=True)
    #one-hot編碼
    dict = DictVectorizer(sparse=False)
    x = dict.fit_transform(x.to_dict(orient="records"))
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=0)
    #決策樹算法
    dec = DecisionTreeClassifier(criterion="gini",max_depth=None,)
    dec.fit(x_train,y_train)

    print("正確率:",dec.score(x_test,y_test))

if __name__ == '__main__':
    decisionTree()

參考書籍:
《統計學習方法》--李航
《機器學習實戰》--Peter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章