빅분기 실기 작업형 2유형(분류) 이 영상 하나로 끝내세요!

Поделиться
HTML-код
  • Опубликовано: 26 сен 2024
  • 빅분기 실기 2유형 전체 코드 입니다.
    import pandas as pd
    train = pd.read_csv("data/customer_train.csv")
    test = pd.read_csv("data/customer_test.csv")
    #데이터 로드 및 확인
    #print(train.info()) #결측값 처리(환불금액) / 라벨인코딩(주구매상품, 주구매지점)
    #print(test.info())
    #결측값 대체(최빈값)
    train.fillna(train['환불금액'].mode()[0], inplace=True)
    test.fillna(test['환불금액'].mode()[0], inplace=True)
    #print(train.info())
    #print(test.info())
    #라벨인코딩
    from sklearn.preprocessing import LabelEncoder
    le = LabelEncoder()
    train['주구매상품'] = le.fit_transform(train['주구매상품'])
    train['주구매지점']=le.fit_transform(train['주구매지점'])
    test['주구매상품'] = le.fit_transform(test['주구매상품'])
    test['주구매지점']=le.fit_transform(test['주구매지점'])
    #print(train.info())
    #print(test.info())
    #데이터 분할
    from sklearn.model_selection import train_test_split
    X = train.drop(columns=['성별','회원ID'])
    y = train['성별']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2024)
    #모델링(분류)
    from sklearn.ensemble import RandomForestClassifier
    rfc = RandomForestClassifier(n_estimators=150, max_depth=20, random_state=2024)
    rfc.fit(X_train, y_train)
    pred1=rfc.predict(X_test) #pred1 : train 데이터에대한 예측 값
    #성능평가
    from sklearn.metrics import roc_auc_score, accuracy_score
    roc = roc_auc_score(y_test, pred1)
    acc = accuracy_score(y_test, pred1)
    #print('roc:', roc) #0.6023
    #print('acc:', acc) #0.6642
    #테스트 데이터 예측
    test_X = test.drop(columns=['회원ID'])
    pred2=rfc.predict(test_X)
    #print(pred2)
    #결과 데이터 제출 및 확인
    pd.DataFrame({'pred':pred2}).to_csv('result.csv', index=False)
    result = pd.read_csv('result.csv')
    #print(result)

Комментарии • 94

  • @arnold2210
    @arnold2210 2 месяца назад

    실기 2, 3 유형 공부를 안 해서 시험치러 갈까말까 고민하다가 시험날 아침에 이 영상 보고 코드 사진 찍어서 시험 직전까지 외우고 쳤는데 2유형 30점 받고 실기 합격했습니다~ 실무에서 퍼포먼스 내려는 용도라면 다른 좋은 강의들이 많겠지만 시험 합격용으로는 영상 제목처럼 이 영상 하나로 충분하네요. 꼭 필요한 내용만 간결하게 있어서 좋았습니다.

    • @aiaiyouknow1063
      @aiaiyouknow1063  2 месяца назад +1

      제가 다 뿌듯하네요. ^^ 마지막까지 포기하지 않고 잘해주셔서 좋은 결과 있었던것 같아요! 정말 축하드립니다!

  • @김제영-k7n
    @김제영-k7n 3 месяца назад +1

    빅분기 실기 관련 여러 유투브를 들었지만.. 여기설명 자료 너무 이해하기 쉽게 강의해주셔서 감사할 따름입니다. 차주시험까지 10번씩 복습해서 합격해보도록 하겠습니다 ^^ 감사합니다

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      감사합니다! 꼭 합격하세요!! 😃

  • @앙-v1b
    @앙-v1b 3 месяца назад

    진짜 댓글 잘 안남기는데 지금까지 흩어진 퍼즐이 다 맞춰진 느낌이에요 감사합니다!

  • @darkmoon4346
    @darkmoon4346 3 месяца назад

    시험 얼마 남지 않았는데 ㅎㅎ 전체적 내용을 한번에 파악할수있게 남겨주셔서 감사합니다!

  • @LEE0616
    @LEE0616 3 месяца назад

    교수님 감사합니다

  • @jlee1558
    @jlee1558 3 месяца назад

    너무 깔끔하네요~

  • @Kelly-eb8li
    @Kelly-eb8li 3 месяца назад

    저 회귀도 올려주세요! 너무 깔끔한강의 조아요❤❤

  • @나미용사
    @나미용사 3 месяца назад

    영상 감사합니다. 1유형 예시문제도 해주시면 감사하겠습니다~

  • @이현구-l1s
    @이현구-l1s 3 месяца назад

    좋은 영상 너무 감사합니다! 시험 앞두고 많은 도움이 될 것 같네요~
    혹시 숫자형 변수 스케일링은 따로 하지 않아도 되나요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      우선 저는 최소한의 작업을 설명드렸구요. 분석가의 입장에서 추가적인 작업이 필요하다고 느껴지면 스케일링 하셔도 물론 됩니다.

  • @shcho3765
    @shcho3765 3 месяца назад

    영상감사합니다. 2유형에 대해서 전체적인 이해가 너무 필요했는데 정말 잘봤습니다.
    질문이 있어서 한번 남겨봅니다..
    cross validation을 따로 하시지 않은 것 같은데, 혹시 이유가 있을까요? 추가로 진행한다면 빅분기에서 좀더 점수를 받을 수 있을까 궁금합니다.

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      물론 하셔도 됩니다. 제가 작성한 코드는 정리가 필요하신분들 혹은 참고용으로 최대한 복잡하지 않은 방법을 설명드린거예요!

  • @dnskaod
    @dnskaod 3 месяца назад +1

    환불금액의 결측치는 0이 이상적이라 생각해서 0으로 채워서 풀어도 괜찮을까요? 물론 보통은 평균이나 최빈값 등으로 대체하는거론 알고있어요
    혹시 애매하다 생각들면 전처리 후 모델평가까지 한 값과, 다시 다르게 전처리하고 모델평가해서 더 나은 값 찾는건 리스크가 있는걸까요..?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      음...기존에 기출 사례를 보면 "특정 컬럼의 데이터 중 0으로 입력되어있는 값은 결측값으로 보고 연산에서 제외한다."라는 조건이 있었거든요. 제가 평가기관은 아니라서 확답을 드릴 순 없지만 결측값 대체값으로 0값은 적절해보이지 않습니다.
      기왕 대체할 것이라면 다른 값으로 대체하는게 더욱 적합할 것 같아요.

  • @정지현-p4f
    @정지현-p4f 3 месяца назад +1

    LabelEncoder 관련 질문 있습니다.
    train['주구매지점'] = le.fit_transform(train['주구매지점'])
    test['주구매지점'] = le.fit_transform(test['주구매지점'])
    이렇게 하면 개별적으로 encoding이 되기 때문에 부정확한거 아닌가요?
    예를 들어 train 데이터에서 '주구매지점' 내에서 '이마트':0 , '홈플러스':1, '롯데':2 로 인코딩하였는데
    test 데이터에서 '주구매지점' 내 '이마트':2 , '홈플러스':0, '롯데':1 로 인코딩 될 수도 있잖아요.
    그러면 같은 모델에 돌리는게 의미가 없을 것 같은데, 제가 이해를 못한건지 궁금해서 질문드립니다.
    제가 알기로는
    train['주구매지점'] = le.fit_transform(train['주구매지점']) 으로 인코딩에 대한 기준을 세우고
    test['주구매지점'] = le.transform(test['주구매지점']) 으로 test 데이터에 그 기준을 transform 하는 걸로 알고 있습니다.

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      제가 보여드린대로 작업하셔도 문제 없을거라고 생각됩니다. 실제 시험 볼 때 저도 영상에서 보여드린대로 전처리 작업했었고, 감점 없이 채점되었어요! 말씀주신대로 코드를 작성할 경우 아마 test 데이터에 라벨인코딩이 안된 상태라 transform() 부분에서 에러가 날거예요.

    • @nonamek7272
      @nonamek7272 3 месяца назад +1

      저도 이렇게 알고있어요 학습데이터에 없는 테스트 데이터 때문에 에러 나는 부분은 따로 처리해주어야 하고요. 코드에 대해서는 따로 채점을 안하나보네요..

    • @조영석-t2d
      @조영석-t2d 3 месяца назад

      train과 test의 데이터 차이가 있으면, 두 데이터 합쳐서 fit() 한 후에 , train, test 각각 transform()하면 되지 않나요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      그렇게 하셔도 됩니다.

  • @박라미-l4k
    @박라미-l4k 3 месяца назад

    안녕하세요 너무너무 좋은 강의 잘 들었습니다!! 2유형은 이해가 잘 안됐었는데 이 영상으로 이해가 팍 됐어요😂😂 실제 시험도 이것과 비슷한 난이도로 나올까요?😢

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      네 전체적인 흐름 파악해서 작업하실 수 있으면 무난히 좋은 점수 받으실 수 있을거예요! 다만 딱 요 문제만 풀어보고 가시면 안댑니다!

    • @박라미-l4k
      @박라미-l4k 3 месяца назад

      ​@@aiaiyouknow1063 넵 알겠습니다!! 열심히 해서 합격해보겠습니당💖💖

  • @chabaaam1540
    @chabaaam1540 2 месяца назад

    강의듣고 오늘 2유형 만점 합격했습니다 감사합니다

    • @aiaiyouknow1063
      @aiaiyouknow1063  2 месяца назад

      우앗! 만점! 합격 너무너무 축하드립니다! 😆

  • @노수지-w6z
    @노수지-w6z 3 месяца назад

    교수님 질문이 있습니다!
    n_estimators,max_depth 부분에서 보통 몇으로 해야하나요 ??? 수치를

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +2

      제가 설명드린 수치로 우선 실습해보시고, 위아래로 수치 조절해보시는게 좋아요. 데이터에 따라 결과는
      달라지거든요!

  • @김다원-n4u
    @김다원-n4u 3 месяца назад

    감사합니다 선생님 너무 도움 많이 되었습니다
    질문이 있습니다 제가 알기로는 AUC라는 표현이 있으면 model.predict_proba 라고 알고 있는데
    선지에서 확률을 구하라는 말이 없어서 model.predict를 사용하신건가요 ?

  • @민영-v9f
    @민영-v9f 3 месяца назад

    안녕하세요 선생님 좋은 강의 감사합니다.
    혹시 만약 처음에 제공되는게 X_train=pd.read_csv("")
    X_test=pd.read_csv()
    y_train=pd.read_csv()
    이렇게 제공되어도 다 지우고 선생님이 하신 것처럼 맨 처음 train= test= 로 진행해도 되나요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      제 경험상 시험 때 작업형 2유형은 Kdata에서 공개해주신 문제형태 대로 나올텐데요. (Train / Test 구분하여 제공)
      만약 말씀주신대로 데이터가 주어졌다면 그에 맞게 코드를 작성하시는게 맞을것같아요.

  • @민영-v9f
    @민영-v9f 3 месяца назад

    좋은 답변 감사합니다 혹시 성능 평가 단계는 굳이 하지 않아도 괜찮나요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      성능평가 기준으로 채점 되기때문에 해두셔야 합니다!

  • @감자원숭
    @감자원숭 3 месяца назад

    교수님 질문이 있습니당 만약에 회원ID가 object라면 이것도 라벨인코딩 해야하나요? 어차피 제외시키고 모델 돌릴거니까 안해도 상관없나요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      제외하실 거라면 라벨인코딩 안하셔도 됩니다.

  • @Nomad-nt3ep
    @Nomad-nt3ep 3 месяца назад

    감사히 잘보고 있습니다.
    회귀편도 봤는데요. 라벨인코딩시에
    회귀편에서는
    df['성별'] = le.fit_transform(df[['성별']])
    이런식이었는데, 시험환경에서는 이렇게 쓰면 오류를 표출하구요
    분류편에서 코드 작성하신대로
    df['성별'] = le.fit_transform(df['성별']) 이렇게 하면 시험환경에서 오류가 안나더라구
    어떤 형태로 코드를 작성해야 하는걸까요.

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      제가 올려드린 회귀모델 영상에서 라벨인코딩할 때 df['brand']=le.fit_transform(df['brand']) 이런 형태로 코드를 작성해 드렸는데, 혹시 다시 확인해보시겠어요? 이 형태가 맞습니다.

    • @Nomad-nt3ep
      @Nomad-nt3ep 3 месяца назад

      @@aiaiyouknow1063 죄송합니다. 라벨인코딩이 아니고, 1유형의 Min-Max 스케일링 할때 였네요. 스케일러와 인코더로 넘겨야할 데이터의 차원이 다른가요? 스케일러는 [[ ]], 인코더는 []로 사용하면 되는걸까요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +1

      @@Nomad-nt3ep 네 맞습니다!

  • @Gangdalf-si9nt
    @Gangdalf-si9nt 3 месяца назад

    안녕하세요 어제부터 2유형 막 시작한 비전공 수험자인데요
    아무것도 모르는 상태에서 그냥 들이박다가 영상보고 푸는 느낌? 돌아가는 과정은 살짝 감 잡은 것 같은데 궁금한게 있습니다
    1. 다른 분들 예시문제 보면 x_train, y_train, x_test 보통 이렇게 3가지가 주어지던데
    영상처럼 체험문제 같이 train과 test 이렇게 2가지 주어지면 풀 때 서로 어떤걸 주의하면서 풀어야하나요?
    2. random state = 2024가 3500개 중에 랜덤으로 뽑을거고 뽑은 2024개를 고정하는 느낌인 것 같은데 데이터 수에 따라 정하는 값이 다를 것 같은데 기준 같은게 있는건가요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      1. 보통 시험에서는 제가 영상에서 설명드리는대로 Train 데이터와 Test 데이터가 주어지고, 작업하도록 안내될거예요. 따라서 영상에서 보여드린대로 작업하시면 무리 없이 코딩 가능하실겁니다! 사용하는 데이터에 따라 혹은 코딩 방식에 따라 코드는 차이가 있을
      수 있어요.
      2. 랜덤스테이트 값은 랜덤하게 수치를 가져오되 고정값(2024 등)을 넣으면 그 값을 넣을때는 동일한 랜덤값들이 추출되어 결과 성능을 고정할 수 있기에 사용되요. 즉 10을 넣을때는 그러한 랜덤값이 123을 넣을때는 그러한 랜덤값이 추출된단 이야기죠. 랜던값 추출은 내부 연산 기준으로 추출됩니다. 이때 랜덤값은 다른 정수를 넣어도 되요.
      랜덤스테이트는 입력하는 수치 자체가 중요한것이 아니라 코드를 실행할때마다 추출되는 데이터가 달라져서 정확도가 바뀌는 것을 방지하기 위함이라고 이해해주심 될 것 같네요!

  • @퇀
    @퇀 3 месяца назад

    결측치 처리할 때 train. 하면 안돼고 train['환불금액'].fillna 해야되는거아닌가요

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      Train 데이터에 결측값 컬럼이 하나이니 이렇게 작성해도 괜찮아요.

  • @리옹이-r7w
    @리옹이-r7w 3 месяца назад

    널값 채울때!
    train['환불금액'].fillna(train.groupby('성별')['환불금액'].transform('mean'), inplace=True)
    test['환불금액'].fillna(test['환불금액'].mode()[0], inplace=True)
    이런식으로 train에서는 정답값 그룹화해서 채워넣고
    test는 정답값이 없으니 그냥 최빈값으로 채워 넣고
    이런식으로 해도 되나요??? auc값은 대폭 상승하긴 합니다.
    다만 두 세트 널값 채우는 방식이 달라 틀리게 할거 같아 궁금하여 질문합니다!!!!

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      트레인, 테스트 대체 값을 최빈값으로 할지 평균으로 할지 동일하게 맞춰주시는게 적합할거같네요.

    • @리옹이-r7w
      @리옹이-r7w 3 месяца назад

      @@aiaiyouknow1063 헉 바로 답변을!! 감사합니다!!

  • @pgmwisdo
    @pgmwisdo 3 месяца назад

    강의 감사합니다! 마지막에 pred2 부분이 잘 이해가 안 되어서 질문드립니다..! 지금 제가 이해한걸론 train 데이터로 훈련된 rfc 모델에 X_test 데이터를 넣으면 끝날꺼 같은데, test_X를 따로 만들어주는 이유가 무엇일까요? pred1 : train 데이터에대한 예측 값이라고 되어있는데 pred1도 X_test여서 test 데이터에 대한 예측값이 아닌가 싶은게 현재 이해 상황입니다!..

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +1

      시험에서는 Train 데이터는 독립변수와 종속변수가 주어지지만 Test 데이터는 독립변수만 주어집니다. 그 이유는 Train 데이터의 일부를 학습데이터로 사용하여 모델을 학습시키고 그 모델로 예측한 결과(pred1)를 실제 데이터(y_test)와 비교하면서 성능을 평가하기 위함이죠.
      train test split 함수로 나눈것은 Train 데이터를 80퍼센트는 학습으로 20퍼센트는 테스트로 나누겠다는 겁니다. 그러니 pred1은 성능평가를 위한 Train데이터의 예측값인거구요.
      시험에서는 어느정도 성능이 완성된 모델을 가지고 Test 데이터를 활용하여 목표변수값을 예측해내야하므로 pred2에 예측값을 저장하여 결과를 제출하는 것입니다!
      이부분에서 많이들 혼동하시는데 헷갈리시면 안대요.

    • @pgmwisdo
      @pgmwisdo 3 месяца назад

      @@aiaiyouknow1063 아 어떻게 보면 간단한건데 헷갈렸네요! pred1은 train 데이터로 이거저거 했던거고 pred2는 아껴두게된 test 데이터를 쓰는거네요. test란 용어에 헷갈렸던 거 같습니다 ㅎㅎ 시험포기할까 하다 영상보고 감 잡아서 연습중입니다. 감사합니다!

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      @@pgmwisdo no 포기! 좋은 결과 있으실거예요! 화이팅!!

  • @hammmmmmmmmmm
    @hammmmmmmmmmm 3 месяца назад

    교수님 분류 모델일땐 random_state=2024이고 회귀 모델일땐 random_state=10으로 하셨는데, 이유가 뭔가요?? 대강 어떤 기준으로 설정해주면 될까요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +1

      특별한 이유는 없습니다. 랜덤스테이트 값은 동일하게 랜덤값을 추출하여 동일한 성능을 얻기 위함이라 어떤 수를 쓰셔도 크게 관계는 없어요. 랜덤 스테이트 수치에 따라 랜덤으로 가져오는 데이터가 달라질 뿐이죠.

    • @hammmmmmmmmmm
      @hammmmmmmmmmm 3 месяца назад

      @@aiaiyouknow1063 그럼 그냥 모든 문제에서 10으로 통일해도 될까요?? 그리고 빅분기 실기 2유형은 분류, 회귀 다 랜덤포레스트로만 준비해도 될까요?.. 혹시 다른거 사용하라는 문제가 나올까요..?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +1

      @hammmmmmmmmmm 네 통일해서 사용해도 전혀 문제 없어요. 현재 기준 분류 회귀 이렇게 유형이 출제되는 상황이라 그렇게 준비하시면 작업에 무리 없을거예요. 그래도 시험 전까지 시간이 좀? 있으니 수험서나 각종 자료들 보시면서 다양한 내용들 참고해 두심 더 좋겠죠?

    • @hammmmmmmmmmm
      @hammmmmmmmmmm 3 месяца назад

      @@aiaiyouknow1063 네 감사합니다!!

  • @InYongKim-rs1hf
    @InYongKim-rs1hf 3 месяца назад

    명목변수들을 더미변수로 처리 안하고 일반 수치형 데이터로 인코딩하면 분석에 문제가 있지 않나요?? 덧붙이자면 a지점 b지점이 각각 1과 2로 인코딩 했을때 a지점

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      넵 문제 없습니당

    • @9D5P
      @9D5P 3 месяца назад

      모델이 트리계열이라 상관없어요

  • @콩비니-g4r
    @콩비니-g4r 3 месяца назад

    안녕하세요! 영상 감사합니다 질문이 있어 댓글 남깁니다.
    1. 데이터 분할할때
    x = train.drop(columns=[‘성별‘,’회원id’]
    y = train[‘성별‘]
    이렇게만 분할 해도 점수 잘 나올까요..?
    위에처럼 종속/독립으로 분할하는 변수 지정하는걸로만 여태 공부해왔는데 사용하던 코드가 아니라서 제가 잘못하고 있나 불안하네요ㅠㅠ
    2. 성능 평가하는 부분은 시험에 점수로 반영되는 부분은 아닌거죵?
    3. 모델 학습할때 rfc=RandomForestClassifier() 이 괄호 안에 아무것도 안적고 돌려도 괜찮을까요?
    제가 딱 기본만 외워가려고 하는데 급 혼란오네요 ㅠㅠ 이렇게만 해도 점수가 나올란지요….
    3가지 답변 해주시면 정말 감사하겠습니다!!!

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      1. 네 그렇게 하셔도 됩니다.
      2. 시험에서 성능평가 지표로 주신 기준(F1-score, RMSE 등)은 저희가 최종적으로 제출한 데이터의 평가 기준으로 사용됩니다. 즉 저희가 코드에서 확인하는 것은 트레인 데이터에 대한 성능으로 대략적인 모델 성능을 확인하는 용도라고 보심되요.(테스트 데이터에 대한 종속변수가 시험에서는 주어지지 않아서 테스트 데이터에 대한 성능평가 결과는 저희가 알 수 없으니깐요!)
      3. 그렇게 하셔도 됩니다. 그럴 경우 파라미터 기본 설정값으로 모델링 및 학습됩니다. 다만 성능이 아쉬운경우 영상의 설명처럼 파라미터 값을 수정하면서 결과 확인하심되요!

    • @콩비니-g4r
      @콩비니-g4r 3 месяца назад +1

      답변 정말 감사합니다!!!!! 시험 잘 보고오겠습니당~!!👍🏻👍🏻

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      @user-tr1yn3xn1m 합격하세요! 홧팅!! 😊

  • @homerunballl
    @homerunballl 3 месяца назад

    교수님 혹시 3유형 지금 준비중이신가요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      3유형 영상 작년 12월에 올려드렸어요!

    • @homerunballl
      @homerunballl 3 месяца назад

      @@aiaiyouknow1063 감사합니다! :)

  • @서민혁-k1j
    @서민혁-k1j 3 месяца назад

    혹시 라벨인코딩하실때 트레인과 테스트전부 fit_trasnfrom을 하셨는데 그러면 테스트에는 트레인라벨이 적용안되고 초기화되지않나요
    만약 트레인에서fit한 라벨을 테스트에다가 transform을 하게되면 오류가뜹니다 같지않는 데이터를 가지고있나봅니다. 혹시 그럴땐 어떡하나요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      라벨인코딩이 문자열 데이터를 수치형으로 바꿔주는 것이고, 데이터를 분석하고자 하는 경우 컬럼 데이터에 문자열 데이터가 포함된 경우 연산이 어렵기 때문에 분석에 사용하고자하는 컬럼은 트레인 데이터와 테스트 데이터에 모두 라벨인코딩 처리를 전처리작업으로 해줍니다. 그때 사용되는 함수가 fit_transform()이구요. 어떠한 오류인지는 제가 확인이 되지 않아 정확히 모르겠지만 영상 설명에 전체 코드 넣어두었으니 한번 참고해보시면 좋을것같습니다.

    • @서민혁-k1j
      @서민혁-k1j 3 месяца назад

      네네 문자열을 fit_trasnfrom으로 바꿔주는것까지 이해했습니다 근데 제가알기로는
      x['주구매상품'] = le.fit_transform(x['주구매상품'])
      x['주구매지점'] = le.fit_transform(x['주구매지점'])
      #영상코드
      test['주구매상품'] = le.fit_transform(test_x['주구매상품'])
      test['주구매지점'] = le.fit_transform(test_x['주구매지점'])
      #제가 알던 코드
      test['주구매상품'] = le.transform(test_x['주구매상품'])
      test['주구매지점'] = le.transform(test_x['주구매지점'])
      이렇게 훈련에 썻던 똑같은 라벨을 적용하기위해서 test에는 train에적용된 라벨을 적용해야하는걸로 알고있거든요
      영상코드대로하면 라벨인코딩이 초기화가되면서 train과 test에 라벨인코딩방식이 같을수도 있고 다를수도 있을거같아서요

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      @user-sj4zo1xp8h 트레인은 트레인대로 테스트는 테스트 데이터 대로 라벨인코딩 적용해주셔도 시험에서 큰 문제 없을겁니다. ^^ 말씀주신대로 작업할 경우 데이터 사이즈도 맞지 않고, 테스트 데이터는 라벨인코딩이 되지 않은 상태이기 때문에 오류가 날거예요.

    • @서민혁-k1j
      @서민혁-k1j 3 месяца назад

      @@aiaiyouknow1063 그럼 만약에
      새로 라벨인코딩을 따로하면 똑같은것은 똑같은 라벨이 적용될수도있지만 만약 데이터데이터 값의 순서가 다르고 라벨인코딩이 똑같은 문자여도 서로다르게 될까봐 물어봤습니다. 그럴가능성은 없겠죠?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      @user-sj4zo1xp8h 제가 영상에서 보여드린것과 같은 순서대로 작업하시면 문제 없을거예요!

  • @Gahan-d9u
    @Gahan-d9u 3 месяца назад

    책 구매하고 잘보고있습니다 교수님. 혹시 마지막으로 회귀모델및 주의사항 영상도 하나 올려 주실 수 있을까요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +1

      꺗 독자님이셨군요. 회귀모델 영상도 곧 업로드 예정입니다! 시험이 얼마 안남아서 서둘러 보려구요!

  • @핸즈관
    @핸즈관 3 месяца назад

    2곳 틀렸어요 수정하세요 잘못된 정보인데

  • @전블로
    @전블로 3 месяца назад

    안녕하세요 혹시 데이터 분할시 X에 성별하고 회원 ID를 삭제하셨는데 성별만 삭제해도 괜찮을까요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      네 괜찮아요~

    • @전블로
      @전블로 3 месяца назад

      ​@@aiaiyouknow1063 감사합니다 그럼 혹시 #테스트 데이터 예측 부분은 생략해도 되는건가요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад +1

      그렇게 하셨다면 테스트 데이터에서 회원 ID 삭제하는 부분은 제외하고 코드 작성하심 되겠죠?

    • @전블로
      @전블로 3 месяца назад

      @@aiaiyouknow1063 제외하고 코드 작성하였더니 test_X 가 정의되어있지않다고 에러뜨네요 ㅜ

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      회원 ID 삭제 부분 제외하셨으면 predict() 함수 안에 test를 넣으셔야되요!

  • @nonamek7272
    @nonamek7272 3 месяца назад

    test데이터 결측치를 test데이터의 최빈값으로 처리하면 data leakage 아닌가용? 빅분기 시험에서는 상관 없는건가요?

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      시험에서 트레인, 테스트 데이터에 결측값이 있는 경우 모두 처리(대체 혹은 삭제)를 해주어야 합니다. 대체할 경우 최빈값이 자주 사용되긴 하는데, 이는 분석가의 판단에 의해 결정됩니다. 제 경험상 영상에서 설명드린 순서대로 작업할 경우 시험에서 문제 없을거예요!

    • @nonamek7272
      @nonamek7272 3 месяца назад

      테스터 데이터값의 통계정보를 이용하면 data leakage가 되지 않냐는 질문이었어요 ㅎㅎ 경진대회 참여하다가 문제된적이 있어서요 빅분기시험은 상관 없나보네요!

    • @aiaiyouknow1063
      @aiaiyouknow1063  3 месяца назад

      네 맞습니당

    • @9D5P
      @9D5P 3 месяца назад

      train 최빈값으로 동일하게 결측치 처리하는게 맞긴하죠