(params)
| 1609 | |
| 1610 | |
| 1611 | def _process_synonyms(params): |
| 1612 | if 'objective' in params: |
| 1613 | params['loss_function'] = params['objective'] |
| 1614 | del params['objective'] |
| 1615 | |
| 1616 | if 'scale_pos_weight' in params: |
| 1617 | if 'loss_function' in params and params['loss_function'] != 'Logloss': |
| 1618 | raise CatBoostError('scale_pos_weight is supported only for binary classification Logloss loss') |
| 1619 | if 'class_weights' in params or 'auto_class_weights' in params: |
| 1620 | raise CatBoostError('only one of the parameters scale_pos_weight, class_weights, auto_class_weights should be initialized.') |
| 1621 | params['class_weights'] = [1.0, params['scale_pos_weight']] |
| 1622 | del params['scale_pos_weight'] |
| 1623 | if ('class_weights' in params) and isinstance(params['class_weights'], (dict, OrderedDict)): |
| 1624 | class_weights_dict = params['class_weights'] |
| 1625 | class_weights_list = [] |
| 1626 | if ('class_names' in params) and (params['class_names'] is not None): |
| 1627 | if len(class_weights_dict) != len(params['class_names']): |
| 1628 | raise CatBoostError('Number of classes in class_names and class_weights differ') |
| 1629 | for class_label in params['class_names']: |
| 1630 | if class_label not in class_weights_dict: |
| 1631 | raise CatBoostError( |
| 1632 | 'class "{}" is present in "class_names" but not in "class_weights" dictionary'.format( |
| 1633 | class_label |
| 1634 | ) |
| 1635 | ) |
| 1636 | class_weights_list.append(class_weights_dict[class_label]) |
| 1637 | else: |
| 1638 | class_labels_list = [] |
| 1639 | for class_label, class_weight in class_weights_dict.items(): |
| 1640 | class_labels_list.append(class_label) |
| 1641 | class_weights_list.append(class_weight) |
| 1642 | params['class_names'] = class_labels_list |
| 1643 | params['class_weights'] = class_weights_list |
| 1644 | |
| 1645 | _process_synonyms_groups(params) |
| 1646 | |
| 1647 | metric_period = None |
| 1648 | if 'metric_period' in params: |
| 1649 | metric_period = params['metric_period'] |
| 1650 | del params['metric_period'] |
| 1651 | |
| 1652 | verbose = None |
| 1653 | if 'verbose' in params: |
| 1654 | verbose = params['verbose'] |
| 1655 | del params['verbose'] |
| 1656 | |
| 1657 | logging_level = None |
| 1658 | if 'logging_level' in params: |
| 1659 | logging_level = params['logging_level'] |
| 1660 | del params['logging_level'] |
| 1661 | |
| 1662 | verbose_eval = None |
| 1663 | if 'verbose_eval' in params: |
| 1664 | verbose_eval = params['verbose_eval'] |
| 1665 | del params['verbose_eval'] |
| 1666 | |
| 1667 | silent = None |
| 1668 | if 'silent' in params: |
no test coverage detected