LoginSignup
2
3

More than 3 years have passed since last update.

銀行マーケティングデータのサンプル「Bank Marketing Data Set」の構造

Posted at

やりたいこと

でダウンロードできる銀行マーケティングのサンプルデータセットである「Bank Marketing Data Set」の構造を調べる。

対象

  • 機械学習のモデル実装者でマーケティングデータの分析等に関わっている人。
  • 金融系のマーケティングデータセットを扱う人。
  • モデリングの前にデータの内容をしっかり理解しておきたい人。

データの入手

下記サイトからダウンロードできる。
http://archive.ics.uci.edu/ml/datasets/Bank+Marketing

image.png

下記からzipをダウンロードする。

image.png

データの構造

下記のzipをダウンロードできる。

  • bank-additional.zip
  • bank.zip

それぞれの構造は以下の通り。

bank-additional.zip

bank-additional/ フォルダ配下

  • bank-additional.csv
  • bank-additional-full.csv
  • bank-additional-names.txt

bank.zip

bank/ フォルダ配下

  • bank.csv
  • bank-full.csv
  • bank-names.txt

bank.csv

エクセルで開くと、下記の感じ。

image.png

bank.csv のカラム構造

bank.csv には下記のカラムが含まれる。

  • age
  • job
  • marital
  • education
  • default
  • balance
  • housing
  • loan
  • contact
  • day
  • month
  • duration
  • campaign
  • pdays
  • previous
  • poutcome
  • y

各カラムの説明は
bank-names.txt
に記載されている。

カラム詳細

age

顧客の年齢。数値型。

job

顧客の職業。文字列型。

  • admin : 管理者
  • unknown : わからない
  • unemployed : 失業者
  • management : マネージャ
  • housemaid : メイド
  • entrepreneur : 起業家
  • student : 学生
  • blue-collar : ブルーカラー
  • self-employed : 自営業
  • retired : 引退
  • technician : 技術者
  • services : サービス

marital

顧客の婚姻状況。

  • married : 既婚
  • divorced : 離婚(離婚または未亡人)
  • single : 独身

education

顧客の教育レベル。

  • primary : 初等教育
  • secondary : 中等教育
  • tertiary : 高等教育

default

デフォルト(債務不履行)の有無。
yes / no

balance

残高。ユーロ(数値)で表した年間平均残高。

housing

住宅ローンの有無。
yes / no

loan

個人ローンの有無。
yes / no

contact

顧客へ最後に連絡した際の連絡手段。

  • telephone : 固定電話
  • cellular : 携帯電話
  • unknown : 不明

day

顧客へ最後に連絡した日付。

month

顧客へ最後に連絡した月。

duration

顧客への最後の連絡で接触した時間(秒数)。

campaign

現在のマーケティングキャンペーンにおける顧客への連絡回数(最後の連絡を含む)。

pdays

以前のマーケティングキャンペーンにおける顧客への最終連絡日からの経過日数。-1は以前の連絡が無かったことを示す。

previous

以前のマーケティングキャンペーンにおける顧客への連絡回数。

poutcome

以前のマーケティングキャンペーンの結果。

  • failure : 失敗
  • success : 成功
  • unknown : 不明
  • other : その他

y

顧客は定期預金を購入したか?
yes / no

データの使い方

たとえば決定木分析の場合、下記のような実装で分類できる。

import pandas as pd
import numpy as np
import pydotplus
from sklearn.tree import export_graphviz
from sklearn.tree import DecisionTreeClassifier as DT
from IPython.display import Image
train = pd.read_csv("bank-full.csv",delimiter=";")
y = train["y"]
trainx = train.iloc[:,0:15]
trainxd = pd.get_dummies(trainx)
clf3 = DT(max_depth=3, min_samples_leaf=500)
clf3.fit(trainxd,y)
export_graphviz(clf3, out_file="tree_clf3.dot", feature_names=trainxd.columns, class_names=["0","1"], filled=True, rounded=True)
graph = pydotplus.graphviz.graph_from_dot_file('tree_clf3.dot')
Image(graph.create_png())

image.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3