機械学習 データの可視化 python

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()

コメント

タイトルとURLをコピーしました