single pass through transactions; use cross validation in ml