해결된 질문
작성
·
22
0
Labels in y_true and y_pred should be of the same type. Got y_true=[0 1] and y_pred=['0' '1']. Make sure that the predictions provided by the classifier coincides with the true labels.
이런 문장이 뜨던데 accuracy_score(ans, pred) 중 pred가 numpy.ndarray 배열이 된 것 같거든요..
잘 따라한 것 같은데 선생님이 한건 바로 accuracy_score를 바로 볼 수 있고, 제거는 못보여 지네요..
pd.DataFrame(pred) 사용해서 해결하긴 했는데,, numpy배열로 바뀐 사유가 궁금합니다.
y_train['income'] = y_train['income'].str.replace(">50K", '1')
y_train['income'] = y_train['income'].str.replace("<=50K", '0')
y_train['income'].astype(int)
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X_train[list], target)
pred = rf.predict(X_test[list])
submit = pd.DataFrame(
{
'id' : X_test['id'],
'income' : pred
}
)
submit.to_csv("1111.csv", index = False)
y_test.head()
(y_test['income']=='>50K').astype(int)
from sklearn.metrics import accuracy_score
y_test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/data_atype_y/y_test.csv")
ans = (y_test['income'] == '>50K').astype(int)
pred = pred.astype(int)
accuracy_score(ans, pred)
답변 1
0
원래 pred는 ndarray가 맞습니다.
이를 데이터프레임으로 변환하는 코드를 통해서 데이터프레임으로 보이는 것이에요
submit = pd.DataFrame( { 'id' : X_test['id'], 'income' : pred } )