File size: 4,107 Bytes
2f73a5f 21ecc32 e4b734c 2f73a5f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
---
license: mit
tags:
- regression
- electricity
- ev-charging
- price-prediction
- random-forest
- scikit-learn
- tabular-data
language:
- en
library_name: scikit-learn
datasets:
- processed_electric_price_filled.csv
metrics:
- r2
- mse
- mape
model-index:
- name: Electricity Price Predictor
results: []
---
# π Electricity Price Predictor (Random Forest Regression)
This is a custom regression model trained to predict electricity prices ($/kWh) in California, based on a variety of grid-level and environmental features such as EV charging demand, solar/wind production, carbon emissions, and storage indicators.
The model is trained using `RandomForestRegressor` from `scikit-learn`, with 24 engineered features and a structured tabular dataset. This project is intended to support intelligent energy systems, such as EV charging optimization, energy scheduling, or smart grid simulation.
---
## π Model Details
- π **Model**: RandomForestRegressor (n_estimators=200)
- π§ **Framework**: scikit-learn
- π§Ύ **Input Features**: 24 numerical values (see full list below)
- π― **Target Variable**: Electricity Price ($/kWh)
- ποΈ **Data**: Structured time-series dataset with hourly EV/grid info
- π§ͺ **Evaluation**:
- MSE: *e.g., 0.0023*
- RΒ²: *e.g., 0.89*
- MAPE: *e.g., 6.5%*
---
## π’ Input Features
The model expects a list of 24 numeric features:
```text
['Year', 'Month', 'Day', 'DayOfWeek', 'Hour',
'EV Charging Demand (kW)', 'Solar Energy Production (kW)', 'Wind Energy Production (kW)',
'Battery Storage (kWh)', 'Charging Station Capacity (kW)', 'EV Charging Efficiency (%)',
'Number of EVs Charging', 'Peak Demand (kW)', 'Renewable Energy Usage (%)',
'Grid Stability Index', 'Carbon Emissions (kgCO2/kWh)', 'Power Outages (hours)',
'Energy Savings ($)', 'Total_Renewable_Energy_Production', 'Effective_Charging_Capacity',
'Adjusted_Charging_Demand', 'Net_Energy_Cost', 'Carbon_Footprint_Reduction',
'Renewable_Energy_Efficiency']
```
---
---
## π§ͺ Usage Example
### πΉ Option 1: Load and use the model directly
```python
import joblib
import numpy as np
# Load trained model
model = joblib.load("random_forest_model.pkl")
# Sample input (replace with actual values)
features = [0.5] * 24
# Make prediction
price = model.predict(np.array(features).reshape(1, -1))[0]
print(f"Predicted Electricity Price: ${price:.4f}")
```
---
### πΉ Option 2: Use helper function in `predict.py`
```python
from predict import predict
features = [0.5] * 24
result = predict(features)
print(f"Predicted Price: ${result:.4f}")
```
---
### πΉ Option 3: Try it online (Gradio Web Demo)
If deployed, you can try it here:
[π Live Demo on Spaces](https://huggingface.co/spaces/YOUR_USERNAME/electricity-price-predictor-demo)
---
## π Sample Dataset
This repository includes a sample dataset: `processed_electric_price_filled.csv`.
It contains hourly records of EV charging demand, solar/wind energy production, grid stability, and electricity prices.
### Load and explore:
```python
import pandas as pd
df = pd.read_csv("processed_electric_price_filled.csv")
print(df.head())
```
---
## π Files Included
| File | Description |
|-------------------------------------|--------------------------------------------------|
| `random_forest_model.pkl` | Trained RandomForestRegressor model |
| `predict.py` | Python function to load and run predictions |
| `app.py` (optional) | Gradio-based interactive demo |
| `requirements.txt` | Python dependencies |
| `processed_electric_price_filled.csv` | Training/test dataset |
| `README.md` | This documentation |
---
## π¨βπ» Author
**bajiang(Georgia)**
---
## π License
MIT License β You are free to use, modify, and distribute this project with proper attribution. |