比較簡單的乙個決策樹,根據客戶已有的資訊判斷是否可以發放貸款,記錄一下
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
pd.set_option('display.max_columns', 200)
pd.set_option('display.max_rows', 500)
data = pd.read_csv('/users/shaling/downloads/loan_data.txt',
encoding='utf-8', sep='\s+').set_index('nameid')
print(data.head(), data.shape)
from sklearn.tree import decisiontreeclassifier
from sklearn.model_selection import gridsearchcv, train_test_split, cross_val_score
from sklearn import metrics
# 劃分訓練集和測試集
train_x = x[:700]
train_y = y[:700]
text_x = x[700:]
text_y = y[700:]
# 創造模型
dtf = decisiontreeclassifier()
x1, x2, y1, y2 = train_test_split(
train_x, train_y, train_size=0.7, random_state=1)
dtf.fit(x1, y1)
print('模型訓練分數:', dtf.score(x1, y1))
print('模型驗證分數:', dtf.score(x2, y2)) # 過擬合
print('模型測試集分數:', dtf.score(text_x, text_y))
# 模型調參
param =
dtf = gridsearchcv(decisiontreeclassifier(), param_grid=param, cv=10)
dtf.fit(x1, y1)
print(dtf.best_params_, dtf.best_score_)
dtf = decisiontreeclassifier(
max_depth=6, min_impurity_split=0.1, min_samples_leaf=3)
dtf.fit(x1, y1)
print(dtf.score(x1, y1))
print(dtf.score(x2, y2))
# print(dtf.score(train_x, train_y))
print(dtf.score(text_x, text_y))
pred_y = dtf.predict(text_x)
print(metrics.precision_score(text_y, pred_y))
from sklearn import tree
from ipython.display import image
import pydotplus
dot_data = tree.export_graphviz(dtf, out_file=none,
feature_names=data.columns[:-1],
class_names=data.columns[-1],
filled=true, rounded=true,
special_characters=true)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("銀行借貸模型.pdf")
結果為
模型訓練分數: 0.820040899795501
模型驗證分數: 0.7630331753554502
模型測試集分數: 0.9266666666666666
在視覺化決策樹時,結果總是出現graphviz』s executables not found的錯誤型別,搜尋是因為缺少graphviz,於是pip install graphviz
安裝,安裝完之後還是出現錯誤,又上網搜了一通,網上大部分提示還要新增環境變數的都是win系統,少有mac的,有些又建議使用brew install graphviz
來安裝依賴包然後拷貝依賴包到執行目錄,裝完發現還是不行,無奈google之發現乙個很相似的情況,使用的的是anaconda來解決的:
conda install graphviz
裝完之後立馬好了。
決策樹模型
決策樹採用樹結構來進行決策的,可以認為是if then規則集合,也可以認為是對特徵空間劃分,每個子空間對應乙個輸出。其優點簡單,快速,可解釋性強。決策樹通常包含三部分 特徵選擇,決策樹生成,決策樹剪枝。資訊增益,資訊增益比,基尼指數是常用的特徵選擇準則 資訊熵 表示變數的不確定程度,資訊熵越大不確定...
決策樹模型
前言 決策樹生成模型三要素 一般而言,一顆 完全生長 的決策樹包含 特徵選擇 決策樹構建 剪枝三個過程。決策樹是一種啟發式貪心演算法,每次選取的分割資料的特徵是當前的最佳選擇,並不關心是否達到最優。一 特徵選擇 1.1 熵 樣本集合 純度 不確定性 穩定性的指標 熵越大,樣本的不確定性就越大 在決策...
決策樹模型
決策樹可以簡單的理解為根據特徵的取值而最終分成不同的類,也可以理解為簡單的if then的規則集合 樹嘛 那麼怎麼樣選擇節點是乙個很有技術的問題。為什麼呢,因為如果你的中間節點擊的不錯是不是就能夠很容易的將決策樹的各個節點很容易的分清楚了 說白了,你選的樹分叉的地方越有區分度 分類越多越好你乙個特徵...