[TIP / Vis ][plotly] 변수 중요도 시각화 하기 (bar_polar , bar plot)

2020. 10. 10. 10:24분석 Python/Visualization

패키지 로드

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
import plotly.express as px
from sklearn.datasets import load_boston

 

데이터 준비 및 적합시키기.

data_info = load_boston(return_X_y=False)
print(data_info.keys())
# dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename'])

x = pd.DataFrame(data_info["data"], columns = data_info["feature_names"])
y = pd.Series(data_info["target"] , name="target")
rf = RandomForestRegressor()
rf.fit(x,y)

d={"Stats" : data_info["feature_names"] , "FI" : rf.feature_importances_}
df = pd.DataFrame(d)
df = df.sort_values(by='FI', ascending=0)

시각화) bar_polar를 이용해서 원형 차트로 시각화하기

df_drop = df[df.Stats != '+/-']
import plotly.graph_objects as go
fig = px.bar_polar(df_drop, r="FI", theta="Stats",
                   color="Stats", template="plotly_dark",
                   color_discrete_sequence= px.colors.sequential.Plasma_r,)
fig.show()

시각화) bar를 이용해서 시각화하기

fig = px.bar(df_drop, x='Stats', y='FI', color="Stats", template="plotly_dark",)
fig.show()

 

사실 직관적인 부분은 bar plot이 훨씬 다른 것들도 다 같이 눈에 잘 들어오지만, bar_polar 같은 경우에도 이쁘게 잘 나오는 것 같아서 공유

728x90