강의

멘토링

커뮤니티

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

s93610님의 프로필 이미지
s93610

작성한 질문수

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

작업형2 연습문제 풀이 4

해결된 질문

작성

·

16

0

target = train.pop('target')

cols = ['gender', 'enrolled_university', 'education_level', 'major_discipline', 'experience', 'company_size'
, 'company_type', 'last_new_job']
for col in cols:
  train[col] = train[col].fillna(train[col].mode()[0])
  test[col] = test[col].fillna(test[col].mode()[0])

from sklearn.preprocessing import LabelEncoder
cols2 = train.select_dtypes(include='O').columns
for col in cols2:
  le = LabelEncoder()
  train[col] = le.fit_transform(train[col])
  test[col] = le.transform(test[col])
# 결측치 처리
train = train.fillna("X")
test = test.fillna("X")

# train과 test 합쳐서 원핫인코딩
combined = pd.concat([train, test])
combined_dummies = pd.get_dummies(combined)
n_train = len(train)
train = combined_dummies[:n_train]
test = combined_dummies[n_train:]

저는 위의 방식으로 풀었고 풀이는 아래 방식으로 풀었는데, result.csv에서 roc_auc 결과를 비교하면 많이 다르게 나타납니당... 예를 들어 같은 인덱스임에도 제 방식에서는 roc_auc가 0.2로 나오는데 풀이에서는 0.02가 됩니다. 이 경우에는 풀이에 따라서 0,1로 완전히 다르게 인식되는데도 점수 받는데 상관이 없을까요..?

답변 2

0

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

0,1로 완전히 다르게 인식

-> 그럴 수도 있지만 예시의 경우는 아니에요 보통 스레스홀드를 0.5로 둔다면 0.02도 0이고, 0.2도 0입니다.

 

result.csv에서 roc_auc 결과를 비교하면 많이 다르게 나타납니당

-> 이렇게 비교하면 안됩니다. 평가지표로 비교하셔야 해요

예를 들어, 제가 사업을 하는데 1월 매출만 가지고 평가하는 것이 아니라 1년 매출로 평가해야 되는 것 처럼요!!

0

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

작업형2 연습문제에서 제공된 두 가지 방법을 비교해본 결과, 결과 값에서 차이가 발생했다고 하셨군요. 데이터 전처리 방법에 따라 모델 성능의 차이가 발생할 수 있습니다. 일부 주요 포인트를 정리해 드리겠습니다.

결측치 처리 및 인코딩 방식의 차이:

  1. 결측치 처리:

    • 첫 번째 방법: mode()를 사용하여 가장 많이 등장하는 값으로 결측치를 채우는 방법입니다. 이는 범주형 데이터에서 자주 사용되는 방식으로, 데이터의 통계적 경향을 반영할 수 있습니다.
    • 두 번째 방법: 결측치를 “X”로 대체하여 결측 자체를 하나의 범주로 간주하는 방식입니다. 단순하고 간단한 처리 방법이지만, 데이터 특성에 따라 이 방식이 유리하거나 불리할 수 있습니다.
  2. 인코딩 방식:

    • 라벨 인코딩: 첫 번째 방법에서 사용되었습니다. 범주형 변수에 각각 고유한 정수 값을 부여하는 방식입니다. 하지만 이러한 방식은 각 범주에 순서가 있다고 모델이 오인할 수 있습니다.
    • 원핫 인코딩: 두 번째 방법에서 사용되었습니다. 각 범주마다 새로운 이진 변수를 생성하여 분석적 유연성을 제공합니다. 이는 모델이 범주 순서에 대한 오해를 하지 않도록 해줍니다.

결과값 차이에 대한 평가:

  • roc_auc_score 차이: ROC AUC는 모델의 분류 성능을 측정하는 지표이며, 다르게 인코딩된 데이터 세트를 사용하여 훈련된 두 모델의 성능은 당연히 다를 수 있습니다.
  • 모델 평가 시 고려사항: 모델의 성능은 데이터의 본질과 데이터 전처리 방법에 따라서 크게 달라질 수 있습니다. 같은 데이터셋이라도 전처리 방식에 따라 모델은 서로 다르게 결과를 이해하고 생성합니다.

관련 질문 및 해결 방법 참고:

유사한 질문에 대한 답변이 있습니다. 이를 통해 더욱 깊은 이해를 얻을 수 있을 것입니다.
- 기존 질문 링크: 작업형2 연습문제와 전처리에 관한 이해

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

s93610님의 프로필 이미지
s93610

작성한 질문수

질문하기