本次主要簡單介紹下決策樹在風控規則中的簡單應用,讓讀者快速入門。在後續的文章中,會逐一介紹決策樹的各種演算法原理,如資訊增益、id3演算法、c4.5演算法、c5.0演算法等, 希望感興趣的朋友可以關注下。
前言:
決策樹是資料探勘中十分常用的分類方法,歸屬於機器學習中的監督學習演算法。監督學習就是給出一堆樣本,每個樣本都有一組屬性和乙個分類結果,也就是已知分類結果,通過學習這些樣本得到乙個決策樹,這個決策樹能夠對新的資料給出正確的分類。
一、決策樹的含義
決策樹,顧名思義,就是用來決策的樹。它是一種將資料集合依照某幾個顯著的屬性,進行不斷的劃分,以後遇到新的資料時,可以利用之前得到的決策樹規則進行判斷。基於決策樹,有許多其他演算法如隨機森林,gbdt,xgboost等,本質上都是類似的,只不過使用了一些提示演算法,區別就是在於如何生成樹。下面給出乙個簡單的例子,來說明決策樹的生成思路:
給出如下一組資料,存在3個特徵(頭髮、衣服、出門打扮時間是否超過20分鐘),最後判斷該人是否為女生,最後一列給出了分類結果。
然後,我們利用這些附帶分類結果的樣本資料訓練出了決策樹,圖形如下:
二. 決策樹的特徵
通常,我們拿到乙份樣本資料,特徵是非常多的,但是如果想用決策樹生成判斷規則,進模型的特徵最好不要超過10個,5個以內為最佳,那麼這個時候,如何挑選特徵進入模型就是需要考慮的問題,一般來說,有以下3種解決方法:
### 建立隨機森林函式, 用於挑選特徵
# 隨機森林篩選變數
from sklearn.ensemble import randomforestclassifier
def select_rf(df,target,imp_num=none):
"""df:資料集
target:目標變數的欄位名
imp_num:篩選變數的個數
return:
rf_fea_imp:變數的特徵重要性
rf_select_col:篩選出的變數
"""x = df.drop([target],axis=1)
y = df[target]
rfmodel = randomforestclassifier(random_state=0)
rfmodel = rfmodel.fit(x,y)
rf_fea_imp = pd.dataframe()
rf_fea_imp = rf_fea_imp.sort_values('imp',ascending=false).reset_index(drop=true).iloc[:imp_num,:]
rf_select_col = list(rf_fea_imp.col)
return rf_fea_imp,rf_select_col
三. 決策樹的sklearn**
import pandas as pd
import numpy as np
from sklearn import tree
from sklearn.model_selection import train_test_split
import pandas as pd
import graphviz
# 1. 根據需求,匯入資料集(樣本命名為x,目標命名為y)
# 2. 拆分資料集合
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)
# 3.宣告決策樹模型
model=tree.decisiontreeclassifier(criterion="entropy",random_state=30,
splitter="random",max_depth=5,
min_samples_leaf=10,min_samples_split=10)
# 4.訓練模型
model.fit(x_train,y_train)
print("score:",model.score(x_test,y_test))
# 5.輸出決策樹
dot_data=tree.export_graphviz(model,feature_names=x.feature_names,
class_names=['1','2','3'],
filled=true,rounded=true,out_file=none)
graph=graphviz.source(dot_data)
四. 決策樹的優缺點缺點:可能會產生過度匹配問題。
適用資料型別:數值型和離散型。
SKlearn之決策樹
決策樹是一種非引數的監督學習方法。模組 sklearn.tree sklearn建模的步驟 1 選擇並建立模型 例 clf tree.decisiontreeclassifier 2 提供資料訓練模型 例 clf clf.fit x train,y train 3 獲取需要的資訊 例 result ...
決策樹和CART決策樹
首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...