KT 에이블스쿨 12일차(1)

박기범·2023년 2월 15일
0

에이블스쿨

목록 보기
16/95

오늘은 미니프로젝트1의 마지막 날로 앞서 2일의 과정을 하루만에 하는 그런 하루였습니다.



미니프로젝트에 사용한 코드 리뷰

오늘은 앞서 이틀과는 다른 데이터를 가지고 분석하는 시간을 가졌습니다.

금일 프로젝트의 순서는 가설을 설정하고 단변량 분석, 이변량 분석 후 인사이트를 도출해내는 순서였습니다. 하지만 저는 모든 변수들을 분석하길래 가설을 세우지않고 나중에 결과를 가지고 인사이트를 도출했습니다. 원래는 방대한 양의 데이터를 가지고 분석을 하기 때문에 가설을 세우고 해당 가설의 시각화와 수치화를 통한 상관관계 분석을 하는 것이 맞는 방식이라고 생각합니다.



가설설정

위에 설명했듯이 가설을 먼저 설정하면 좋습니다. 가설에는 귀무가설대립가설이 있습니다. 귀무가설~~와 ~~는 차이가 없다, 연관성이 없다없다라고 가설을 세우는 것을 의미합니다. 대립가설~와 ~는 차이가 있다, 연관성이 있다있다라고 가설을 세우는 것입니다.



변수와 타겟 설정

타겟(target)은 목표라고 생각하면 됩니다. 변수들 중에 해석하고자 하는 목표를 하나 설정해서 해당 타겟과 다른 변수들과의 관계를 살펴보고 관계를 미치는 변수에 대해 타겟이 어떻게 변화하는지 알 수 있습니다.



단변량 분석

어제처럼 프로젝트에 사용한 코드를 리뷰하겠습니다.
변수의 자료형을 확인하기 위해서는 .info()를 사용해줍니다.
변수의 결측치를 확인하기 위해서는.isna().sum()을 사용해줍니다.
변수의 기초 통계량 확인을 위해서는 .describe()를 사용해줍니다.
변수의 분포를 확인하기 위해서는 .value_counts()를 사용해줍니다.

결측치를 처리할 때 여러방안들이 있지만 저는 이번에 중앙값으로 대체해주는 결측치 처리를 진행했습니다. fillna()를 사용해주어 결측치를 처리했습니다.

또한 저는 분포 확인을 위해 시각화도 같이 진행했습니다.

단변량의 시각화를 위해 .histplot()boxplot()을 사용했습니다. histplot을 사용할 때는 옵션 bins = ' 'kde=True를 사용해주어 히스토그램 뿐만 아니라 kde 그래프도 한번에 확인이 가능했습니다. boxplot을 통해 이상치를 확인하고 사분위수들을 확인할 수 있었습니다.



이변량 분석

타겟을 설정해주고 각 변수들에 대해 이변량 분석을 실시했습니다.

먼저 어제와는 다르게 범주형 -> 수치형에 대한 이변량 분석을 보겠습니다. 범주형에서 수치형 타겟에 대한 분석을 진행할 때 시각화 도구로는 sns.barplot()을 사용해 주었습니다. 수치화를 위해서는 그룹이 2개인 경우에는 t-test를 진행해줬습니다. 그룹이 3개 이상인 경우에는 spst.f_oneway() 즉, anova기법을 사용해주었습니다.

수치형에서 수치형을 비교할 때는 시각화에서는 sns.scatterplot()을 사용했습니다. 수치화에서는 상관분석을 위해 spst.pearsonr()를 사용했습니다.

보완점

처음에 데이터를 시각화 진행했을 때 한 곳에 데이터가 치우치게 많아 불균형을 이루는 것을 보았는데 그냥 아무생각 수치화와 시각화를 진행했는데 다른 조원의 시각화를 보고 아 그냥 데이터를 가져다가 쓰면 안되는구나를 느꼈습니다.

데이터를 정제하거나 그룹화하는 것에 조금 더 익숙해져야 된다고 느꼈습니다.
.groupby('그룹화해줄 컬럼명', as_index=False)[컬럼명].집계함수()을 사용해주면 컬럼명을 그룹화해줄 컬럼별로 그룹화해서 보여줍니다.







조별 발표를 보면서 다른 에이블러들이 정말 잘한다고 느꼈습니다. 저도 열심히 해서 다른 에이블러들 처럼 자신 있게 분석하고 발표할 수 있는 에이블러가 되고 싶다고 느낀 하루였습니다.




※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.

profile
개발자가 되기 위한 한걸음

0개의 댓글