인프런 커뮤니티 질문&답변

미미밍님의 프로필 이미지

작성한 질문수

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

작업형2 모의고사 2번 (5-2) 오류 질문

해결된 질문

작성

·

73

0

선생님 안녕하세요. 작업형2 모의고사 2번 관련하여 질문드립니다.

  1. train_test_split까지 잘 넘어온 다음에

    sklearn.ensemble 작성하려고 다시 코드 실행하니, 자꾸 같은 부분에서 해당 이미지처럼 에러가 나는데요. 선생님이 작성하신 답안 그대로 ctrl c / v 했는데도 같은 에러가 뜨는데, 어떤 것 때문일까요?

     

 

 

import pandas as pd
test = pd.read_csv("test.csv")
train = pd.read_csv("train.csv")
print(train.shape,test.shape)

#결측값 찾기
# train.isnull().sum() 'name', 'host_name', 'last_review','reviews_per_month'
#object값 확인
# train.info() -> object 6개

#2 EDA처리
# train.info() last_review 빼고 전부다 object형임


print(train.shape)
train = train.drop(cols, axis=1)
test = test.drop(cols, axis = 1)
print(train.shape)

#reviews_per_month는 결측값 채워주기
train['reviews_per_month'] = train['reviews_per_month'].fillna(0)
test['reviews_per_month'] = test['reviews_per_month'].fillna(0)
# 결측치 없음

#id제거
train = train.drop('id', axis =1)
test_id = test.pop('id')
test.head(2)

#라벨인코딩

cols = train.select_dtypes(include = 'object').columns
from sklearn.preprocessing import LabelEncoder

for col in cols:
    le = LabelEncoder()
    train[col] = le.fit_transform(train[col])
    test[col] = le.transform(test[col])

#train_test_split
from sklearn.model_selection import train_test_split
X_tr,X_val,y_tr,y_val = train_test_split(train.drop('price',axis=1), train['price'] , test_size = 0.3,random_state = 42)
## 전부 train에서 뽑는거임


# print(X_tr.shape,X_val.shape, y_tr.shape, y_val.shape)

from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor()
model.fit(X_tr,y_tr)
pred = model.predict(X_val)


test.head()
  1. 그리고 작업형2 회귀문제가 나온다면, 해당 이 부분은 외워야 하는 걸까요..? 필수적이면 닥암기하려고 합니다..

# 평가
import numpy as np
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
def rmse(y_test, y_pred): #RMSE
    return np.sqrt(mean_squared_error(y_test, y_pred))

def rmsle(y_test, y_pred): #RMSLE
    return np.sqrt(np.mean(np.power(np.log1p(y_test) - np.log1p(y_pred), 2)))

def mape(y_test, y_pred): #MAPE
    return np.mean(np.abs((y_test - y_pred) / y_test)) * 100

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

  1. cols 이 무엇인지 빠져있어요

     

print(train.shape) 
train = train.drop(cols, axis=1) 
test = test.drop(cols, axis = 1) 
print(train.shape)

제가 제공한 코드에는

cols = ['name', 'host_name', 'last_review', 'host_id'] 로 정의하고 있어요!

 

  1. rmse는 필수로 외워주세요!

다른 평가지표도 암기하면 좋지만 시험에서 생각나지 않는다면

회귀일 때 알고 있는 rmse로 검증하시죠!! 각 평가지표마다 차이는 있지만 오차를 줄이려고 하는 목표는 동일합니다.

작업형2 채점은 csv로만 진행해요!

미미밍님의 프로필 이미지
미미밍
질문자

감사합니다 ㅠㅠ