해결된 질문
작성
·
318
·
수정됨
0
from sklearn.preprocessing import LabelEncoder
cols = train.select_dtypes(include='object').columns
for col in cols:
le=LabelEncoder()
train[col]=le.fit_transform(train[col])
test[col]=le.transform(test[col])
train = train.drop('ID', axis =1)
test_id = test.pop('ID')
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(
train.drop(['Segmentation'],axis =1),
train['Segmentation'],
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)
from sklearn.metrics import f1_score
print(f1_score(y_val, pred, average='macro'))
pred = model.predict(test)
submit = pd.DataFrame({
'ID': test_id,
'Segmentation' : pred })
submit.to_csv("00000.csv", index = False)
안녕하세요!! 저같은경우 시험 합격만을 위한 방법으로 공부를 하고 있습니다. 그래서 작업형 2유형의 경우 어떤 문제가 나와도 동일한 풀이로 풀 수 있도록 한개의 풀이 절차를 위와 같이 외우고 있는데요!
object 컬럼이 존재한다는 가정하에 위와 동일한 절차로 f1_score 정도 바꿔가면서 풀었을때 충분히 만점을 받을 수 있는걸까요?
여기서 만약 object 컬럼이 없고 수치형 컬럼들로만 구성되어있다면, 라벨인코딩 부분만 빼고 나머지는 그대로 진행해도 되는건가요?
만약 위와 같은 풀이를 진행했을때 풀이가 불가능한 경우는 어떤 경우가 있을까요?
분류든지 회귀든지 전부 랜덤포레스트를 사용할 계획인데 분류와 회귀는 어떻게 구분해야 할까요? 문제에서처럼 f1_score로 평가하라 이런식의 알려주는게 없다면 랜덤포레스트 유형을 정할때 어떤것을 기준으로 정해야 할까요?
많은 질문 드려서 죄송하지만...꼭 합격하고 싶은 마음에 문의드립니다!! 항상 감사합니다!!
답변 1
0
1 매 시험마다 데이터와 기준이 달르고, 점수를 공개하지 않고 있어 함부러 만점이라고 말하긴 어려울 것 같습니다만 큰 문제가 없어 보입니다.
2 네네 맞습니다!! 범주형은 포함될 것 같아요!!
3 만약 타겟이 범주형이라면 같이 인코딩 되어 버릴 것 같아요! 검증에서는 문제가 없겠지만 test 데이터 예측 결과를 제출할 땐 원래 값으로 변경해야 하는 번거로움이 있어요
4 회귀와 분류를 구분하는 방법
분류(Classification): 타겟 변수가 범주형(예: '예', '아니오', 'A', 'B', 'C' , 0또는1 등)
회귀(Regression): 타겟 변수가 연속형 수치 데이터(예: 가격, 온도, 점수 등)