Изменения

Перейти к: навигация, поиск

CatBoost

222 байта добавлено, 20:57, 25 ноября 2018
Пример использования
== Пример использования ==
* Делим данные на тренировочное и тестовое множество
X_train, X_validation, y_train, y_validation = train_test_split(X, y, '''train_size'''=0.5, '''random_state'''=1234) '''print'''(X_train.shape, X_validation.shape)
* Создаем классификатор
'''from ''' catboost '''import ''' CatBoostClassifier
best_model = CatBoostClassifier(
'''bagging_temperature'''=1, '''random_strength'''=1, '''thread_count'''=3, '''iterations'''=500, '''l2_leaf_reg ''' = 4.0, '''learning_rate ''' = 0.07521709965938336, '''save_snapshot'''=True, '''snapshot_file'''='snapshot_best.bkp', '''random_seed'''=63, '''od_type'''='Iter', '''od_wait'''=20, '''custom_loss'''=['AUC', 'Accuracy'], '''use_best_model'''=True
)
* Обучаемся
 
best_model.fit(
X_train, y_train,
'''cat_features'''=cat_features, '''eval_set'''=(X_validation, y_validation), '''logging_level'''='Silent', '''plot'''=True
)
* Вывод числа деревьев в модели
  '''print '''('Resulting tree count:', best_model.tree_count_)  > '''Resulting tree count: 217'''
* Используем кросс валидацию
'''from ''' catboost '''import ''' cv
params = best_model.get_params()
params['custom_loss'] = 'AUC'
del params['use_best_model']
pool1 = Pool(X, '''label'''=y, '''cat_features'''=cat_features)
cv_data = cv(
'''params ''' = params, '''pool ''' = pool1, '''fold_count'''=2, '''inverted'''=False, '''shuffle'''=True, '''stratified'''=False, '''partition_random_seed'''=0
)
 
* Выводим результат
best_value = np.max(cv_data['AUC_test_avg'])
best_iter = np.argmax(cv_data['AUC_test_avg'])
'''print '''('Best validation AUC score: {:.2f}±{:.2f} on step {}'.format(
best_value,
cv_data['AUC_test_stddev'][best_iter],
))
> '''Best validation AUC score: 0.91±0.00 on step 9'''
'''Больше примеров можно найти на сайте библиотеки'''[https://tech.yandex.com/catboost/doc/dg/concepts/python-usages-examples-docpage/]
Анонимный участник

Навигация