sklearn 決策樹例子 決策樹 規則挖掘應用

2021-10-14 07:09:08 字數 2533 閱讀 8662

本次主要簡單介紹下決策樹在風控規則中的簡單應用,讓讀者快速入門。在後續的文章中,會逐一介紹決策樹的各種演算法原理,如資訊增益、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...