질문입니다 RandomForestClassifier
170
投稿した質問数 1
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]))
回答 1
0
안녕하세요, 인프런 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
401
2

