#python #pandas #classification #catboost
#python #pandas #классификация #catboost
Вопрос:
Я получаю неясную ошибку при попытке подогнать CatBoostClassifier к обучающим данным. Я создал простой набор данных ниже, чтобы помочь проиллюстрировать проблему:
from sklearn.model_selection import train_test_split
# Initialize a dataframe
d = {'response': [1,0,1,0,1,0,0,0,0,1],
'color': ['red','blue','yellow','blue','red','blue','blue','yellow','red','red'],
'status': ['open','pending','open','open','closed','pending','closed','open','closed','open'],
'age': [45,10,58,22,42,35,55,26,32,59],
'income': [95000,40000,100000,55000,70000,60000,45000,75000,65000,90000]}
df = pd.DataFrame(data=d)
# Create X and y matrices
X = df.drop(['response'], axis=1)
y = df.response
# Split into train and test data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2, random_state=42)
Теперь я попытаюсь установить CatBoostClassifier ниже:
from catboost import CatBoostClassifier
cat_features = ['color', 'status']
cb = CatBoostClassifier(iterations=100, random_state=42, eval_metric='F1')
cb.fit(X_train, y_train, cat_features=cat_features, plot=True, eval_set=(X_test, y_test))
Я получаю следующую ошибку при попытке подогнать модель, в которой указано AttributeError: module 'pandas' has no attribute 'SparseDtype'
. Я не уверен, что понимаю, на что это ссылается или как исправить проблему. Любые отзывы о том, как устранить эту ошибку, будут высоко оценены!
Я использую python 3.6.8, и в настоящее время установлены pandas == 0.23.4 и catboost == 0.24.2.
Ответ №1:
SparseDtype был новым в версии 0.24.0 pandas. Установлена последняя версия pandas. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas .SparseDtype.html