Logistic regression (LR)
Logistic regression, despite its name, is a linear model for classification rather than regression. Logistic regression is also known in the literature as logit regression, maximum-entropy classification (MaxEnt) or the log-linear classifier. In this model, the probabilities describing the possible outcomes of a single trial are modeled using a logistic function.
Corresponding estimators are:
- LogisticRegression for classification tasks.
Read more in sklearn's documentation.
Hyperparameters
- By default, the estimator adopts the default parameters provided by its package. See the user guide on how to customize them.
- The
penalty
parameter is always set to "l2" when penalty = "none" and solver = "liblinear". - The
penalty
parameter is always set to "l2" when penalty = "l1" and solver != "liblinear" or "saga". - The
penalty
parameter is always set to "l2" when penalty = "elasticnet" and solver != "saga". - The
C
parameter is not used when penalty = "none". - The
l1_ratio
parameter is only used when penalty = "elasticnet". - The
n_jobs
andrandom_state
parameters are set equal to those of the trainer.
Dimensions: |
penalty: str, default="l2"
C: float, default=1.0
solver: str, default="lbfgs"
max_iter: int, default=100
l1_ratio: float, default=0.5 |
Attributes
Data attributes
Attributes: |
dataset: pd.DataFrame
train: pd.DataFrame
test: pd.DataFrame
X: pd.DataFrame
y: pd.Series
X_train: pd.DataFrame
y_train: pd.Series
X_test: pd.DataFrame
y_test: pd.Series
shape: tuple
columns: list
n_columns: int
features: list
n_features: int
target: str |
Utility attributes
Attributes: |
bo: pd.DataFrame Information of every step taken by the BO. Columns include:
best_params: dict
estimator: class
time_bo: str
metric_bo: float or list
time_fit: str
metric_train: float or list
metric_test: float or list
metric_bootstrap: list
mean_bootstrap: float or list
std_bootstrap: float or list Training results. Columns include:
|
Prediction attributes
The prediction attributes are not calculated until the attribute is called for the first time. This mechanism avoids having to calculate attributes that are never used, saving time and memory.
Prediction attributes: |
predict_train: np.ndarray
predict_test: np.ndarray
predict_proba_train: np.ndarray
predict_proba_test: np.ndarray
predict_log_proba_train: np.ndarray
predict_log_proba_test: np.ndarray
decision_function_train: np.ndarray
decision_function_test: np.ndarray
score_train: np.float64
score_test: np.float64 |
Methods
The majority of the plots and prediction methods
can be called directly from the model, e.g. atom.lr.plot_permutation_importance()
or atom.lr.predict(X)
. The remaining utility methods can be found hereunder.
calibrate | Calibrate the model. |
cross_validate | Evaluate the model using cross-validation. |
delete | Delete the model from the trainer. |
export_pipeline | Export the model's pipeline to a sklearn-like Pipeline object. |
rename | Change the model's tag. |
reset_predictions | Clear all the prediction attributes. |
scoring | Get the score for a specific metric. |
save_estimator | Save the estimator to a pickle file. |
Applies probability calibration on the estimator. The
estimator is trained via cross-validation on a subset of the
training data, using the rest to fit the calibrator. The new
classifier will replace the estimator
attribute and is
logged to any active mlflow experiment. Since the estimator
changed, all the model's prediction attributes are reset.
Parameters: |
**kwargs Additional keyword arguments for sklearn's CalibratedClassifierCV. Using cv="prefit" will use the trained model and fit the calibrator on the test set. Note that doing this will result in data leakage in the test set. Use this only if you have another, independent set for testing. |
Evaluate the model using cross-validation. This method cross-validates the whole pipeline on the complete dataset. Use it to assess the robustness of the solution's performance.
Parameters: |
**kwargs Additional keyword arguments for sklearn's cross_validate function. If the scoring method is not specified, it uses the trainer's metric. |
Returns: |
scores: dict Return of sklearn's cross_validate function. |
Delete the model from the trainer. If it's the winning model, the next
best model (through metric_test
or mean_bootstrap
) is selected as
winner. If it's the last model in the trainer, the metric and training
approach are reset. Use this method to drop unwanted models from
the pipeline or to free some memory before saving. The model is not
removed from any active mlflow experiment.
Export the model's pipeline to a sklearn-like object. If the model used feature scaling, the Scaler is added before the model. The returned pipeline is already fitted on the training set.
Note
ATOM's Pipeline class behaves exactly the same as a sklearn Pipeline, and additionally, it's compatible with transformers that drop samples and transformers that change the target column.
Warning
Due to incompatibilities with sklearn's API, the exported pipeline always fits/transforms on the entire dataset provided. Beware that this can cause errors if the transformers were fitted on a subset of the data.
Parameters: |
pipeline: bool, sequence or None, optional (default=None) Transformers to use on the data before predicting.
verbose: int or None, optional (default=None) |
Returns: |
pipeline: Pipeline Current branch as a sklearn-like Pipeline object. |
Change the model's tag. The acronym always stays at the beginning of the model's name. If the model is being tracked by mlflow, the name of the corresponding run is also changed.
Parameters: |
name: str or None, optional (default=None) New tag for the model. If None, the tag is removed. |
Clear the prediction attributes from all models.
Use this method to free some memory before saving the trainer.
Get the scoring for a specific metric.
Parameters: |
metric: str or None, optional (default=None) Name of the metric to calculate. If None, returns the models' final results (ignoring the dataset parameter). Choose from any
of sklearn's classification SCORERS
or one of the following custom metrics:
dataset: str, optional (default="test") |
Returns: |
score: float or np.ndarray Model's score for the selected metric. |
Save the estimator to a pickle file.
Parameters: |
filename: str, optional (default="auto") Name of the file. Use "auto" for automatic naming. |
Example
from atom import ATOMClassifier
atom = ATOMClassifier(X, y)
atom.run(models="LR")