Useful plot of python


Correlation Matrix
import matplotlib.pyplot as plt
import seaborn as sns

def plot_corr_heatmap(target_df, removed_columns = []):
    corr_df = target_df.drop(removed_columns, axis = 1).corr()
    
    # 그림 사이즈 지정
    fig, ax = plt.subplots(figsize = (25, 25))
    
    # 삼각형 마스크 생성 (위 쪽 삼각형 True, 아래 삼각형 False)
    mask = np.zeros_like(corr_df, dtype = np.bool)
    mask[np.triu_indices_from(mask)] = True
    
    # 한국어 깨짐 방지
    plt.rcParams['font.family'] = 'NanumBarunGothic'
    plt.rcParams['font.size'] = 12
    
    # 히트맵 생성
    sns.heatmap(corr_df,
                cmap = 'RdYlBu_r',
                annot = True,              # 실제값 표시
                mask = mask,               # 표시하지 않을 마스크 부분 지정
                linewidths = 0.5,          # 경계면 실선 구분
                cbar_kws = {"shrink": .5}, # 컬러바 크기 절반 축소
                vmin = -1, vmax = 1        # 컬러바 범위 -1 ~ 1
                )

    plt.show()
    
plot_corr_heatmap(data_df, removed_columns = ['account_id'])

Feature Importances
from sklearn.ensemble import RandomForestClassifier
import seaborn as sns
import matplotlib.pyplot as plt


data_df = data_df.sample(n=500)

X, y = data_df.iloc[:, 1:].values, data_df.iloc[:, :-1].values

scaler = StandardScaler()
scaled_X = scaler.fit_transform(X)

# RandomForest
clf = RandomForestClassifier(random_state=42)
clf.fit(scaled_X, y.astype('int'))
feature_importance = clf.feature_importances_

# plot
import_df = pd.DataFrame({'columns':data_df.drop(['account_id'], axis = 1).columns, 'importances':feature_importance})
import_df = import_df[import_df['importances'] > 0] # importance가 0이상인 것만
import_df = import_df.sort_values(by=['importances'], ascending=False)

fig = plt.figure(figsize=(15,7))

# 한국어 깨짐 방지
plt.rcParams['font.family'] = 'NanumBarunGothic'
plt.rcParams['font.size'] = 10

ax = sns.barplot(import_df['columns'], import_df['importances'])
ax.set_xticklabels(import_df['columns'], rotation=80, fontsize=13)
plt.tight_layout()
plt.show()