[KaggleStudy] Interactive Porto Insights - A Plot.ly Tutorial

이하얀·2024년 11월 11일
0

결측치 확인

  • 기존에는 .info()를 이용해 결측치가 존재하는지 여부와 얼마나 결측치가 있는지 수치로 간단히 살펴봤었음.
  • missingno라는 패키지를 이용해 matrix를 그리면 결측치도 시각화해서 살펴볼 수 있음.

결측치가 있다고 판단한 이유?

  • isnull()로 확인했을 경우 -> 결측치가 없는 것으로 나왔지만(-1로 대체되어 있었기 때문에)
    • 데이터셋 정보에서 보면 -1의 경우에는 누락된 값이라고 나와 있기 때문에 다른 값으로의 대체 또는 drop 등 재처리가 필요
  • 이 값을 다시 NaN으로 바꿔준 다음 시각화 진행
import missingno as msno
msno.matrix(df=train_copy.iloc[:,2:39], figsize=(20, 14), color=(0.42, 0.1, 0.05))



Binary features inspection

  • zero count가 많은 컬럼을 찾아내어 중요하지 않은 컬럼을 찾아내는 작업을 할 수 있음을 알게 됨.

Binary features inspection의 주 사용 목적

  • 데이터 편중 확인
    • 피쳐가 0이 대부분이며 1이 거의 없다면 -> 모델이 1을 학습하는 데에 문제가 생길 수 있음
  • 상관관계 파악
    • 높은 상관관계가 있는 피쳐들은 중복 정보일 가능성이 높음
  • Target 변수와의 관계
    • 특정 이진 특성이 타깃 값에 어떻게 영향을 미치는지 확인
  • 이상치
  • 카테고리 분석
    • 데이터를 특정 그룹으로 나눠서 각 그룹의 분포 분석 가능
bin_col = [col for col in train.columns if '_bin' in col]
zero_list = []
one_list = []
for col in bin_col:
    zero_list.append((train[col]==0).sum())
    one_list.append((train[col]==1).sum())
trace1 = go.Bar(
    x=bin_col,
    y=zero_list ,
    name='Zero count'
)
trace2 = go.Bar(
    x=bin_col,
    y=one_list,
    name='One count'
)

data = [trace1, trace2]
layout = go.Layout(
    barmode='stack',
    title='Count of 1 and 0 in binary variables'
)

fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='stacked-bar')

Notebook

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글