인프런 커뮤니티 질문&답변

ji_nhee님의 프로필 이미지
ji_nhee

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

3회 기출유형(작업형2)

3회 기출문제 작업형2

해결된 질문

작성

·

299

0

안녕하세요! 강의 듣던 중 질문이 생겨 글남깁니다.

  1. 2회 기출문제 작업형2 강의와는 다르게 왜 데이터 전처리 과정에서 수치형데이터와 범주형데이터를 분리하나요? 왜 2회 기출문제 과정에서는 필요가없는걸까요? ㅠㅠ

     

    # 수치형 데이터와 범주형 데이터 분리

    n_train = train.select_dtypes(exclude='object').copy()

    c_train = train.select_dtypes(include='object').copy()

    n_test = test.select_dtypes(exclude='object').copy()

    c_test = test.select_dtypes(include='object').copy()

     

    (↑이 과정에 대한 질문입니다!)

     

  2. 어쩔때 robustscaler를 쓰고, minmaxscaler를 쓰고.. 스케일 방법이 다양한데 어떻게 선택하는건가요?

     

  3. 검증데이터 분리할떄 test_size 설정기준은 무엇인가요? 0.1로할떄도 있고 0.2로 할떄도 있으신데 어떻게 선정하시는건가요?

     

  4. 위와 마찬가지로 검증데이터 분리과정에서 random_state = 1204 를 설정하는 이유가 이해가 잘 안갑니다 ㅠ 저것의 의미가 무엇이고 숫자는 왜 1204인건가요??

     

    (3,4번 질문은 이 코드에서의 질문입니다!

    from sklearn.model_selection import train_test_split

    X_tr, X_val, y_tr, y_val = train_test_split(train.drop('TravelInsurance', axis=1),

    train['TravelInsurance'],

    test_size=0.1,

    random_state=1204)

    X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)

     

     

답변 2

1

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

  1. 풀이를 할 때마다 약간씩 다른 방법을 사용해서 보여주고 있어요!! 수치형 데이터와 범주형 데이터를 나눈 이유는 확실하게 처리된 값을 눈으로 보여주고자 분할해서 진행했습니다.
    데이터 프레임을 분리하지 않고 컬럼만 선택해서 진행 가능합니다. 한 예시로 이해해 주세요!

  2. 스케일링은 필수 아니고 선택입니다. 사용할 모델이 트리계열(랜덤포레스트, xgboost, lightgbm)이라면 스케일링 효과가 다소 작을(없을) 수도 있어요. 선형 모델에서 보다 효과가 있습니다.
    전처리 선택의 기준은 모두 해보고 그 중에서 검증데이터로 평가했을 때 좋은 성능을 보이는 것을 선택합니다. 그런데 시험에서는 하나만 준비해서 시간되면 적용을 추천해요!

  3. 검증데이터(test_size) 기준은 0.2로 하시죠!! 데이터 크기가 작을 때 0.1로 했어요

  4. random_states를 고정하는 이유는 랜덤적인 요소가 있기 때문이에요! 그런데 그걸 고정하지 않으면 실행할 때마다 데이터가 다르게 분할됩니다. 그러면 전처리를 잘해서 값이 달라졌는지 데이터가 잘 분할 되었기 때문인지 알 수가 없어요! 따라서 아무 숫자나 넣어서 고정을 반드시 시켜야 합니다. 빠르고 간편하게 0을 넣으시죠:)

0

ji_nhee님의 프로필 이미지
ji_nhee
질문자

빠르고 명쾌한 답변 감사드립니다!

ji_nhee님의 프로필 이미지
ji_nhee

작성한 질문수

질문하기