inflearn logo
강의

Course

Instructor

Big Data Analyst Exam Practice (Python)

질문입니다 RandomForestClassifier

170

moter2588

1 asked

0

RandomForestClassifier만 적용하여 앙상블 학습하였을때

 

ROC_AUC_SCORE가 1.0이 나오는데,, 연습문제 동영상과 같이 0.84.... 가 나오지 않고 1.0이 나오는 이유가 뭘까요 혹시 과적합이라면 오답이라고 할 수 있을까요?

 

전체 소스 공유합니다.

import seaborn as sns
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.ensemble import RandomForestClassifier

df = sns.load_dataset('titanic')

# 결측치 제거
df['age'] = df['age'].fillna(df.age.mean())
df['deck'] = df.deck.fillna(method='bfill')
df['deck'] = df.deck.fillna(method='ffill')
df['embarked'] = df.embarked.fillna('S')
df['embark_town'] = df.embark_town.fillna('Southampton')

df.isna().sum()

from sklearn.preprocessing import LabelEncoder
obj = ['sex', 'embarked', 'class', 'who', 'adult_male', 'deck', 'embark_town', 'alone']

encoder = LabelEncoder()

for i in obj:
  df[i] = encoder.fit_transform(df[i])

category = ['pclass', 'sex', 'class', 'who', 'adult_male', 'alone']

for i in category:
  df[i] = df[i].astype('category')

df = pd.get_dummies(df)

scaler = MinMaxScaler()
lst = ['age', 'fare']
scaler.fit(df[lst])
df[lst] = scaler.fit_transform(df[lst])

y = df['survived']

X_train, X_test, y_train, y_test = train_test_split(df, y, test_size=0.3, stratify=y, random_state=23)

ml = RandomForestClassifier()

ml.fit(X_train, y_train)
pred = pd.DataFrame(ml.predict_proba(X_test))

from sklearn.metrics import accuracy_score, roc_auc_score

print(roc_auc_score(y_test, pred.iloc[:, 1]))

python 빅데이터

Answer 1

0

communityai8509

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

님의 질문에 대한 답변입니다. RandomForestClassifier를 사용하여 앙상블 학습을 했을 때 ROC_AUC_SCORE가 1.0이 나오는 것은 매우 높은 성능을 의미합니다. 하지만, 이 경우 모델이 훈련 데이터에 과적합되었을 가능성을 고려해볼 수 있습니다. 과적합은 모델이 훈련 데이터에 너무 잘 맞게 학습되어 실제 상황이나 새로운 데이터에는 잘 일반화되지 않는 상태를 말합니다.

ROC_AUC_SCORE가 1.0이라고 바로 오답이라고 할 수는 없습니다. 단, 실제 환경에서는 이러한 완벽한 성능을 기대하기 어렵기 때문에 모델의 과적합 여부를 추가적으로 분석해 볼 필요가 있습니다. 예를 들어, 다른 검증 방법을 사용해 보거나, 교차 검증을 진행하여 모델의 일반화 성능을 평가해 볼 수 있습니다.

과적합을 줄이기 위한 몇 가지 방법은 다음과 같습니다.
- 데이터의 양을 늘리기
- 모델의 복잡도를 줄이기
- 정규화 기법 사용하기
- 피처의 수를 줄이기
- 앙상블 학습의 파라미터 조정하기(예: max_depth, min_samples_split 등)

프로젝트의 목적과 데이터에 맞는 최적의 모델 성능을 찾기 위해 여러 실험을 해보시길 권장합니다.

구름IDE 서비스 종료 이후 학습환경

0

122

1

10강 연습문제

0

166

1

VotingClassifier Hard 사용

0

111

1

구름IDE 실행 도움 요청

0

162

1

질문!

0

340

1

데이터 더미화 에러발생 질문.

0

317

1

많은 컬럼과 많은 결측치를 가지는 데이터

0

201

1

Dataset은 어디서 받을 수 있나요?

0

395

1

mpg 데이터셋 위치

0

339

1

교육영상 4강. 작업유형1-문제(1)에 대한 코드는 어디서 받을 수 있나요?

0

376

1

단순평균(1집단)T-test 1번 풀이

0

480

2

강의자료 문의

1

549

1

구름IDE 실행불가문제 ㅠㅠ

0

808

2

제7강 작업유형2-데이터 전처리: LabelEncoder 문법

0

443

1

5강 작업유형1-문제 2 질문입니다

0

407

1

7강 코드 질문드립니다

0

414

1

14강 실전 문제 카테고리 항목문의

0

397

1

작업2유형 문의

0

464

1

데이터셋 분리와 관련하여 질문이 있습니다.

0

446

1

5강의 작업형1-2문제 오류

0

460

1

구름 IDE

0

712

2

[공지] 데이터 전처리 관련 오류 수정

4

546

1

라벨인코더 관련 문의드립니다!

0

506

2

분류 예측에서 결과값의 구체적 내용을 확인할수 있는지요?

0

402

2