inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

예시문제 작업형2(ver. 2025)

RMSE 값 오차

해결된 질문

67

단비

작성한 질문수 5

0

안녕하세요 선생님,

 

800대로 나와야 될 RMSE 값이 1100대로 나오는데, 차이가 좀 커서 문제가 있는것 같아요. 혹시 제 코드좀 봐주실 수 있을까요?

import pandas as pd

train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")

cols = test.select_dtypes('object').columns

# ## 전처리1. 컬럼삭제
# train = train.drop(cols, axis=1)
# test = test.drop(cols, axis=1)

## 전처리2. 레이블인코딩
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
for col in cols :
	train[col] = le.fit_transform(train[col])
	test[col] = le.transform(test[col])

	
# 검증-테스트 데이터 분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(
	train.drop('총구매액', axis=1), train['총구매액'], test_size=0.2, random_state=1
)

# 랜덤포레스트
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(random_state=1)
model.fit(X_tr, y_tr)
pred = model.predict(X_val)


# 평가
from sklearn.metrics import root_mean_squared_error
print(root_mean_squared_error(y_val, pred))
## 컬럼삭제 : 1135.0196199
## 레이블인코딩: 1136.88945667

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

답변 2

0

퇴근후딴짓

코드에는 문제가 없습니다. 테스트 해보니

유독 random_state 가 1일 때만 모델이 성능이 나빠지네요ㅠㅠ

아무래도 데이터가 작고 좋은 상태가 아니라서 랜덤적인 부분에서 영향이 큰 것 같습니다.

이런 경우 너무 많이는 말고 0, 1,2 이 정도만 테스트 해보면 좋을 것 같아요

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 단비님께서 작성하신 코드를 기반으로 RMSE 값이 예상보다 크게 나오는 원인을 함께 살펴보겠습니다.

현재 코드 및 체크 사항

  1. 데이터 전처리:

    • 컬럼삭제 방법과 레이블인코딩 방법을 각각 시도하신 것으로 보입니다. 코드에 주석처리된 컬럼삭제 부분을 확인하여 불필요한 컬럼이 있는지 확인해 주세요.
    • 레이블 인코딩을 실시했는데, 인코딩 과정에서 train과 test 데이터가 동일한 범주 값을 갖는지 확인이 필요합니다. LabelEncoder는 unseen 데이터를 처리하는데 제한이 있을 수 있습니다.
  2. 하이퍼파라미터 조정:

    • RandomForestRegressor의 하이퍼파라미터 설정이 성능에 큰 영향을 미칠 수 있습니다. n_estimators, max_depth, min_samples_leaf 등의 값을 조정해보세요.
    • 모델의 복잡도를 줄이거나 데이터를 적절히 표현할 수 있도록 하이퍼파라미터 최적화를 고려해 보세요.
  3. 평가 함수 확인:

    • RMSE를 계산하기 위해 root_mean_squared_error를 사용하셨으나, sklearn.metrics에는 해당 함수가 없습니다. 일반적으로 RMSE는 MSE의 제곱근으로 계산합니다.
   from sklearn.metrics import mean_squared_error
   rmse = mean_squared_error(y_val, pred, squared=False)
   print("RMSE:", rmse)

참고 링크

아래에는 비슷한 상황에서 RMSE 차이에 관한 문제를 다룬 질문 URL을 제공합니다. 비슷한 사례를 참조하시면서 코드를 개선할 수 있습니다.

이 링크들에서는 비슷한 결과 차이와 해결 과정이 설명되어 있습니다. 코드의 다른 부분을 점검하며 더 나은 결과를 위한 힌트를 얻을 수 있습니다.

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

작업형 1번문제... 환경관련

0

8

1

12회 기출은 언제 업데이트 될까요??

0

8

1

8/6 작성한 연장문의 질문글에 대한 재요청

0

21

1

수강기간 연장 문의

0

24

1

수강기간 연장문의

0

24

1

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

0

29

1

수강 기간 연장 문의

0

35

1

수강연장 가능 문의 (기간 약 한달반)

0

53

2

수강기간 연장 가능할까요 선생님

0

70

2

Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.

0

47

3

수강연장요청 문의

0

83

2

아무래도 다음 시험 연장은 어렵겠죠?

0

103

2

빅분기 12회 결과 관련 문의

0

106

1

책이랑 강의랑 순서나 예제가 다른것 같네요

0

78

2

수강연장 문의

0

102

2

재검토 요청 방법 좀 알려주셔요...-.-;;

0

100

2

12회 실기 질문(작업형 2)

0

88

2

뒤로가기 버튼 같은 것이 있나요?

0

61

1

강의 연장 문의

0

97

2

출력값 질문

0

69

2

수업노트가 어디에 있나요?

0

59

1

실기시험 제출관련

0

222

3

6.20 작업형 2 과적합

0

227

3

코딩팡 장업형2 베이스 라인 인코딩 종류 질문

0

86

2