해결된 질문
작성
·
63
·
수정됨
0
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
# 사용자 코딩
# print(train.shape, test.shape)
# print(train.info())
# print(test.isnull().sum())
y_train = train.pop('총구매액')
# print(train.shape, test.shape)
m = train['환불금액'].mean()
train['환불금액'] = train['환불금액'].fillna(m)
test['환불금액'] = test['환불금액'].fillna(m)
# 원핫, 라벨링인코더
# print(train.info())
# print(train.shape, test.shape)
#라벨인코더
# cols = ['주구매상품', '주구매지점']
# from sklearn.preprocessing import LabelEncoder
# le = LabelEncoder()
# for col in cols:
# train[col] = le.fit_transform(train[col])
# test[col] = le.transform(test[col])
#원핫
print(train.shape, test.shape)
data = pd.concat([train,test], axis = 0)
data_oh = pd.get_dummies(data)
train = data_oh.iloc[:len(train)].copy()
test = data_oh.iloc[len(train):].copy()
print(train.shape, test.shape)
# print(train.head())
#스플릿
from sklearn.model_selection import train_test_split
X_tr, X_var, y_tr, y_var = train_test_split(train,
y_train,
test_size = 0.15,
random_state = 0)
#랜포
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(random_state=0)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_var)
import lightgbm as lgb
lgbmr = lgb.LGBMRegressor(random_state=0)
lgbmr.fit(X_tr, y_tr)
pred1 = lgbmr.predict(X_var)
from sklearn.metrics import root_mean_squared_error
rmse = root_mean_squared_error(y_var, pred1)
print(rmse)
#라벨 rf 716.2595627489613
#라벨 lgb 667.9290102574973
#원핫 rf - 762.9476701424611
#원핫 lgb - 652.1802049238468
#제출
pred = lgbmr.predict(test)
submit = pd.DataFrame({'pred' : pred})
submit.to_csv('result.csv', index=False)
print(pd.read_csv('result.csv'))
저렇게 4개 비교해서 원핫 lgb로 제출했는데요 옳게 했는지 코드 점검 한번만 부탁드립니다
그리고 질문이 있는데요 실제 시험 들어가면 import pands as pd랑 트레인 테스트 저거 주나요? 외워야하나요?
저 화면 처럼 실제 시험도 저렇게 구성되어있나요?
답변 2
0
저보다 훨씬 점수가 좋네요 🙂
특별한 문제 없습니다.
데이터를 불러오는것 까진 확실하고 아래쪽에
csv를 생성하는 주석 처리된 코드는 주어졌을 때도 있었고, 아닐 때도 있었는데
주어지지 않을 가능성이 높아요
저 코드에서 감점이 많거든요~! 외우는 것을 추천합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 황증조님.
작성하신 코드는 pandas
를 사용하여 CSV 파일을 불러오고, 전처리 및 머신러닝 모델을 통해 예측하는 과정이 적절히 포함되어 있는 것으로 보입니다. 특히, RandomForestRegressor
와 LGBMRegressor
를 이용해 여러 모델을 비교한 후 가장 좋은 결과를 제공하는 모델을 활용하셨네요. 코드 전반적으로 큰 문제 없이 잘 구성되어 있습니다.
코드 구성의 주요 포인트:
1. 결측값 처리: 환불금액
의 결측치를 평균값으로 채우셨습니다.
2. 인코딩 처리: 원-핫 인코딩을 통해 범주형 변수를 처리하였습니다.
3. 모델 평가: root_mean_squared_error
를 통해 모델의 성능을 평가하였고, 여러 모델을 비교하여 가장 효율적인 모델을 선택하셨습니다.
질문에 대한 답변:
1. 시험 준비:
- 실제 시험에서는 import pandas as pd
등 기본적인 설정은 직접 작성해야 할 수도 있으니, 이러한 기초적인 코드들은 미리 연습해 두시는 게 좋습니다.
- 코드 구조와 흐름을 이해하고 직접 작성할 수 있도록 연습하세요. 시험에서는 기본 데이터 셋과 관련 코딩이 제공될 가능성이 높지만, 이에 대한 확답은 제공된 시험 가이드라인에 따라 다를 수 있습니다.
유사 질문 참고 링크:
1. 예시문제 작업형2 코드 질문: 코드 점검과 유사한 상황을 다루고 있습니다.
2. 체험 제2유형: 데이터 처리 및 모델 구성 관련 질문이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.