【Python】決定木分析で銀行口座の開設見込み顧客を予測してみた

今回は、Pythonを用いて銀行口座の開設見込みがある顧客を決定木分析してみましたので、備忘としてメモを残しておきます。

コードはJupyter Notebookに記述しました。

【参照サイト】SIGNNATE
https://signate.jp/

使用データ

使用したデータは下記の3ファイルです。
*リンク先からダウンロードが可能です

test.csv train.csv submit_sample.csv

ソースコード

#ライブラリをインポート
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

from sklearn.tree import DecisionTreeClassifier as DT
from sklearn.tree import export_graphviz
import pydotplus
from IPython.display import Image
#データの読み込み
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
sample = pd.read.csv("submit_sample.csv",header=None)
#trainから説明変数取り出し(0~17列目)
trainX = train.iloc[:,0:17]

#trainから目的変数取り出し
y = train["y"]
#testから説明変数取り出し
testX = test.copy()
#trainXとtestXをダミー変数化
trainX = pd.get_dummies(trainX)
testX = pd.get_dummies(testX)
#決定木モデルの箱を用意
#max_depth=2,min_samples_leaf=500とする
clf1 = DT(max_depth=2,min_samples_leaf=500)

#決定木モデルを作成
clf1.fit(trainX,y)
#決定木を可視化する
#dotファイル書き出し
export_graphviz(clf1, out_file="tree.dot", feature_names=trainX.columns, class_names=["0","1"], filled=True, rounded=True)

#dotファイルを表示
g = pydotplus.graph_from_dot_file(path="tree.dot")
Image(g.create_png())
#testを予測する
pred = clf1.predict_proba(testX)
#y=1の結果のみpredに再代入
pred = pred[:,1]
#predをsample[1]に代入
sample[1] = pred
#結果をsubmit_bank.csvファイルに出力
sample.to_csv("submit1_bank.csv", index=None, header=None)

以上になります。興味のある方はぜひ試してみてください。


\\Pythonでデータ分析を勉強するなら//

Pythonでデータ分析を学習するなら、まず初めにこの一冊がおすすめです。

実際に手を動かしながらデータの前処理やデータの可視化など基本的な操作を学び、最後の章では回帰分析を実践するといった構成になっています。

本の表紙を見ると非常に易しそうに見えますが、内容はしっかり濃いものになっており、データ分析の入門書としては文句なしです。これからデータ分析を学ぼうとしている人、改めてデータ分析の基礎を固めたい人はぜひ手にとってみてください。

実践経験を積みたい中級者~上級者の人にはこちらもおすすめ▼

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です