expenses_ai / predict.py
Sabithulla's picture
Create predict.py
2bd21ab verified
raw
history blame contribute delete
680 Bytes
import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np
def predict_expense(df):
if len(df) < 5:
return {"error": "Not enough data"}
df['date'] = pd.to_datetime(df['date'])
df['day'] = df['date'].dt.day
df['month'] = df['date'].dt.month
X = df[['day', 'month']]
y = df['amount']
model = LinearRegression()
model.fit(X, y)
future = pd.DataFrame({
"day": [df['day'].max() + i for i in range(1, 8)],
"month": [df['month'].iloc[-1]] * 7
})
preds = model.predict(future)
return {
"next_7_days": float(np.sum(preds)),
"daily_prediction": preds.tolist()
}