CoolFace
Modelpublic

bajiang/Electricity_Price_Predictor_Random_Forest_Regression

sourceHugging Facemitupdated 1y agoView on Hugging Face
2likes
Model Card

๐Ÿ”‹ 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


๐Ÿ“Š 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

FileDescription
random_forest_model.pklTrained RandomForestRegressor model
predict.pyPython function to load and run predictions
app.py (optional)Gradio-based interactive demo
requirements.txtPython dependencies
processed_electric_price_filled.csvTraining/test dataset
README.mdThis documentation

๐Ÿ‘จโ€๐Ÿ’ป Author

bajiang(Georgia)


๐Ÿ“„ License

MIT License โ€“ You are free to use, modify, and distribute this project with proper attribution.