skills/tabular/temporal-session-aggregation/SKILL.md
Builds user-level features by accumulating statistics across sequential event sessions before each assessment point.
npx skillsauth add wenmin-wu/ds-skills tabular-temporal-session-aggregationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
In event-sequence datasets (game logs, clickstreams, app sessions), build features by walking through each user's history chronologically and accumulating statistics up to each prediction point. This captures how a user's behavior evolves — accumulated accuracy, attempt counts, session durations, and event type frequencies.
import numpy as np
from collections import Counter
def aggregate_user_sessions(user_events, assessment_event_codes):
"""Walk through user's events chronologically, build features at each assessment."""
accumulated_correct = 0
accumulated_incorrect = 0
accumulated_actions = 0
durations = []
event_counts = Counter()
features_list = []
for session in user_events:
event_counts[session['type']] += 1
durations.append(session['duration'])
accumulated_actions += session['n_actions']
if session['event_code'] in assessment_event_codes:
features = {
'accumulated_correct': accumulated_correct,
'accumulated_incorrect': accumulated_incorrect,
'accuracy': accumulated_correct / max(1, accumulated_correct + accumulated_incorrect),
'total_actions': accumulated_actions,
'duration_mean': np.mean(durations),
'duration_std': np.std(durations) if len(durations) > 1 else 0,
'n_sessions': len(durations),
**{f'type_{k}_count': v for k, v in event_counts.items()},
}
features_list.append(features)
accumulated_correct += session.get('correct', 0)
accumulated_incorrect += session.get('incorrect', 0)
return features_list
data-ai
Scaled Pinball Loss (SPL) metric for evaluating quantile forecasts, normalized by mean absolute successive differences of training data
data-ai
Walk backward through a time series and multiplicatively rescale segments when jumps exceed a fraction of the running mean to correct data collection anomalies
testing
Transform forecasting target to next/current ratio minus one so that optimizing MAE or squared error implicitly minimizes SMAPE
tools
Convert point forecasts to prediction intervals by scaling with logit-transformed quantile ratios passed through a Normal CDF