분명 전산학부 졸업 했는데 코딩 개못하는 조준호/AI, ML, DL

Kaggle Competition - Binary Prediction of Poisonous Mushrooms (3) EDA 시각화

팜팜이S 2024. 9. 2. 14:43
728x90
반응형

https://www.kaggle.com/code/satyaprakashshukl/mushroom-classification-analysis/notebook

 

🌴Mushroom🎉Classification📈Analysis

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com

 

 

cap-shape와 cap-color를 기준으로 그룹화하고 해당되는 데이터의 수를 feature_counts에 넣는다.

이후, px.sunburst 함수를 사용해서 시각화한다.

 

직관적으로 이해 가능!

 

다음으로 sankey chart로 만들자. 데이터의 '흐름'을 볼 수 있다.

 

import plotly.graph_objects as go

flow_data = df_train1.groupby(['cap-shape', 'cap-color']).size().reset_index(name='count')
labels = list(pd.concat([flow_data['cap-shape'], flow_data['cap-color']]).unique())
label_map = {label: idx for idx, label in enumerate(labels)}

sources = flow_data['cap-shape'].map(label_map).tolist()
targets = flow_data['cap-color'].map(label_map).tolist()
values = flow_data['count'].tolist()

 

역시 cap-shape과 cap-color로 그룹을 나눈다. 이후 모든 쌍을 열거한 labels를 만든다.

 

fig = go.Figure(data=[go.Sankey(
    node=dict(
        pad=15,
        thickness=20,
        line=dict(color='black', width=0.5),
        label=labels
    ),
    link=dict(
        source=sources,
        target=targets,
        value=values
    )
)])

fig.update_layout(
    title_text='Sankey Chart of Cap Shape to Cap Color Flow',
    title_x=0.5,  
    width=1000,   
    height=600 
)
fig.show()

 

 

딱히 큰 차이는 없다. 왼쪽이 cap-shape, 오른쪽이 cap-color이다. 그런데 b, p, o 이 세 친구들이 뜬금없이 가운데에 있는 걸 볼 수 있는데 이는 해당 알파벳이 양쪽 모두에 속하기 때문에 발생한 오류 아닌 오류(?)다. 사실 이렇게 둬도 해석할 수 있지만 확실히 하기 위해서는

 

flow_data['cap-shape'] = 'shape_' + flow_data['cap-shape']
flow_data['cap-color'] = 'color_' + flow_data['cap-color']

 

이런 식으로 접두사를 붙여줄 수 있다.

 

또 다른,,, 시각화가 있다.

 

 

비슷한 내용이므로 자세한 건 생략.

728x90
반응형