ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 빅데이터분석기사 실기 준비 - Day 3
    자격증/빅데이터분석기사 2021. 11. 26. 06:41
    반응형

    4. 변수 변환

    • 로그 변환: np.log / 제곱근 변환: np.sqrt

    5. 결측치 처리

    • 전체 데이터에 대한 결측치 확인 => df.isnull() or pd.isnull(df) or df.notnull() or pd.notnull()
    • 변수 별 결측치 개수 확인 => df.isnull().sum() or df.notnull().sum()
    • 행 별 결측치 개수 확인 => df.isnull().sum(1)
    • 결측값 제거 => df.dropna(0) : 행 제거, df.dropna(1) : 열 제거
    • 결측값 대체
      • 결측값을 특정 값으로 대체

        df.fillna(method='ffill') or df.fillna(method='pad') 결측값을 앞에 있는 값으로 채움
        df.fillna(method='bfill') or df.fillna(method='backfill') 결측값을 뒤에 있는 값으로 채움

      • 결측값을 변수별 평균으로 대체 => data.fillna(data.mean())
      • 결측값을 다른 변수의 값으로 대체
        data2['sales']가 결측값이 아니면 sales 값 그대로 사용하고 결측값이면  salary 값 사용
      • 결측값을 그룹 평균값으로 대체

        다음은 분석자가 지정한 대로 결측값 채우기

        변수 별로 대체 방법을 한 번에 적용 (interpolate() 는 보간법)

    6. 데이터 정제 실전과제

    - 먼저 데이터 읽어오기

    - describe(), hist() 통해 기술통계량과 히스토그램 확인

    히스토그램을 살펴보면 bedrooms, households, rooms가 왼쪽으로 치우쳐저 있고 아주 큰 값을 가지는 이상치가 있음

    - bedrooms 변수 세부 검토

    bedrooms 가 0.6 이상에서 보임

    bedrooms 변수가 0.6 미만인 데이터의 분포 확인

    bedrooms가 0.6 이상인 경우의 데이터 개수는 14개 밖에 없음

    - households 변수 세부 검토

    100 이하가 아닌 10 이하부터 봐도 될듯

    22개 밖에 없어서 제거하나 마나

    - rooms 변수 세부 검토

    20 미만인 경우 자세히 보자

    20보다 큰 경우의 데이터개수

    - 정제된 데이터셋 생성한 후 기술통계량 확인

    - 히스토그램 확인

    확인하면 모든 변수들의 분포가 비슷

    - 선형회귀 적용

     

    분석 단계

    => 데이터 불러오기 -> describe() or hist() 사용해 기술통계량 분포 확인 -> 이상치 처리 -> feature target 나누기 -> train test 나누기 -> 데이터 정규화 -> 모델 생성해서 적용

    반응형

    댓글

Designed by Tistory.