강의

멘토링

로드맵

Inflearn brand logo image

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

tjwngml9110님의 프로필 이미지
tjwngml9110

작성한 질문수

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

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

작업형2 코드

해결된 질문

작성

·

57

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

 

이렇게 작성해도 감점 없을까요? 영상에 나온 rmse 값보다 훨씬 작습니다. (저는 rmse : 816.38 나옵니다)

 

# 2. 탐색적 분석 / 결측치 채우기 # 환불금액

# print(train.info())

# print(train.head(3))

# print(train.isnull().sum())

# print(test.isnull().sum())

a = int(train['환불금액'].mean())

# print(a)

train['환불금액'] = train['환불금액'].fillna(a)

test['환불금액'] = test['환불금액'].fillna(a)

train = train.drop('주구매상품',axis=1)

test = test.drop('주구매상품',axis=1)

# print(train.isnull().sum())

# print(test.isnull().sum())

# 3. 인코딩

target = train.pop('총구매액')

# print(target)

train = pd.get_dummies(train)

test = pd.get_dummies(test)

# print(train.info())

# print(test.info())

# 4. 분할

from sklearn.model_selection import train_test_split

x_t, x_v, y_t, y_v = train_test_split(train, target, test_size = 0.2, random_state = 0)

# 5. 학습

from sklearn.ensemble import RandomForestRegressor

model = RandomForestRegressor(random_state = 0)

model.fit(x_t, y_t)

pred = model.predict(x_v)

# 6. 평가 - 816.38

from sklearn.metrics import root_mean_squared_error

rmse = root_mean_squared_error(y_v, pred)

print(rmse)

# 7. 예측

pred = model.predict(test)

# 8. 제출

submit = pd.DataFrame({'pred':pred})

submit.to_csv("result.csv", index=False)

result = pd.read_csv("result.csv")

print(result)

답변 2

1

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

큰 문제 없어 보입니다 🙂 응원합니다 !!! 화이팅!

 

0

안녕하세요, 인프런 AI 인턴입니다. tjwngml9110님의 질문에 답변드리겠습니다.

작성하신 코드를 살펴보니, 데이터 전처리 과정과 머신러닝 모델 학습 및 평가라는 측면에서 크게 문제는 없어 보입니다. 하지만 몇 가지 고려해볼 점이 있어 말씀드립니다.

주요 검토 사항:

  1. 결측치 처리 방법:

    • 결측치를 채울 때, 환불금액의 평균을 사용하여 결측치를 처리하셨습니다. 이 방법은 나쁘지 않지만, 결측치가 많은 경우 평균 대신 중앙값을 사용하거나, 다른 피처들과의 관계를 고려한 방법도 고려해 볼 수 있습니다.
  2. 특징 선택과 드롭:

    • ‘주구매상품’ 컬럼을 드롭하였는데, 이 결정이 모델 성능에 미치는 영향을 확인할 필요가 있습니다. 이 변수가 중요한 예측 변수일 경우, 그것을 드롭함으로써 성능이 떨어질 수 있습니다.
  3. 모델 선택:

    • RandomForestRegressor를 사용하셨는데, 이 모델은 일반적으로 다양한 데이터에 좋은 성능을 보여주지만, 데이터의 특성에 따라 다른 모델(e.g., GradientBoosting, XGBoost)도 고려해 볼 수 있습니다.
  4. 모델 평가지표:

    • root_mean_squared_error 함수를 사용하는 부분에서 인식 오류가 있을 수 있습니다. sklearn.metrics에서 제공하지 않는 함수로 보입니다. RMSE는 보통 mean_squared_error를 사용하고 그 제곱근을 계산하여 얻습니다.
    from sklearn.metrics import mean_squared_error
    rmse = mean_squared_error(y_v, pred, squared=False)
    print("RMSE:", rmse)
    

유사한 질문의 참고자료:

  • 기출문제 풀이와 예제 설명이 포함된 유사한 게시글에서 도움을 받을 수 있습니다:

현재 RMSE 값(816.38)이 강의에서 제시된 것과 차이가 있다는 부분은 전처리 과정이나 데이터 셋 자체 차이 때문일 가능성이 높습니다. 위에서 언급한 부분들을 점검하여 결과를 비교해 보시길 권장드립니다.

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

tjwngml9110님의 프로필 이미지
tjwngml9110

작성한 질문수

질문하기