Downloads · 30 days
0
datamatters24/attuned-resonance-predictor
attuned-resonance-predictor is a tabular regression model from datamatters24. Use it for the tabular regression task on the model card, and read the license before you ship it in a product. It is set up for pytorch. The card lists the license as cc-by-nc-4.0.
The GitHub repo slug is still "CEPM" during the gradual rename; the Hugging Face slugs were migrated to attuned-resonance- on 2026-05-09 (HF preserves the old cepm- URLs as redirects).
Downloads · 30 days
0
Access
Public
Updated May 16, 2026
Repo size
1.5 MB
Likes
0
Public
Click a slice to open those files.
.pt486 KB · 99%
From the Hugging Face model README
The GitHub repo slug is still "CEPM" during the gradual rename; the Hugging Face slugs were migrated to
attuned-resonance-*on 2026-05-09 (HF preserves the oldcepm-*URLs as redirects).
Given an intake record (including voice-tone emotion probabilities), an advisor profile, and the advisor's recent call history, forecasts three call outcomes: handle time, first-contact resolution (FCR) probability, and CSAT. Designed to be composed downstream of the intake model and voice-tone classifier, and upstream of the PPO router.
Research/educational use only. See disclaimer below.
intake_features (17-dim) ┐
└─ 7 scalar features │
└─ 10-dim tone_probs ├──▶ concat ──▶ MLP fusion (64-dim) ─┬─▶ handle_time (regression, ×1800s)
advisor_features (14-dim) │ ├─▶ fcr (sigmoid)
advisor_history (30 × 6) ┘ └─▶ csat (regression, 1–5)
LSTM encoder
(30-step history → 64-dim hidden)
The 7 scalar intake features are: intent_idx, sentiment, urgency, complexity, jung_idx, campbell_idx, archetype_confidence — each normalized to [0, 1].
The 10-dim tone_probs vector is the softmax output of the voice-tone classifier over the emotion classes [angry, frustrated, sad, calm, anxious, satisfied, confused, neutral, urgent, hopeful]. At data-generation time this is Dirichlet-sampled (α biased by sentiment/urgency); at real inference it comes from VoiceToneClassifier.predict(audio_clip).probs.
Small model (~130k parameters). The LSTM encodes the advisor's last 30 calls as a temporal sequence; its final hidden state is concatenated with the fused intake+advisor features, then fed to three per-task heads.
prod-predictoraudio ──▶ VoiceToneClassifier ──▶ tone_probs (10-dim)
│
transcript ──▶ IntakePredictor ──▶ intent, sentiment, urgency, ...
│
concat (17-dim) ──▶ OutcomeEstimator ──▶ handle_time, FCR, CSAT
│
advisor profile + history
models/predictor/dataset.py::_encode_intake). Mismatched encoding produces silently wrong predictions.import numpy as np
from models.predictor.inference import OutcomeEstimator
from pathlib import Path
estimator = OutcomeEstimator(
model_path=Path("trained_models/predictor/model.pt"),
device="cpu",
)
# 17-dim intake: 7 scalars + 10-dim tone_probs from VoiceToneClassifier
intake_features = np.array([...], dtype=np.float32) # shape (17,)
advisor_features = np.array([...], dtype=np.float32) # shape (14,)
advisor_history = np.array([...], dtype=np.float32) # shape (30, 6)
outcome = estimator.predict(intake_features, advisor_features, advisor_history)
# {'handle_time_seconds': 1185.0, 'fcr_probability': 0.48, 'csat_predicted': 3.69}
Full pipeline code at tedrubin80/CEPM.
CC-BY-NC-4.0. Non-commercial use only. Attribution required.
@software{attuned_resonance_predictor_2026,
author = {Rubin, Ted},
title = {Attuned Resonance Outcome Predictor: Multi-Head LSTM for Call Outcome Forecasting},
year = {2026},
url = {https://github.com/tedrubin80/CEPM}
}