Files
papers/hanzo-analytics-ml/sections/07-model-training-pipeline.tex

44 lines
1.2 KiB
TeX

\section{Model Training Pipeline}
\subsection{Training Data Preparation}
\begin{algorithm}
\caption{Training Data Generation}
\begin{algorithmic}[1]
\Function{GenerateTrainingData}{$\mathcal{E}$, $horizon$}
\State $samples \gets []$
\For{$c \in customers(\mathcal{E})$}
\For{$t \in observation\_points(c)$}
\State $features \gets$ \Call{ComputeFeatures}{$c$, $t$}
\State $label \gets$ \Call{HasPurchase}{$c$, $[t, t + horizon]$}
\State $samples.append((features, label))$
\EndFor
\EndFor
\State \Return $samples$
\EndFunction
\end{algorithmic}
\end{algorithm}
\subsection{Class Imbalance Handling}
Purchase events are rare (typically 2-5\% of sessions convert). We address imbalance through:
\begin{enumerate}
\item SMOTE oversampling of minority class
\item Class weights in loss function: $w_{pos} = \frac{n_{neg}}{n_{pos}}$
\item Threshold optimization on validation set
\end{enumerate}
\subsection{Model Retraining}
Models are retrained on a weekly schedule:
\begin{itemize}
\item Training data: Rolling 180-day window
\item Validation: 14-day holdout
\item A/B testing: 5\% traffic for new model evaluation
\item Rollback criteria: >1\% AUC degradation
\end{itemize}