ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://catboost.ai/docs/en/concepts/python-reference_catboostregressor_modelcompare |
| Last Crawled | 2026-04-07 22:33:02 (5 hours ago) |
| First Indexed | 2024-11-18 16:19:28 (1 year ago) |
| HTTP Status Code | 200 |
| Meta Title | compare | CatBoost |
| Meta Description | Draw train and evaluation metrics in Jupyter Notebook for two trained models. Method call format. |
| Meta Canonical | null |
| Boilerpipe Text | Draw train and evaluation metrics in
Jupyter Notebook
for two trained models.
Method call format
compare(model,
data=
None
,
metrics=
None
,
ntree_start=
0
,
ntree_end=
0
,
eval_period=
1
,
thread_count=-
1
,
tmp_dir=
None
,
log_cout=sys.stdout,
log_cerr=sys.stderr)
Parameters
model
Description
The CatBoost model to compare with.
Possible types
CatBoost Model
Default value
Required parameter
metrics
Description
The list of metrics to be calculated.
Supported metrics
For example, if the AUC and Logloss metrics should be calculated, use the following construction:
[
'Logloss'
,
'AUC'
]
Possible types
list of strings
Default value
Required parameter
data
Description
A file or matrix with the input dataset, on which the compared metric values should be calculated.
Possible types
catboost.Pool
Default value
Required parameter
ntree_start
Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to
[ntree_start; ntree_end)
and the
eval_period
parameter to
k
to calculate metrics on every
k
-th iteration.
This parameter defines the index of the first tree to be used when applying the model or calculating the metrics (the inclusive left border of the range). Indices are zero-based.
Possible types
int
Default value
0
ntree_end
Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to
[ntree_start; ntree_end)
and the
eval_period
parameter to
k
to calculate metrics on every
k
-th iteration.
This parameter defines the index of the first tree not to be used when applying the model or calculating the metrics (the exclusive right border of the range). Indices are zero-based.
Possible types
int
Default value
0 (the index of the last tree to use equals to the number of trees in the
model minus one)
eval_period
Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to
[ntree_start; ntree_end)
and the
eval_period
parameter to
k
to calculate metrics on every
k
-th iteration.
This parameter defines the step to iterate over the range
[
ntree_start
;
ntree_end
)
. For example, let's assume that the following parameter values are set:
ntree_start
is set 0
ntree_end
is set to N (the total tree count)
eval_period
is set to 2
In this case, the metrics are calculated for the following tree ranges:
[0, 2)
,
[0, 4)
, ... ,
[0, N)
Possible types
int
Default value
1 (the trees are applied sequentially: the first tree, then the first two
trees, etc.)
thread_count
Description
The number of threads to use.
Optimizes the speed of execution. This parameter doesn't affect results.
Possible types
int
Default value
-1 (the number of threads is equal to the number of processor cores)
tmp_dir
Description
The name of the temporary directory for intermediate results.
Possible types
String
Default value
None (the name is generated)
log_cout
Output stream or callback for logging.
Possible types
callable Python object
python object providing the
write()
method
Default value
sys.stdout
log_cerr
Error stream or callback for logging.
Possible types
callable Python object
python object providing the
write()
method
Default value
sys.stderr
Examples
from
catboost
import
Pool, CatBoostRegressor
train_data = [[
0
,
3
],
[
4
,
1
],
[
8
,
1
],
[
9
,
1
]]
train_labels = [
0
,
0
,
1
,
1
]
eval_data = [[
1
,
3
],
[
4
,
2
],
[
8
,
2
],
[
8
,
3
]]
eval_labels = [
1
,
0
,
0
,
1
]
train_dataset = Pool(train_data, train_labels)
eval_dataset = Pool(eval_data, eval_labels)
model1 = CatBoostRegressor(iterations=
100
, learning_rate=
0.1
)
model1.fit(train_dataset, verbose=
False
)
model2 = CatBoostRegressor(iterations=
100
, learning_rate=
0.3
)
model2.fit(train_dataset, verbose=
False
)
model1.compare(model2, eval_dataset, [
'RMSE'
])
The following is a chart plotted with
Jupyter Notebook
for the given example. |
| Markdown | [](https://catboost.ai/ "CatBoost")
- Installation
- [Overview](https://catboost.ai/docs/en/concepts/en/concepts/installation)
- Python package installation
- CatBoost for Apache Spark installation
- R package installation
- Command-line version binary
- Build from source
- Key Features
- Training parameters
- Python package
- [Quick start](https://catboost.ai/docs/en/concepts/en/concepts/python-quickstart)
- CatBoost
- CatBoostClassifier
- CatBoostRanker
- CatBoostRegressor
- [Overview](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor)
- [fit](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_fit)
- [predict](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_predict)
- [Attributes](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_attributes)
- [calc\_leaf\_indexes](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboost_calc_leaf_indexes)
- [calc\_feature\_statistics](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_calc_feature_statistics)
- [copy](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_copy)
- [compare](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare)
- [eval\_metrics](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_eval-metrics)
- [get\_all\_params](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_all_params)
- [get\_best\_iteration](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_best_iteration)
- [get\_best\_score](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_best_score)
- [get\_borders](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_borders)
- [get\_evals\_result](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_evals_result)
- [get\_feature\_importance](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_feature_importance)
- [get\_metadata](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_metadata)
- [get\_object\_importance](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_object_importance)
- [get\_param](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_param)
- [get\_params](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_params)
- [get\_scale\_and\_bias](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_scale_and_bias)
- [get\_test\_eval](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_get_test_eval)
- [grid\_search](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_grid_search)
- [is\_fitted](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_is_fitted)
- [load\_model](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_load_model)
- [plot\_predictions](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_plot_predictions)
- [plot\_tree](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_plot_tree)
- [randomized\_search](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_randomized_search)
- [save\_borders](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_save_borders)
- [save\_model](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_save_model)
- [score](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_score)
- [select\_features](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_select_features)
- [set\_feature\_names](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_set_feature_names)
- [set\_params](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_set_params)
- [set\_scale\_and\_bias](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_set_scale_and_bias)
- [shrink](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_shrink)
- [staged\_predict](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_staged_predict)
- [cv](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_cv)
- datasets
- FeaturesData
- MetricVisualizer
- Pool
- [sample\_gaussian\_process](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_sample_gaussian_process)
- [sum\_models](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_sum_models)
- [to\_classifier](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_to_classifier)
- [to\_regressor](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_to_regressor)
- [train](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_train)
- Text processing
- utils
- [Usage examples](https://catboost.ai/docs/en/concepts/en/concepts/python-usages-examples)
- CatBoost for Apache Spark
- R package
- Command-line version
- Applying models
- Objectives and metrics
- Model analysis
- Data format description
- [Parameter tuning](https://catboost.ai/docs/en/concepts/en/concepts/parameter-tuning)
- [Speeding up the training](https://catboost.ai/docs/en/concepts/en/concepts/speed-up-training)
- Data visualization
- Algorithm details
- [FAQ](https://catboost.ai/docs/en/concepts/en/concepts/faq)
- Educational materials
- [Development and contributions](https://catboost.ai/docs/en/concepts/en/concepts/development-and-contributions)
- [Contacts](https://catboost.ai/docs/en/concepts/en/concepts/contacts)
compare
## In this article:
- [Method call format](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#compare__method-call-format)
- [Parameters](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#parameters)
- [model](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#model)
- [metrics](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#metrics)
- [data](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#data)
- [ntree\_start](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#ntree_start)
- [ntree\_end](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#ntree_end)
- [eval\_period](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#eval_period)
- [thread\_count](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#thread_count)
- [tmp\_dir](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#tmp_dir)
- [log\_cout](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#log_cout)
- [log\_cerr](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#log_cerr)
- [Examples](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#examples)
1. Python package
2. [CatBoostRegressor](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor)
3. compare
# compare
- [Method call format](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#compare__method-call-format)
- [Parameters](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#parameters)
- [model](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#model)
- [metrics](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#metrics)
- [data](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#data)
- [ntree\_start](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#ntree_start)
- [ntree\_end](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#ntree_end)
- [eval\_period](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#eval_period)
- [thread\_count](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#thread_count)
- [tmp\_dir](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#tmp_dir)
- [log\_cout](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#log_cout)
- [log\_cerr](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#log_cerr)
- [Examples](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_modelcompare#examples)
Draw train and evaluation metrics in [Jupyter Notebook](https://catboost.ai/docs/en/concepts/en/features/visualization_jupyter-notebook) for two trained models.
## Method call format
```
compare(model,
data=None,
metrics=None,
ntree_start=0,
ntree_end=0,
eval_period=1,
thread_count=-1,
tmp_dir=None,
log_cout=sys.stdout,
log_cerr=sys.stderr)
```
## Parameters
### model
#### Description
The CatBoost model to compare with.
**Possible types**
CatBoost Model
**Default value**
Required parameter
### metrics
#### Description
The list of metrics to be calculated.
[Supported metrics](https://catboost.ai/docs/en/concepts/en/references/custom-metric__supported-metrics)
For example, if the AUC and Logloss metrics should be calculated, use the following construction:
```
['Logloss', 'AUC']
```
**Possible types**
list of strings
**Default value**
Required parameter
### data
#### Description
A file or matrix with the input dataset, on which the compared metric values should be calculated.
**Possible types**
catboost.Pool
**Default value**
Required parameter
### ntree\_start
#### Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to`[ntree_start; ntree_end)` and the `eval_period` parameter to *k* to calculate metrics on every *k*\-th iteration.
This parameter defines the index of the first tree to be used when applying the model or calculating the metrics (the inclusive left border of the range). Indices are zero-based.
**Possible types**
int
**Default value**
0
### ntree\_end
#### Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to`[ntree_start; ntree_end)` and the `eval_period` parameter to *k* to calculate metrics on every *k*\-th iteration.
This parameter defines the index of the first tree not to be used when applying the model or calculating the metrics (the exclusive right border of the range). Indices are zero-based.
**Possible types**
int
**Default value**
0 (the index of the last tree to use equals to the number of trees in the
model minus one)
### eval\_period
#### Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to`[ntree_start; ntree_end)` and the `eval_period` parameter to *k* to calculate metrics on every *k*\-th iteration.
This parameter defines the step to iterate over the range `[`ntree\_start`;`ntree\_end`)`. For example, let's assume that the following parameter values are set:
- `ntree_start` is set 0
- `ntree_end` is set to N (the total tree count)
- `eval_period` is set to 2
In this case, the metrics are calculated for the following tree ranges: `[0, 2)`, `[0, 4)`, ... , `[0, N)`
**Possible types**
int
**Default value**
1 (the trees are applied sequentially: the first tree, then the first two
trees, etc.)
### thread\_count
#### Description
The number of threads to use.
Optimizes the speed of execution. This parameter doesn't affect results.
**Possible types**
int
**Default value**
\-1 (the number of threads is equal to the number of processor cores)
### tmp\_dir
#### Description
The name of the temporary directory for intermediate results.
**Possible types**
String
**Default value**
None (the name is generated)
### log\_cout
Output stream or callback for logging.
**Possible types**
- callable Python object
- python object providing the `write()` method
**Default value**
sys.stdout
### log\_cerr
Error stream or callback for logging.
**Possible types**
- callable Python object
- python object providing the `write()` method
**Default value**
sys.stderr
## Examples
```
from catboost import Pool, CatBoostRegressor
train_data = [[0, 3],
[4, 1],
[8, 1],
[9, 1]]
train_labels = [0, 0, 1, 1]
eval_data = [[1, 3],
[4, 2],
[8, 2],
[8, 3]]
eval_labels = [1, 0, 0, 1]
train_dataset = Pool(train_data, train_labels)
eval_dataset = Pool(eval_data, eval_labels)
model1 = CatBoostRegressor(iterations=100, learning_rate=0.1)
model1.fit(train_dataset, verbose=False)
model2 = CatBoostRegressor(iterations=100, learning_rate=0.3)
model2.fit(train_dataset, verbose=False)
model1.compare(model2, eval_dataset, ['RMSE'])
```
The following is a chart plotted with [Jupyter Notebook](https://catboost.ai/docs/en/concepts/en/features/visualization_jupyter-notebook) for the given example.

### Was the article helpful?
Yes
No
Previous
[copy](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_copy)
Next
[eval\_metrics](https://catboost.ai/docs/en/concepts/en/concepts/python-reference_catboostregressor_eval-metrics)
 |
| Readable Markdown | Draw train and evaluation metrics in [Jupyter Notebook](https://catboost.ai/docs/en/features/visualization_jupyter-notebook) for two trained models.
## Method call format
```
compare(model,
data=None,
metrics=None,
ntree_start=0,
ntree_end=0,
eval_period=1,
thread_count=-1,
tmp_dir=None,
log_cout=sys.stdout,
log_cerr=sys.stderr)
```
## Parameters
### model
#### Description
The CatBoost model to compare with.
**Possible types**
CatBoost Model
**Default value**
Required parameter
### metrics
#### Description
The list of metrics to be calculated.
[Supported metrics](https://catboost.ai/docs/en/references/custom-metric__supported-metrics)
For example, if the AUC and Logloss metrics should be calculated, use the following construction:
```
['Logloss', 'AUC']
```
**Possible types**
list of strings
**Default value**
Required parameter
### data
#### Description
A file or matrix with the input dataset, on which the compared metric values should be calculated.
**Possible types**
catboost.Pool
**Default value**
Required parameter
### ntree\_start
#### Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to`[ntree_start; ntree_end)` and the `eval_period` parameter to *k* to calculate metrics on every *k*\-th iteration.
This parameter defines the index of the first tree to be used when applying the model or calculating the metrics (the inclusive left border of the range). Indices are zero-based.
**Possible types**
int
**Default value**
0
### ntree\_end
#### Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to`[ntree_start; ntree_end)` and the `eval_period` parameter to *k* to calculate metrics on every *k*\-th iteration.
This parameter defines the index of the first tree not to be used when applying the model or calculating the metrics (the exclusive right border of the range). Indices are zero-based.
**Possible types**
int
**Default value**
0 (the index of the last tree to use equals to the number of trees in the
model minus one)
### eval\_period
#### Description
To reduce the number of trees to use when the model is applied or the metrics are calculated, set the range of the tree indices to`[ntree_start; ntree_end)` and the `eval_period` parameter to *k* to calculate metrics on every *k*\-th iteration.
This parameter defines the step to iterate over the range `[`ntree\_start`;`ntree\_end`)`. For example, let's assume that the following parameter values are set:
- `ntree_start` is set 0
- `ntree_end` is set to N (the total tree count)
- `eval_period` is set to 2
In this case, the metrics are calculated for the following tree ranges: `[0, 2)`, `[0, 4)`, ... , `[0, N)`
**Possible types**
int
**Default value**
1 (the trees are applied sequentially: the first tree, then the first two
trees, etc.)
### thread\_count
#### Description
The number of threads to use.
Optimizes the speed of execution. This parameter doesn't affect results.
**Possible types**
int
**Default value**
\-1 (the number of threads is equal to the number of processor cores)
### tmp\_dir
#### Description
The name of the temporary directory for intermediate results.
**Possible types**
String
**Default value**
None (the name is generated)
### log\_cout
Output stream or callback for logging.
**Possible types**
- callable Python object
- python object providing the `write()` method
**Default value**
sys.stdout
### log\_cerr
Error stream or callback for logging.
**Possible types**
- callable Python object
- python object providing the `write()` method
**Default value**
sys.stderr
## Examples
```
from catboost import Pool, CatBoostRegressor
train_data = [[0, 3],
[4, 1],
[8, 1],
[9, 1]]
train_labels = [0, 0, 1, 1]
eval_data = [[1, 3],
[4, 2],
[8, 2],
[8, 3]]
eval_labels = [1, 0, 0, 1]
train_dataset = Pool(train_data, train_labels)
eval_dataset = Pool(eval_data, eval_labels)
model1 = CatBoostRegressor(iterations=100, learning_rate=0.1)
model1.fit(train_dataset, verbose=False)
model2 = CatBoostRegressor(iterations=100, learning_rate=0.3)
model2.fit(train_dataset, verbose=False)
model1.compare(model2, eval_dataset, ['RMSE'])
```
The following is a chart plotted with [Jupyter Notebook](https://catboost.ai/docs/en/features/visualization_jupyter-notebook) for the given example.
 |
| Shard | 169 (laksa) |
| Root Hash | 17435841955170310369 |
| Unparsed URL | ai,catboost!/docs/en/concepts/python-reference_catboostregressor_modelcompare s443 |