alanoee's picture
Initial commit: Energy consumption prediction model
470deb6
"""
Example usage of Energy Consumption Prediction Model
Download this file along with model.py and energy_model_latest.joblib
"""
import pandas as pd
import numpy as np
from datetime import datetime
import os
def main():
# Check if model file exists
model_path = 'energy_model_latest.joblib'
if not os.path.exists(model_path):
print(f"Error: {model_path} not found!")
print("Please download energy_model_latest.joblib from this repository")
return
# Import and load model
from model import EnergyConsumptionPredictor
print("Loading energy consumption prediction model...")
model = EnergyConsumptionPredictor.from_file(model_path)
print(f"Model loaded successfully: {model.best_model_name}")
print(f"Features used: {len(model.feature_columns)}")
# Make predictions
months_to_predict = 6
print(f"\nPredicting energy consumption for next {months_to_predict} months...")
predictions = model.predict_future(months=months_to_predict)
# Display results
print("\n" + "="*60)
print("ENERGY CONSUMPTION PREDICTIONS")
print("="*60)
total_consumption = predictions['Predicted_Consumption'].sum()
total_cost = predictions['Predicted_Cost'].sum()
avg_consumption = total_consumption / months_to_predict
avg_cost = total_cost / months_to_predict
print(f"Total predicted consumption: {total_consumption:.0f} kWh")
print(f"Total predicted cost: {total_cost:.0f} PLN")
print(f"Average monthly consumption: {avg_consumption:.0f} kWh")
print(f"Average monthly cost: {avg_cost:.0f} PLN")
print(f"\nMonthly breakdown:")
print("-" * 55)
print(f"{'Month':<15} {'Consumption':<15} {'Cost (PLN)'}")
print("-" * 55)
for _, row in predictions.iterrows():
month_name = row['Date'].strftime('%B %Y')
consumption = row['Predicted_Consumption']
cost = row['Predicted_Cost']
print(f"{month_name:<15} {consumption:>8.0f} kWh {cost:>12.0f}")
print("-" * 55)
# Show feature importance
importance = model.get_feature_importance()
if importance:
print(f"\nTop 5 most important prediction features:")
for i, (feature, score) in enumerate(list(importance.items())[:5], 1):
print(f" {i}. {feature}: {score:.3f}")
# Save predictions to CSV
output_file = 'energy_predictions.csv'
predictions.to_csv(output_file, index=False)
print(f"\nPredictions saved to: {output_file}")
return predictions
if __name__ == "__main__":
print("Energy Consumption Prediction Model - Example Usage")
print("=" * 55)
print("Required files: model.py, energy_model_latest.joblib")
print("=" * 55)
try:
predictions = main()
print(f"\n✓ Success! Generated {len(predictions)} monthly predictions")
except Exception as e:
print(f"\n✗ Error: {str(e)}")
print("\nMake sure you have:")
print("1. model.py")
print("2. energy_model_latest.joblib")
print("3. Required packages: pandas, numpy, scikit-learn, joblib")