강의

멘토링

로드맵

Inflearn brand logo image

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

hong8265님의 프로필 이미지
hong8265

작성한 질문수

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

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

작업형 2 데이터 전처리

해결된 질문

작성

·

37

0

image.png

데이터 전처리 부분에서 원핫 인코딩을 진행하는데, 저는 object형 컬럼들을 따로 설정해서 원핫인코딩을 진행하였습니다.
하지만 강의에서는 따로 이런 것 없이 바로 원핫을 진행하였습니다.

그런데 f1_score가 약 30%정도 점수가 차이나서 혹시 컬럼을 안지정하고 원핫을 하는게 맞는지 헷갈리네요! 항상 [작업형2]전처리 부분을 어떻게 해야할지 잘 모르겠습니다..

답변 2

0

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

pd.get_dummies(train[cols])의 결과는 지정한 컬럼만 원-핫 인코딩된 결과이고, 나머지 컬럼은 포함되지 않습니다.

성능의 차이가 있을 수 밖에 없습니다.

또한 컬럼 지정하지 말고 원핫인코딩하는 것이 더 간편합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. hong8265님, 작업형 2에서의 데이터 전처리에 관한 질문을 주셨군요. 원핫 인코딩을 어떻게 적용할지에 대한 혼란을 느끼고 계신 것 같습니다.

원핫 인코딩 방법

작업형 2에서 원핫 인코딩을 진행할 때, 아래와 같은 두 가지 방법이 일반적입니다:

  1. 전체 데이터프레임 대상으로 원핫 인코딩:

    • 해당 방법을 사용하면 train = pd.get_dummies(train)과 같은 방식으로 데이터프레임 내 모든 범주형 컬럼에 대해 원핫 인코딩이 자동으로 적용됩니다.
    • 이 방법은 간편하지만, 데이터프레임 내 모든 범주형 컬럼, 심지어 불필요한 컬럼까지도 변형될 수 있으며, 이로 인해 F1 스코어와 같은 성능 지표에 영향을 줄 수 있습니다.
  2. 특정 컬럼 대상으로 원핫 인코딩:

    • 범주형 변수 목록을 명시하여 필요한 컬럼에 대해서만 원핫 인코딩을 수행할 수도 있습니다. 이는 주로 cols = ['column1', 'column2']와 같이 선언하고, train = pd.get_dummies(train, columns=cols)와 같이 사용합니다.
    • 필요한 컬럼에 대해서만 인코딩을 적용하여 집중적으로 전처리를 수행할 수 있으며, 데이터의 복잡성을 적절히 조절할 수 있습니다.

F1 스코어 차이

f1_score에서 30% 정도의 차이가 발생한 것은, 데이터 전처리 과정에서 전처리 방식 또는 선택한 컬럼 목록에 따라 모델의 입력 데이터가 달라지고, 이에 따른 모델 예측 성능이 변동할 수 있기 때문입니다. 올바른 컬럼 선택 및 전처리 과정은 최종 성능에 큰 영향을 미치므로, 데이터 및 문제 설정에 맞춘 적절한 컬럼 선택이 필요합니다.

아래 링크의 답변을 참고하여 데이터 전처리 시 유사한 문제와 해결 방안을 확인하실 수 있습니다:

이 링크는 여러분이 데이터 전처리와 관련한 유사 사례에서 어떤 접근 방법이 더 적절한지 판단하는 데 도움을 줄 것입니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

hong8265님의 프로필 이미지
hong8265

작성한 질문수

질문하기