Skip to content

Commit

Permalink
Rename MultiClassificationObjective to `MulticlassClassificationObj…
Browse files Browse the repository at this point in the history
…ective` (#715)

* Rename MultiClassificationObjective to MulticlassClassificationObjective, to align with our pipeline naming scheme

* Remove hyphen from multiclass in two places

* Changelog

* Lint.
  • Loading branch information
dsherry committed Apr 25, 2020
1 parent 388299a commit fafb0e8
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 21 deletions.
1 change: 1 addition & 0 deletions docs/source/changelog.rst
Expand Up @@ -41,6 +41,7 @@ Changelog
* Standardize `import_or_raise` error messages :pr:`683`
* Renamed `pipeline.feature_importance_graph` to `pipeline.graph_feature_importances` :pr:`700`
* Moved ROC and confusion matrix methods to `evalml.pipelines.plot_utils` :pr:`704`
* Renamed `MultiClassificationObjective` to `MulticlassClassificationObjective`, to align with pipeline naming scheme :pr:`715`
* Documentation Changes
* Fixed some sphinx warnings :pr:`593`
* Fixed docstring for AutoClassificationSearch with correct command :pr:`599`
Expand Down
2 changes: 1 addition & 1 deletion evalml/objectives/__init__.py
Expand Up @@ -36,5 +36,5 @@
)
from .utils import get_objective, get_objectives
from .binary_classification_objective import BinaryClassificationObjective
from .multiclass_classification_objective import MultiClassificationObjective
from .multiclass_classification_objective import MulticlassClassificationObjective
from .regression_objective import RegressionObjective
4 changes: 2 additions & 2 deletions evalml/objectives/multiclass_classification_objective.py
Expand Up @@ -3,9 +3,9 @@
from evalml.problem_types import ProblemTypes


class MultiClassificationObjective(ObjectiveBase):
class MulticlassClassificationObjective(ObjectiveBase):
"""
Base class for all multi-class classification objectives.
Base class for all multiclass classification objectives.
problem_type (ProblemTypes): Specifies the type of problem this objective is defined for (multiclass classification).
"""
Expand Down
36 changes: 19 additions & 17 deletions evalml/objectives/standard_metrics.py
Expand Up @@ -3,7 +3,9 @@
from sklearn.preprocessing import label_binarize

from .binary_classification_objective import BinaryClassificationObjective
from .multiclass_classification_objective import MultiClassificationObjective
from .multiclass_classification_objective import (
MulticlassClassificationObjective
)
from .regression_objective import RegressionObjective

from evalml.exceptions import DimensionMismatchError
Expand All @@ -23,7 +25,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.accuracy_score(y_true, y_predicted)


class AccuracyMulticlass(MultiClassificationObjective):
class AccuracyMulticlass(MulticlassClassificationObjective):
"""Accuracy score for multiclass classification"""
name = "Accuracy Multiclass"
greater_is_better = True
Expand All @@ -47,7 +49,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.balanced_accuracy_score(y_true, y_predicted)


class BalancedAccuracyMulticlass(MultiClassificationObjective):
class BalancedAccuracyMulticlass(MulticlassClassificationObjective):
"""Balanced accuracy score for multiclass classification"""
name = "Balanced Accuracy Multiclass"
greater_is_better = True
Expand All @@ -67,7 +69,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.f1_score(y_true, y_predicted, zero_division=0.0)


class F1Micro(MultiClassificationObjective):
class F1Micro(MulticlassClassificationObjective):
"""F1 score for multiclass classification using micro averaging"""
name = "F1 Micro"
greater_is_better = True
Expand All @@ -77,7 +79,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.f1_score(y_true, y_predicted, average='micro', zero_division=0.0)


class F1Macro(MultiClassificationObjective):
class F1Macro(MulticlassClassificationObjective):
"""F1 score for multiclass classification using macro averaging"""
name = "F1 Macro"
greater_is_better = True
Expand All @@ -87,7 +89,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.f1_score(y_true, y_predicted, average='macro', zero_division=0.0)


class F1Weighted(MultiClassificationObjective):
class F1Weighted(MulticlassClassificationObjective):
"""F1 score for multiclass classification using weighted averaging"""
name = "F1 Weighted"
greater_is_better = True
Expand All @@ -107,7 +109,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.precision_score(y_true, y_predicted, zero_division=0.0)


class PrecisionMicro(MultiClassificationObjective):
class PrecisionMicro(MulticlassClassificationObjective):
"""Precision score for multiclass classification using micro averaging"""
name = "Precision Micro"
greater_is_better = True
Expand All @@ -117,7 +119,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.precision_score(y_true, y_predicted, average='micro', zero_division=0.0)


class PrecisionMacro(MultiClassificationObjective):
class PrecisionMacro(MulticlassClassificationObjective):
"""Precision score for multiclass classification using macro averaging"""
name = "Precision Macro"
greater_is_better = True
Expand All @@ -127,7 +129,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.precision_score(y_true, y_predicted, average='macro', zero_division=0.0)


class PrecisionWeighted(MultiClassificationObjective):
class PrecisionWeighted(MulticlassClassificationObjective):
"""Precision score for multiclass classification using weighted averaging"""
name = "Precision Weighted"
greater_is_better = True
Expand All @@ -147,7 +149,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.recall_score(y_true, y_predicted, zero_division=0.0)


class RecallMicro(MultiClassificationObjective):
class RecallMicro(MulticlassClassificationObjective):
"""Recall score for multiclass classification using micro averaging"""
name = "Recall Micro"
greater_is_better = True
Expand All @@ -157,7 +159,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.recall_score(y_true, y_predicted, average='micro', zero_division=0.0)


class RecallMacro(MultiClassificationObjective):
class RecallMacro(MulticlassClassificationObjective):
"""Recall score for multiclass classification using macro averaging"""
name = "Recall Macro"
greater_is_better = True
Expand All @@ -167,7 +169,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.recall_score(y_true, y_predicted, average='macro', zero_division=0.0)


class RecallWeighted(MultiClassificationObjective):
class RecallWeighted(MulticlassClassificationObjective):
"""Recall score for multiclass classification using weighted averaging"""
name = "Recall Weighted"
greater_is_better = True
Expand All @@ -187,7 +189,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.roc_auc_score(y_true, y_predicted)


class AUCMicro(MultiClassificationObjective):
class AUCMicro(MulticlassClassificationObjective):
"""AUC score for multiclass classification using micro averaging"""
name = "AUC Micro"
greater_is_better = True
Expand All @@ -198,7 +200,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.roc_auc_score(y_true, y_predicted, average='micro')


class AUCMacro(MultiClassificationObjective):
class AUCMacro(MulticlassClassificationObjective):
"""AUC score for multiclass classification using macro averaging"""
name = "AUC Macro"
greater_is_better = True
Expand All @@ -209,7 +211,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.roc_auc_score(y_true, y_predicted, average='macro')


class AUCWeighted(MultiClassificationObjective):
class AUCWeighted(MulticlassClassificationObjective):
"""AUC Score for multiclass classification using weighted averaging"""
name = "AUC Weighted"
greater_is_better = True
Expand All @@ -230,7 +232,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.log_loss(y_true, y_predicted)


class LogLossMulticlass(MultiClassificationObjective):
class LogLossMulticlass(MulticlassClassificationObjective):
"""Log Loss for multiclass classification"""
name = "Log Loss Multiclass"
greater_is_better = False
Expand All @@ -250,7 +252,7 @@ def objective_function(self, y_predicted, y_true, X=None):
return metrics.matthews_corrcoef(y_true, y_predicted)


class MCCMulticlass(MultiClassificationObjective):
class MCCMulticlass(MulticlassClassificationObjective):
"""Matthews correlation coefficient for multiclass classification"""
name = "MCC Multiclass"
greater_is_better = True
Expand Down
Expand Up @@ -3,5 +3,5 @@

class RFMulticlassClassificationPipeline(MulticlassClassificationPipeline):
"""Random Forest Pipeline for multiclass classification"""
custom_name = "Random Forest Multi-class Classification Pipeline"
custom_name = "Random Forest Multiclass Classification Pipeline"
component_graph = ['One Hot Encoder', 'Simple Imputer', 'RF Classifier Select From Model', 'Random Forest Classifier']

0 comments on commit fafb0e8

Please sign in to comment.