강의

멘토링

로드맵

Inflearn brand logo image

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

최수영님의 프로필 이미지
최수영

작성한 질문수

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

예시문제 작업형2(ver. 2023)

예시문제 작업형2(신 버전)

해결된 질문

작성

·

67

0

질문1)

모델 학습 및 예측하기 전에 왜 수치형 데이터만 cols로 뽑으셨는지 궁금합니다. 혹시 object 형태는 인코딩 작업으로 모두 수치형 자료로 바꿔줘야 하는데 그 과정을 생략하기 위해서 cols 형태로 뽑으신건가요 ?

 

질문2)

target = train.pop()

이부분이 잘 이해가 가지 않습니다 model.fit(train[cols], train['성별'])을 해줘도 상관은 없는건가요? 항상 수업에서 검증 데이터를 x_tr, x_val, y_tr, y_val로 나눠서 model.fit(x_tr, y_tr)형태로 넣는 것에 익숙하다 보니 혼동이 오는 것 같습니다 ㅠㅠ!

답변 2

0

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

  1. 범주형 변수 인코딩 없이도 최소한으로 할 수는 있다라는 것을 먼저 보여주고, 이후 범주형 데이터를 인코딩했습니다.

     

  2. 이 영상은 2번 모델링을 진행하고 있어요! 앞부분은 인코딩을 못할 때 수치형만으로도 모델을 만들수 있다 (추천하진 않음)
    2번째 모델을 만들때는 데이터를 나누어서 진행하고 있어요! 익숙해진 형태로 작업해 주세요 🙂

0

안녕하세요, 인프런 AI 인턴입니다. 최수영님.

질문에 대해 답변드리겠습니다.

질문 1) 수치형 데이터만 cols로 추출하는 이유:

일반적으로 머신러닝 모델은 수치형 데이터를 입력으로 받도록 설계되어 있습니다. 따라서 범주형 데이터(object 형태)를 모델에 입력하기 위해서는 반드시 인코딩 작업을 수행하여 수치형으로 변환해야 합니다. cols로 수치형 데이터만 추출하는 것은 인코딩을 이미 완료했거나, 필요한 경우에만 인코딩 수행을 고려하여 모델 학습에 필요한 수치형 피처만 선택하는 과정이라고 볼 수 있습니다.

  • 인코딩 방법: 범주형 데이터를 수치형으로 변환하기 위해, 일반적으로 라벨 인코딩(Label Encoding)이나 원-핫 인코딩(One-Hot Encoding)을 사용합니다.

질문 2) target = train.pop(), model.fit(train[cols], train['성별']):

train.pop('타겟컬럼')은 데이터프레임에서 타겟 열을 추출하고, 나머지 데이터를 훈련 데이터로 사용하는 일반적인 방식입니다. pop 메소드는 해당 컬럼을 추출하면서 동시에 train에서 그 컬럼을 삭제하는 역할을 합니다.

  • model.fit(train[cols], train['성별'])의 구조는 모델에 수치형 데이터 train[cols]를 입력하고, train['성별']을 타겟으로 하여 학습하도록 하는 방법입니다. 이는 타겟 데이터를 별도로 저장하지 않고 바로 지정해서 사용하는 방식으로, 학습 프로세스 측면에서 두 방법 간 큰 차이는 없습니다.

  • 검증 데이터 나누기: train_test_split을 사용하여 데이터를 학습용(X_tr, y_tr)과 검증용(X_val, y_val)으로 나누어 모델의 성능을 검증하는 것이 일반적입니다.

질문자님께서 어떤 과정에서 헷갈리실 수 있는지 이해합니다. 과정 자체에 혼란이 있다면 꼭 데이터를 학습할 때와 평가할 때 어떤 데이터가 들어가고, 어떤 데이터로 성능을 측정하는지를 명확히 아시는 게 중요합니다.

이 문제와 관련해 도움될 만한 작업형2 예시 문제 답변을 참고해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

최수영님의 프로필 이미지
최수영

작성한 질문수

질문하기