inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

질문있습니다!

41

eovnfjfpa

작성한 질문수 25

0

# 출력을 원하실 경우 print() 함수 활용

# 예시) print(df.head())

# getcwd(), chdir() 등 작업 폴더 설정 불필요

# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가

import pandas as pd

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

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

#총 구매금액 , rmse

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

#수치형 변수 스케일링

cols = train.select_dtypes(exclude = 'object').columns

from sklearn.preprocessing import MinMaxScaler

mx = MinMaxScaler()

train[cols] = mx.fit_transform(train[cols])

test[cols] = mx.transform(test[cols])

ob = train.select_dtypes(include = 'object').columns

from sklearn.preprocessing import LabelEncoder

for col in ob:

le = LabelEncoder()

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, target, test_size = 0.2, random_state = 0)

import lightgbm as lg

model = lg.LGBMRegressor(random_state = 0)

model.fit(x_tr,y_tr)

pred = model.predict(x_val)

from sklearn.metrics import root_mean_squared_error

r = root_mean_squared_error(y_val,pred)

pred = model.predict(test)

s = pd.DataFrame({"pred" : pred})

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

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

#758.1836860967057

800정도가 나온다고 하던데 758이 나온거면 모델 성능이 더 좋다고 하는건데 이게 이상일수도 있을까요? 750점 대가 나오니까 불안하네요 ,, 추가로 이렇게 pd.read_csv로 확인했을때 제대로 나오면 그냥 제출하면 되는거죠??

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

답변 2

0

인프런 AI 인턴

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

작성하신 코드는 pandas를 이용하여 데이터를 전처리하고 LightGBM 모델을 학습하여 결과를 예측하는 구조로 구성되었습니다. 주어진 코드는 크게 문제없이 잘 작성된 것으로 보이며, 특히 MinMaxScalerLabelEncoder를 활용한 전처리 과정도 적절하게 이루어진 것 같습니다.

코드 핵심 포인트:

  1. 데이터 전처리:

    • 수치형 데이터는 MinMaxScaler로 스케일링을 하셨고, 범주형 데이터는 LabelEncoder로 변환하셨습니다.
    • 이러한 전처리는 모델의 입력 데이터가 적절히 준비되도록 도와줍니다.
  2. 모델 학습 및 평가:

    • LightGBM 라이브러리를 사용하여 회귀 모델을 학습하셨고, root_mean_squared_error(RMSE)을 통해 성능 평가를 수행하셨습니다.
    • 모델 예측 결과를 파일로 저장하고 이를 pandas로 로드해서 확인하시는 부분도 잘 처리하셨습니다.

질문에 대한 답변:

  • RMSE 점수가 758로 나타난 것은 다른 참고 수치(800)와 비교해 상대적으로 낮아, 더 좋은 성능을 의미할 수 있습니다. 이는 정상입니다. RMSE의 값은 낮을수록 모델의 예측이 실제 값에 가까움을 나타내기 때문에 성능이 더 좋다고 판단할 수 있습니다.

  • pd.read_csv()로 저장된 CSV 파일을 읽고 원하는 형식대로 출력이 맞다면 이렇게 나온 결과를 제출하시면 됩니다. CSV 파일을 제대로 저장했다는 것을 의미합니다.

다른 학습자들이 유사한 상황에서 쉽게 이해할 수 있도록 상대적으로 낮은 RMSE 값이 어떤 상황에서 좋은 지표일 수 있는지도 추가적으로 고려해 보시는 것도 좋을 것 같습니다.

유사한 해결책을 제공하는 답변 링크:
- 5회 기출유형 (작업형2) 강의 코드 질문: 데이터 전처리 및 모델 평가 관련 질문.
- 4회 작업형 2번 풀이 질문있습니다.: 모델 성능 평가 및 데이터 전처리에 대한 다른 질문들과 답변이 포함되어 있습니다.

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

0

퇴근후딴짓

네, 저는 일부러 랜덤포레스트만 사용해봤어요🙂
제가 한 것보다 결과가 안좋게 나오면 보통 불안해하셔서요.
결과가 잘 나온 편이라 전혀 문제 없습니다!

 

응원합니다 🔥🔥🔥

1유형 강의 다 나간 후 어떻게 할까요?

0

14

1

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

0

10

1

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

0

21

2

이상치 전처리 작업

0

25

2

평가결과값 문의

0

29

2

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

0

35

2

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

0

27

2

작업형 2 기출7회분에서

0

38

2

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

0

34

2

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

0

42

2

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

0

30

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

62

2

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

0

48

2