πŸ”‹ 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:

['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

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

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


πŸ“Š 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:

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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support