I get that
SimpleImputer() is best for cases where there are only a small number of missing observations, and where missingness in one feature is not affected by other features. My wild guess is that
IterativeImputer() would be good for imputing numeric features and
KNNImputer() would be good for imputing categorical features. I have absolutely nothing to back this up beyond a hunch.
I read the scikit-learn Imputation of Missing Values and Impute Missing Values Before Building an Estimator tutorials and a blog post on Stop Wasting Useful Information When Imputing Missing Values. None of these provided guidance on the best strategy to use so far as I could tell.
Are there any heuristics for choosing which imputer to use?