seaborn
を使ったデータの可視化
sns.countplot()
を用いて正解ラベルの割合を確認
可視化をすると正解ラベルが不均衡データであることが視覚的にも分かります
sns.countplot(x = 'default.payment.next.month', data=data)
LIMIT_BAL
のデータの分布を確認
LIMIT_BAL
は左に偏った分布であることを確認
sns.distplot(data['LIMIT_BAL'], bins=10)
SEX
による正解ラベルの出現頻度を確認
SEX
:性別(1 =男性、2 =女性)
女性と比較すると、男性の方が若干の割合で支払いが滞る傾向がありそうです。
sns.countplot(x = 'SEX', hue = 'default.payment.next.month', data=data)
MARRIAGE
による正解ラベルの出現頻度を確認MARRIAGE
:結婚暦(1 =結婚、2 =独身、3 =その他)MARRIAGE
に関して、結婚と独身による大きな傾向の違いは無さそうです。
sns.countplot(x = 'MARRIAGE', hue = 'default.payment.next.month', data=data)
EDUCATION
による正解ラベルの出現頻度を確認
EDUCATION
:(1 =大学院、2 =大学、3 =高校、4 =その他、5 =不明、6 =不明)EDUCATION
に関しても大きな傾向の違いは見れなそうです。
sns.countplot(x = 'EDUCATION', hue = 'default.payment.next.month', data=data)
PAY_
系の列毎の相関係数の確認と可視化
相関係数を算出しやすいように、PAY_
系の列名をまとめて1つのリストにします。
colNameList = ['PAY_' + str(i+1) for i in range(6)]
colNameList
['PAY_1', 'PAY_2', 'PAY_3', 'PAY_4', 'PAY_5', 'PAY_6']
.corr()
を用いて相関係数を算出します。sns.heatmap(相関係数)
で相関係数をヒートマップ形式にして可視化
corr = data[colNameList].corr()
cmap = sns.color_palette("coolwarm", 200)
sns.heatmap(corr,xticklabels=corr.columns,
yticklabels=corr.columns,
square=True,
annot=True,
cmap=cmap)
plt.show()
BILL_AMT
系の列毎の相関係数とペアプロット
colNameList = ['BILL_AMT'+str(i+1) for i in range(6)]
colNameList
['BILL_AMT1', 'BILL_AMT2', 'BILL_AMT3', 'BILL_AMT4', 'BILL_AMT5', 'BILL_AMT6']
corr = data[colNameList].corr()
cmap = sns.color_palette("coolwarm", 200)
sns.heatmap(corr,xticklabels=corr.columns,
yticklabels=corr.columns,
square=True,
annot=True,
cmap=cmap)
plt.show()
sns.pairplot(data,vars = colNameList, hue = 'default.payment.next.month')
plt.show()
PAY_AMT
系の列毎の相関係数とペアプロット
colNameList = ['PAY_AMT'+str(i+1) for i in range(6)]
colNameList
['PAY_AMT1', 'PAY_AMT2', 'PAY_AMT3', 'PAY_AMT4', 'PAY_AMT5', 'PAY_AMT6']
corr = data[colNameList].corr()
cmap = sns.color_palette("coolwarm", 200)
sns.heatmap(corr,xticklabels=corr.columns,
yticklabels=corr.columns,
square=True,
annot=True,
cmap=cmap)
plt.show()
sns.pairplot(data,vars = colNameList, hue = 'default.payment.next.month')
plt.show()
コメント