[컴퓨터일반]금융IT 필기준비

컴퓨터일반_데이터전처리[실습]

bestFinanceDataAnalyist 2023. 6. 15. 12:33

안녕하세요. 금융 IT 준비생입니다. 본 카테고리는 금융 IT필기 준비를 위한 페이지이며, 이 내용은 6월 13일 스터디를 통한 내용을 복습하고 정리하는 용도입니다. 여러 책과 블로그를 참고하였으며 문제가 있을 시 삭제하겠습니다. 


데이터 불러오기

대표적으로 사용하는 타이타닉 데이터셋, 을 사용하여 전처리를 진행하겠습니다.

타이타닉 데이터는 891행과 12개열로 구성되어있으며, Survived(생존 여부) 이외에 (순서대로) 승객번호, 등급실 분류, 이름, 성별, 나이, 동승 가족(형제), 동승 가족(부모), 티켓번호, 요금, 선실번호, 탑승지로 구성되어 있습니다

pandas 라는 라이브러리 pd라는 이름으로 불러와 csv파일(타이탁)을 불러왔습니다. 

head(5)는 데이터 행의 5번째까지의 레코드를 보여줍니다. 

 

데이터 구조 파악

대표적으로 shape, info, describe 함수를 사용합니다

 타이나닉 데이터는 891개의 행과 12개의 열로 이루어진 것을 알 수 있습니다.

 

 

 

 

타이타닉 데이터의 전체 구조, 타입, 결측값을 확인할 수 있습니다

전체 관측지는 891개, 열은 12개로 이루어져있으며 각각의 결측값, 데이터 타입을 확인할 수 있습니다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

수치형 변수에 대한 기초통계량을 보여줍니다. 추가적으로 범주형 변수도 궁금하다면 include = ALL 을이용하여 확인할 수 있습니다

 

 


데이터 전처리

결측값 처리

1) 결측치 전체 행 데이터 셋에서 제거 : df.dropna

df.dropna(axis = 0) : 행 삭제

df.dropna(axis = 1) : 열 삭제

행 전체를 데이터셋에서 제거하면 원래 전체 데이터(891) > 삭제 후 데이터(183)개로 데이터 손실이 일어난다. 

따라서 전체 데이터 삭제 시, 이를 유의하고 진행한다.

 

2) 결측치 대체 : fillna()

numpy 패키지를 불러와서 평균값을 구한후, fillna() 함수 뒤에 대체값을 넣어서 구현하였다

데이터 손실없이 평균값으로 대체된 것을 확인할 수 있다

평균값 이외에도 최빈값, 인접값으로 대체 가능하다

 

이상치 처리

이상치는 데이터들의 가변성, 변동성 이외에도 자료 수집/입력, 실험이 잘못되었을 경우 일어날 수 있습니다

IQR 사분위범위를 이용하여 이상치를 처리하겠습니다. BOXPLOT을 그린 후 점으로 나오는 outlier을 확인.

 

사분위 범위는 boxplot만보고 정확히 파악할 수 없으므로 찍어보겠습니다

 

Q1= 1사분위수

Q2= 2사분위수

Q3 = 3사분위수

IQR: 사분위

 

 

 

 

 

 

일반적으로 이상치는 3사분위수 + 1.5*IQR 보다 큰 값이나, 1사분위수-1.5*IQR보다 작은 값을 검출할 수 있다.

 

 

 

정규화

데이터를 수동으로 만들고 진행하겠다. 난수를 이용하여 데이터를 생성하였다

plt를 이용하여 히스토그램 그린다

z표준화

scipy.stats 라이브러리를 불러와 zscore 함수를 이용한다. 정규분포 형태로 변환됨을 확인할 수 있다(평균0. 표준편차1)

패키지를 이용하지 않고 np.mean, np.std를 이용해서 바로 구할 수 있다

min- max 표준화

연속형 변수의 값을 0~1사이로 변호나하여 크기가 다른 두 변수 비교 시 이용한다. 

np.min, np.max를 사용하여 직접 이용도 가능하다

 

 

차원축소

iris데이터를 이용하여 차원축소를 진행하겠다.

연속형 변수 4가지만 사용할 예정이며, 스케일 차이가 나기 때무에

주성분 분석 전 정규화를 시켜준다.

주성분 분석: sklearn 패키지를 사용한다