arima.model / app.py
BSJ2004's picture
Rename arima.py to app.py
f4db0ab verified
raw
history blame
No virus
1.3 kB
import streamlit as st
import pickle
import pandas as pd
import matplotlib.pyplot as plt
st.title("Future crime pattern prediction ")
# Load the trained ARIMA model
with open("arima_model.pkl", 'rb') as f:
model_fit = pickle.load(f)
# Define number of future periods for forecasting
future_steps = st.number_input("Enter number of months to forecast:", value=12, min_value=1, step=1)
#start_date_input = st.date_input("Enter start date for the forecast:", value=pd.Timestamp.today())
# Convert the user input date to a pandas Timestamp for compatibility
start_date = pd.to_datetime("2024-03-2")
# Forecast future crime patterns
future_forecast = model_fit.forecast(steps=future_steps)
# Get the dates for the forecasted period
future_dates = pd.date_range(start=start_date, periods=future_steps + 1, freq='ME')[1:]
# Plot forecasted values
plt.figure(figsize=(10, 6))
plt.plot(future_dates, future_forecast, label="Forecast")
#plt.fill_between(future_dates, conf_int[:, 0], conf_int[:, 1], color='gray', alpha=0.3, label='95% Confidence Interval')
plt.legend()
plt.title("Future Crime Forecast")
plt.xlabel("Date")
plt.ylabel("Predicted Crime Count")
st.pyplot(plt)
# Display forecasted values
st.write(f"Forecasted values for the next {future_steps} months:")
st.write(future_forecast)