Неясная ошибка при установке CatBoostClassifier в Python

#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