PyTorch logistic regression predicting whether to charge an EV based on battery level and electricity price.
Synthetic EV charging dataset (300 samples, linearly separable by design).
score = -0.08 * battery_percent - 3.0 * electricity_price + N(0, 0.8)
charge_now = 1 if score > -4.0 else 0
1import torch
2from pathlib import Path
3import sys
4sys.path.insert(0, str(Path(__file__).parent.parent))
5from _july_2.logistic_regression import LogisticRegressionModel
6
7# Load checkpoint
8ckpt = torch.load("logistic_best.pt", map_location="cpu")
9
10# Recreate model
11model = LogisticRegressionModel(len(ckpt["feature_cols"]))
12model.load_state_dict(ckpt["model_state_dict"])
13model.eval()
14
15# Prepare input (2 features: battery_percent, electricity_price)
16X_raw = torch.tensor([[20.0, 0.15], [80.0, 0.40]], dtype=torch.float32)
17
18# Normalize using training stats
19X_norm = (X_raw - ckpt["X_mean"]) / ckpt["X_std"]
20
21# Predict
22with torch.no_grad():
23 logits = model(X_norm)
24 probs = torch.sigmoid(logits)
25 preds = (probs >= 0.5).int()
26
27print(f"Probabilities: {probs.squeeze().tolist()}")
28print(f"Predictions: {preds.squeeze().tolist()}")
29# [low battery, low price] -> prob] -> ~0.9 (charge)
30# [high battery, high price] -> ~0.1 (don't charge)
1ckpt = torch.load("logistic_best.pt")
2feature_cols = ckpt["feature_cols"] # ["battery_percent", "electricity_price"]
3target_col = ckpt["target_col"] # "charge_now"
4X_mean, X_std = ckpt["X_mean"], ckpt["X_std"]
1@misc{ev-charging-logreg-2026,
2 title={EV Charging Logistic Regression},
3 author={marmossburg},
4 year={2026},
5 url={https://huggingface.co/...}
6}