next_activity_prediction_lifecycle_dual

Dual-head next-event model that predicts:

  • next activity (concept:name)
  • next lifecycle transition (lifecycle:transition)

This repository was exported from: next_activity_prediction_lifecycle_dual\next_activity_prediction_lifecycle_dual\models\start_complete\baseline

Included files

  • model.keras
  • metadata.json
  • metrics.json (if available)
  • history.json (if available)

Metrics

  • Activity accuracy: 0.8443847963680949
  • Activity macro-F1: 0.6984303181387901
  • Lifecycle accuracy: 0.8857407959704411
  • Lifecycle macro-F1: 0.8672618282920227
  • Joint accuracy: 0.8327037147496438
  • Balanced score: 0.7994652870601522

Usage (Python, platform-independent)

import json
import numpy as np
from huggingface_hub import hf_hub_download
from tensorflow import keras

repo_id = "Nixion/next_activity_prediction_lifecycle_dual"
model_path = hf_hub_download(repo_id=repo_id, filename="model.keras")
metadata_path = hf_hub_download(repo_id=repo_id, filename="metadata.json")

with open(metadata_path, "r", encoding="utf-8") as f:
    metadata = json.load(f)

model = keras.models.load_model(model_path)
sequence_length = int(metadata["sequence_length"])
activity_to_idx = metadata["activity_to_idx"]
lifecycle_to_idx = metadata["lifecycle_to_idx"]

def pad(xs, n):
    return ([0] * (n - len(xs)) + xs)[-n:]

# Example history:
activity_hist = ["A_Create Application", "A_Submitted"]
lifecycle_hist = ["complete", "complete"]

X_act = np.array([pad([activity_to_idx.get(a, 0) for a in activity_hist], sequence_length)], dtype=np.int32)
X_life = np.array([pad([lifecycle_to_idx.get(l, 0) for l in lifecycle_hist], sequence_length)], dtype=np.int32)

pred_activity_probs, pred_lifecycle_probs = model.predict([X_act, X_life], verbose=0)
next_activity_idx = int(np.argmax(pred_activity_probs[0]))
next_lifecycle_idx = int(np.argmax(pred_lifecycle_probs[0]))

idx_to_activity = {int(k): v for k, v in metadata["idx_to_activity"].items()}
idx_to_lifecycle = {int(k): v for k, v in metadata["idx_to_lifecycle"].items()}

print("next_activity:", idx_to_activity.get(next_activity_idx))
print("next_lifecycle:", idx_to_lifecycle.get(next_lifecycle_idx))
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support