Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

데이터 전처리 #2

Open
Jangchanhi opened this issue Apr 4, 2023 · 0 comments
Open

데이터 전처리 #2

Jangchanhi opened this issue Apr 4, 2023 · 0 comments

Comments

@Jangchanhi
Copy link
Owner

데이터 전처리

  1. Sample 데이터 확인
    Sample 데이터를 육안으로 확인하여 데이터의 구성과 필요 유무에 대한 확인
  • head(), tail()
  1. 통계적 특성 확인
    수치 데이터에 대한 수학적 특성 확인으로 데이터 분포 확인
  • descibe()
  1. Table 정보 확인
    컬럼 수, 데이터 타입 등을 확인하여 정상적 로드 확인
  • info()

데이터 정보 확인 -> Dataframe명.info()
DataFrame 앞 5개 데이터 확인 -> Dataframe명.head()
DataFrame 뒤 5개 데이터 확인 -> Dataframe명.tail()

결측치 처리하기

  1. 제거하기
  1. Listwise : 결측치가 존재하는 전체 행 삭제, 결측치가 존재하는 B,C,E 유저의 데이터를 삭제하여 결측치 제거
    -> 최대치의 정보손실 발생

  2. Pairwise : 결측치로 존재하는 변수만 삭제, 모든 변수가 결측치인 경우 해당행 삭제, 모든 변수가 결측치인 E 유저의 데이터만 제거되고 B와 C는 유지, 다만 결측값이 있는 변수는 향후 무시됨
    -> 매번 샘플이 달라 분석을 비교할 수 없다.

제거하기 방법을 사용하여 결측치를 처리하면 정보가 손실될 수 밖에 없다.

  1. 채우기
  1. 값 대체하기 : 결측치를 평균화 값으로 대체, 가장 널리 사용되는 평균화 값
  • 평균(mean), 중앙값(median), 최빈값(mode)
  1. 예측하기 : 결측치를 상관관계 등을 예측하여 대체, 결측치의 특성이 무작위로 관찰되는 것이 아니라고 가정하고, 상관관계나 예측모델을 가정하여 채움.

결측치를 정보 손실 없이 빠르게 채울 수 있다는 장점이 있다. 그러나 모든 결측치가 동일한 값을 가질 수 있다. 채워진 값에 의해 평균 중앙값 상관관계 등이 영향을 받을 수 있다.

<1> 결측치를 지정한 값으로 채우는 메소드 : Dataframe.fillna("넣고자 하는 내용")

<2> 결측치를 같은 간격으로 채우는 메소드 : Dataframe명.interpolate()

이상치 처리하기

  1. 특정 추세를 크게 벗어난 데이터
  2. 중앙값을 크게 벗어난 데이터

[Feature Engineering] : 데이터를 분석하거나 AI 알고리즘을 적용하기 위해 데이터의 도메일 지식을 활용, 변수를 가공하여 데이터를 비교적 간단 명료하게 만드는 것
Feature = 각 데이터의 특징

  1. Binning : 연속형 변수를 범주형 변수로 만드는 방법, 연속형 변수를 적절히 그룹을 지어주면 데이터를 이해하기가 더 쉬워짐.
  1. cut : 동일 길이로 나누기, 사용자가 구간값을 직접 입력

  2. qcut : 동일 개수로 나누기, 사용자가 구간개수를 입력

  1. Scaling : 숫자 데이터간의 상대적 크기 차이를 제거하는 방법, 각 컬럼에 들어있는 데이터의 상대적 크기에 따라 분석이나 모델링 결과가 달라짐.
  1. standardScaler() : 각 특성의 평균을 0, 분산을 1로 스케일링 함. 즉, 데이터를 정규분포로 만듦

  2. RobustScaler() : 평균과 분산 대신에 중간 값(정렬 시 중간에 잇는 값)과 사분위 값(1/4, 3/4에 위치한 값)을 사용함, 전체 데이터와 아주 동떨어진 데이터(이상치)에 영향을 받지 않음

  3. MinMaxScaler() : 각 특성이 0과 1 사이에 위치하도록 스케일링함, 분류보다 회귀에 유용함.

  4. MaxAbsScaler() : 각 특성의 절대값이 0과 1 사이가 되도록 스케일링함, 즉 모든 값은 -1과 1 사이로 표현되며, 데이터가 양수일 경우 MinMaxScaler와 같음.

One Hot Encoding : 하나의 데이터만 1, 나머지는 0으로 만들어 주는 방법

  • 수치형/범주형/텍스트형 데이터 중 머신러닝이나 딥러닝 알고맂므은 수치로 된 데이터만 사용가능

  • 범주형/텍스트형 데이터를 기계가 가장 잘 이해할 수 있도록 한 수치형 데이터 형태

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant