inflearn logo
강의

Course

Instructor

[Side Project After Work] Big Data Analysis Certification Practical Exam (Type 1, 2, 3)

5th Session Past Exam Type (Task Type 2)

점수차가 많이 나는데 따로 하신게 있으신가요?

1

anycallkjs

2 asked

0

안녕하세요 선생님

선생님 인강 보면서 기출을 풀어보면서 시험에 대비하고 있습니다.

근데 기출 5회에서 2유형 선생님의 baseline과 제 baseline 수치가 너무 달라서 이렇게 Q&A를 보냅니다.

선생님 baseline(랜포)은 1296이 나오는데 제가 한 baseline(랜포)은 1400대가 나옵니다
혹시 제가 뭘 잘 못한게 있는지 궁금합니다
아래는 제가한 코드입니다!

#eda

print('\n====데이터 크기=====')
print(train.shape,test.shape)

print('\n====데이터 정보=====')
print(train.info())

print('\n====train 결측치=====')
print(train.isnull().sum())

print('\n====test 결측치=====')
print(test.isnull().sum())

print('\n====카테고리=====')
cols=train.select_dtypes(include='O').columns
for col in cols:
  set_train=set(train[col])
  set_test=set(test[col])
  same=set_train==set_test
  if same:
    print(col,'O')
  else:
    print(col,'X')

print('\n====타겟 기초 =====')
print(train['price'].describe())

# 전처리
target=train.pop('price')
train=pd.get_dummies(train)
test=pd.get_dummies(test)
# print(train.shape,test.shape)

#검증
from sklearn.model_selection import train_test_split
X_tr,X_val,y_tr,y_val=train_test_split(train,target,test_size=0.2,random_state=42)
print(X_tr.shape,X_val.shape,y_tr.shape,y_val.shape)

# rf
from sklearn.ensemble import RandomForestRegressor
rf=RandomForestRegressor(random_state=42)
rf.fit(X_tr,y_tr)
pred=rf.predict(X_val)

#학습
from sklearn.metrics import root_mean_squared_error
print('===rf===')
print(root_mean_squared_error(y_val,pred))

#lg
import lightgbm as lgb
lg=lgb.LGBMRegressor(random_state=42,verbose=-1)
lg.fit(X_tr,y_tr)
pred=lg.predict(X_val)
print('==lg==')
print(root_mean_squared_error(y_val,pred))

#lr
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
lr.fit(X_tr,y_tr)
pred=lr.predict(X_val)
print('==lr==')
print(root_mean_squared_error(y_val,pred))

#결과
pred=lg.predict(test)
submit=pd.DataFrame({'pred':pred})
submit.to_csv('result.csv', index=False)

python 머신러닝 빅데이터 pandas 빅데이터분석기사

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. anycallkjs님께서 작성하신 코드와 선생님께서 제시하신 baseline 값의 차이로 인해 고민이 있으시군요. 이런 경우에는 여러 가지 요인들이 RMSE (Root Mean Squared Error) 값에 영향을 줄 수 있습니다. 다음은 점검해 보면 좋을 몇 가지 사항입니다:

  1. 데이터 전처리:

    • 코드에서 pd.get_dummies() 함수를 사용하여 범주형 변수를 인코딩하고 있으나, train 데이터와 test 데이터가 각각 다른 범주를 가질 수 있다는 점을 염두에 두어야 합니다. 동일하게 맞춰주셨는지 확인해보고, 필요시 두 데이터셋을 합친 후 다시 인코딩을 적용해보세요.
  2. 결측치 처리:

    • 데이터셋 내부에 존재하는 결측치를 어떻게 처리했는지가 중요한데요, train과 test 데이터셋에서 결측치를 체크한 후 동일한 방법으로 처리했는지 확인이 필요합니다.
  3. 모델 하이퍼파라미터:

    • RandomForestRegressor의 하이퍼파라미터가 기본값으로 설정되어 있어서 결과 차이가 발생할 수 있습니다. n_estimators, max_depth, min_samples_split 등 특이사항이 없는지 확인해보세요.
  4. 평가 지표 함수:

    • 코드에서 사용한 root_mean_squared_error 는 기본 제공되는 sklearn의 함수가 아닙니다. 일반적으로 sklearn.metrics.mean_squared_error 로부터 RMSE를 계산할 수 있습니다. 아래 코드를 참고하세요:
    from sklearn.metrics import mean_squared_error
    rmse = mean_squared_error(y_val, pred, squared=False)
    print("RMSE:", rmse)
    

위 사항들을 하나씩 점검해보시면 모델 성능 차이의 원인을 파악하는 데 도움이 될 것입니다. 이와 관련한 유사한 질문이 있던 게시물을 추천드리니 참조하시기 바랍니다:

이 질문에서는 데이터 처리 및 모델 평가 하면서 발생할 수 있는 변수형 성능 영향에 대해 다루고 있습니다.

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

작업형1 강의 수강 완료 후..

0

11

0

작업형1 모의문제 4번에 3)문제 질문

0

16

2

이상치 전처리 작업

0

25

2

평가결과값 문의

0

28

2

시계열 데이터 날짜와 시간 format

0

31

2

평가지표 F1 스코어 질문드립니다.

0

26

2

작업형 2 기출7회분에서

0

38

2

작업형2 모의문제1 (30강)

0

34

2

수강 기간 연장 문의 드립니다.

0

41

2

수강 계획과 관련해 문의 드립니다.

0

28

2

작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?

0

50

2

작업형 1 -연습문제 4-6

0

38

2

작업형 1 유형 부분

0

42

2

작업형 1 (삭제예정, 구 버전)

0

51

2

수강기간 연장 문의드립니다.

0

38

2

2유형 레이블 인코딩 VS 원핫 인코딩

0

37

3

수강기간 연장 문의드립니다.

0

44

2

인덱스 슬라이싱

0

37

2

질문 드립니다.

0

50

2

강의 내용 관련 질문드립니다~

0

46

2

수강 연장 문의

0

63

2

강의자료 일괄 다운로드

0

61

2

수강기간 연장 문의드립니다

0

48

2

list 문제 질문드립니다~

0

38

2