질문있습니다!
41
작성한 질문수 25
# 출력을 원하실 경우 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로 확인했을때 제대로 나오면 그냥 제출하면 되는거죠??
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. eovnfjfpa님.
작성하신 코드는 pandas를 이용하여 데이터를 전처리하고 LightGBM 모델을 학습하여 결과를 예측하는 구조로 구성되었습니다. 주어진 코드는 크게 문제없이 잘 작성된 것으로 보이며, 특히 MinMaxScaler와 LabelEncoder를 활용한 전처리 과정도 적절하게 이루어진 것 같습니다.
코드 핵심 포인트:
데이터 전처리:
- 수치형 데이터는
MinMaxScaler로 스케일링을 하셨고, 범주형 데이터는LabelEncoder로 변환하셨습니다.
- 이러한 전처리는 모델의 입력 데이터가 적절히 준비되도록 도와줍니다.
- 수치형 데이터는
모델 학습 및 평가:
LightGBM라이브러리를 사용하여 회귀 모델을 학습하셨고,root_mean_squared_error(RMSE)을 통해 성능 평가를 수행하셨습니다.
- 모델 예측 결과를 파일로 저장하고 이를
pandas로 로드해서 확인하시는 부분도 잘 처리하셨습니다.
질문에 대한 답변:
RMSE 점수가 758로 나타난 것은 다른 참고 수치(800)와 비교해 상대적으로 낮아, 더 좋은 성능을 의미할 수 있습니다. 이는 정상입니다. RMSE의 값은 낮을수록 모델의 예측이 실제 값에 가까움을 나타내기 때문에 성능이 더 좋다고 판단할 수 있습니다.
pd.read_csv()로 저장된 CSV 파일을 읽고 원하는 형식대로 출력이 맞다면 이렇게 나온 결과를 제출하시면 됩니다. CSV 파일을 제대로 저장했다는 것을 의미합니다.
다른 학습자들이 유사한 상황에서 쉽게 이해할 수 있도록 상대적으로 낮은 RMSE 값이 어떤 상황에서 좋은 지표일 수 있는지도 추가적으로 고려해 보시는 것도 좋을 것 같습니다.
유사한 해결책을 제공하는 답변 링크:
- 5회 기출유형 (작업형2) 강의 코드 질문: 데이터 전처리 및 모델 평가 관련 질문.
- 4회 작업형 2번 풀이 질문있습니다.: 모델 성능 평가 및 데이터 전처리에 대한 다른 질문들과 답변이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
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





