inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

질문있습니다!

44

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

퇴근후딴짓

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

 

응원합니다 🔥🔥🔥

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

0

28

1

강의 연장 문의

0

32

1

출력값 질문

0

31

2

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

0

29

1

실기시험 제출관련

0

160

2

6.20 작업형 2 과적합

0

169

3

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

0

52

2

로지스틱회귀, 회귀

0

52

2

회귀 문제를 풀때 질문입니다.

0

59

1

불균형 처리 후 성능이 더 낮아졌다면,

0

66

2

실기 체험 제2유형 에러 문의

0

66

1

LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요

0

52

2

3번문제 등분산 가정

0

50

2

작업형3 target 형 변환 질문

0

38

2

[작업형1] 연습문제 섹션1 ~ 10 의 section4

0

40

3

원핫인코딩과 레이블 인코딩에서 concat

0

62

2

제2유형 질문입니다.

0

49

2

C()

0

44

2

작업형 2에서 strafity 적용 유무

0

53

2

수강 기간 연장 가능 여부 문의드립니다.

0

63

1

ols

0

44

2

2유형 작성관련 질문(일반 심화)

0

41

2

2유형 작성관련 질문

0

42

2

2유형 object컬럼 개수 다르면

0

49

2