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.