• 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (데이터 사이언스)

  • 해결 여부

    해결됨

작업형 2 질문있습니다.

23.11.28 15:44 작성 조회수 79

0

기출 6 작업형 2

import pandas as pd

train = pd.read_csv("energy_train.csv")

test = pd.read_csv("energy_test.csv")

# train.shape,test.shape

# print(train.head())

# print(test.head())

# print(train.isnull().sum())

# print(test.isnull().sum())

target = train.pop('Heat_Load')

# print(train.describe(include='object'))

train = pd.get_dummies(train)

test = pd.get_dummies(test)

# train.head()

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=2023)

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(random_state=2023)

model.fit(X_tr,y_tr)

pred = model.predict(X_val)

# pred

from sklearn.metrics import f1_score

print(f1_score(y_val,pred,average='macro'))

pred = model.predict(test)

pd.DataFrame({'pred':pred}).to_csv("result.csv",index=False)

pd.read_csv("result.csv")

  1. 최근 인코딩 영상을 봤는데 범주형 인코딩 과정에서 train과 test unique 값이 같은지 다 비교해본 후에 진행해야 되나요? 지금은 nunique 값이 동일하면 바로 원핫인코딩이나 라벨인코딩 사용하고 있습니다. 만약 다른 값이 들어가 있으면 인코딩 할 때 오류가 발생하나요?

  2. randomforest만 이용해서 분류일 때랑 회귀일 때 나눠서 풀고 있는데 위의 코드처럼 작성하면 문제되는 점은 없을까요?

  3. randomforest에서 분류든 회귀든 max_depth와 n_estimators를 추가해서 검증 값이 높게 나오는 정도만 하면 될까요?

답변 1

답변을 작성해보세요.

0

1

카테고리 수가 같지만 실제로 값이 다르면 원핫인코딩에서는 문제가 없고 모델을 학습할 때 컬럼명이 달라 에러가 발생할거에요.

레이블 인코딩은 train이 test를 포함한다면 문제가 없을 것 같고, 아니라면 인코딩 과정에서 에러가 발생합니다.

혹시 모르니 시험에서는 비교하고 진행하는 것을 추천합니다.

2

네, 기출 6을 기준으로 큰 문제 없어 보입니다.

3

네, 튜닝은 여유가 있다면 권장드립니다. 튜닝해도 크게 올라가지 않는다면 무리 하지 말고 튜닝 없이 제출해주세요