Basic Binary Classification with LogisticNet
This notebook demonstrates the basic usage of LogisticNet for binary classification, including fitting the model, making predictions, and evaluating accuracy.
Setup
We use a synthetic dataset from sklearn.datasets.make_classification for reproducibility.
[1]:
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from glmpynet import LogisticRegression
# Generate synthetic dataset
X, y = make_classification(n_samples=200, n_features=20, n_classes=2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Instantiate and fit LogisticNet
model = LogisticRegression()
model.fit(X_train, y_train)
# Predict and evaluate
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")
# Predict probabilities
y_proba = model.predict_proba(X_test)
print(f"Sample probabilities:\n{y_proba[:5]}")
Accuracy: 0.88
Sample probabilities:
[[0.94532103 0.05467897]
[0.98537361 0.01462639]
[0.9899398 0.0100602 ]
[0.00795596 0.99204404]
[0.0825289 0.9174711 ]]
Explanation
LogisticRegression()is instantiated with default parameters (C=1.0,penalty='l2').The model is trained on a synthetic dataset with 200 samples and 20 features.
Predictions and probabilities are computed, with accuracy typically around 0.85-0.95 for this dataset.
When transitioning to
glmnet, expect similar accuracy but potential differences in probabilities due to elastic-net regularization.