강의

멘토링

로드맵

Inflearn brand logo image

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

지원님의 프로필 이미지
지원

작성한 질문수

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

작업형2 모의문제1

작업형2 질문

해결된 질문

작성

·

51

0

트레인과 테스트의 범주형 데이터가 다를 수 있어서 그냥 처음부터 두 데이터를 합쳐서 레이블이나 원-핫인코딩을 하려고 합니다

1.레이블인코딩시

df=pd.concat([train,test]) 후

cols=df.select_dtypes(include='O').colunms 로 가능한가요?

그리고 합쳐진 데이터니까 df[col]=le.fit_transfom(df[col])만 해주면 되는거죠?

 

  1. 어차피 두 데이터를 합쳐서 할 경우 set함수사용은 불필요한거죠?

  2. f1스코어를 사용할경우,average꼭 넣어주어야하나요?

답변 2

0

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

  1. 네 맞습니다.

  2. 네 정확합니다 🙂


    단, 1번과 2번 케이스가 아직 기출에서 나온적은 없습니다.

  3. 다중분류일 경우 average 옵션이 꼭 필요하고 시험 문제에서 ‘macro’, ‘micro’, ‘weighted' 등을 알려주고 있어요

0

안녕하세요, 인프런 AI 인턴입니다. 지원님께서 작업형 2에 대한 질문을 주셨네요. 데이터를 합쳐서 레이블 인코딩이나 원핫 인코딩을 진행하려는 의도는 범주형 데이터의 일관성을 유지하려는 좋은 접근입니다. 이에 대한 답변을 드리면:

1. 데이터 합친 후 레이블 인코딩

  • df = pd.concat([train, test]) 후, 범주형 데이터를 선택하는 방법으로 cols = df.select_dtypes(include='O').columns는 가능합니다. 이로써 범주형 컬럼들을 선택하게 됩니다.
  • 레이블 인코딩의 경우, 합쳐진 데이터에 대해 le.fit_transform(df[col])을 사용하여 레이블 인코딩을 수행하면 됩니다. 이렇게 하면 train과 test 모든 데이터를 같은 기준으로 인코딩할 수 있습니다.

2. set 함수의 사용

  • 두 데이터를 합쳤을 경우에는 범주형 데이터에서 고유값을 확인하거나 전처리할 필요가 없는 경우 set 함수를 사용하지 않아도 됩니다. 인코딩을 위해서는 모든 데이터를 같은 잣대로 인코딩하는 것이 목적이므로, 이미 concatenate된 데이터프레임에서 동일한 컬럼에 인코딩을 적용하면 문제없습니다.

3. F1 스코어와 average 파라미터

  • F1 스코어를 다중 클래스 문제에서 사용할 경우, average 파라미터는 필수로 지정해주어야 합니다. average로 선택할 수 있는 옵션에는 ‘macro’, ‘micro’, ‘weighted’ 등이 있으며, 상황에 맞춰 선택해야 각 클래스의 F1 스코어를 어떻게 집계할지 결정합니다.
    • 'macro': 클래스별 F1 스코어의 산술평균으로, 모든 클래스를 동일한 비중으로 고려합니다.
    • 'micro': 전체 TP, FP, FN을 통해 전반적인 F1 스코어를 계산하며, 클래스 간 불균형을 반영합니다.
    • 'weighted': 각 클래스별 F1 스코어에 해당 클래스의 샘플 수를 가중치로 곱한 후 평균입니다.

이 접근은 범주형 데이터가 달라 예상치 못한 에러를 방지할 수 있으며, 머신러닝 모델링 시 일관된 데이터 처리를 보장합니다.

관련된 유사한 사례에 대한 참고 답변은 아래 링크에서 확인하실 수 있습니다:

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

지원님의 프로필 이미지
지원

작성한 질문수

질문하기