Q)
from sklearn.metrics import accuracy_score
dt_clf.fit(X_train, y_train)
dt_pred = dt_clf.predict(X_test)
print(accuracy_score(y_test, dt_pred))
위 코드를 입력했는데 아래같은 오류가 떠. 어떤 문제일까? 학습, 예측, 평가를 하려고 해
could not convert string to float: 'Tennager'
A)
이 오류는 X_train 또는 X_test 데이터에 문자열 데이터가 포함되어 있어서 발생하는 것으로 추측됩니다. Scikit-learn의 대부분의 알고리즘은 숫자형 데이터만 다루기 때문에, 문자열 데이터가 포함된 경우 데이터를 숫자형으로 변환해주어야 합니다.
따라서, 문자열 데이터가 있는 열을 제거하거나 숫자형으로 변환하는 전처리 작업을 수행해야 합니다. 이를 위해서는 해당 열의 데이터가 어떤 값을 갖는지 확인해보고, 이에 맞게 변환하는 작업이 필요합니다.
예를 들어, 'Tennager'와 같은 값을 갖는 열이 있다면, 이를 숫자형으로 변환해야 합니다. 이를 위해서는 해당 열의 모든 값을 숫자로 매핑(mapping)하는 작업이 필요합니다. 이러한 전처리 작업을 수행한 후에 다시 학습, 예측, 평가를 수행하면 정상적으로 결과를 확인할 수 있을 것입니다.