ENH ascategorial(): use dataset.eval()