해결된 질문
작성
·
47
·
수정됨
0
import pandas as pd
# train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/ab_nyc/train.csv")
# test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/ab_nyc/test.csv")
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
# print(train.shape, test.shape) # (39116, 16) (9779, 15)
# 1. 문제 정의
# 회귀 문제, target = price
# 평가: R-Squared, MAE, MSE, RMSE, RMSLE, MAPE
# 2. 데이터 불러오기
# 3. 탐색적 데이터 분석
# train.info() # dtypes: float64(3), int64(7), object(6)
# test.info() # dtypes: float64(3), int64(6), object(6)
# train.describe(include='O') # unique: 38447
# test.describe(include='O') # unique: 9718
# train.nunique()
# test.nunique()
# train.isnull().sum() # last_review, reviews_per_month 결측치
# test.isnull().sum() # name, host_name, last_review, reviews_per_month
# 4. 데이터 전처리(인코딩)
# 4-1. 결측치 처리(결측치 컬럼 삭제)
cols = ['name', 'id', 'host_name', 'last_review', 'reviews_per_month']
train = train.drop(cols, axis= 1)
test = test.drop(cols, axis = 1)
# 4-2. 인코딩(원핫인코딩 사용)
train = pd.get_dummies(train)
test = pd.get_dummies(test)
# 5. 검증 데이터 나누기
from sklearn.model_selection import train_test_split
target = train.pop('price')
X_tr, X_val, y_tr, y_val = train_test_split(
train, target, test_size=0.15, random_state=0
)
# 6. 모델 학습 및 평가
# from sklearn.ensemble import RandomForestRegressor
# rf = RandomForestRegressor(random_state=0)
# rf.fit(X_tr, y_tr)
# pred = rf.predict(X_val)
from sklearn.linear_model import LinearRegression
lr = LinearRegression
lr.fit(X_tr, y_tr)
# 평가: R-Squared, MAE, MSE, RMSE, RMSLE, MAPE
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
r2_score = r2_score(y_val, pred)
mae = mean_absolute_error(y_val, pred)
mse = mean_squared_error(y_val, pred)
rmse = rmse(y_val, pred)
rmsle = rmsle(y_val, pred)
mape = mape(y_val, pred)
# 7. 제출
pred = rf.predict(test)
pd.DataFrame({'id':test_id, 'price': pred}).to_csv('00000.csv',index=False)
안녕하세요
혼자 풀이를 해보다가 모델 학습 단계에서 계속 오류가 나고 1분이 넘어가서 이유를 모르겠습니다..
오류가 나는 이유와 전체적인 코드(저렇게 제출을 해도 시험에 문제가 없는지 ..) 한 번 봐주시면 감사하겠습니다...