<p dir="auto">This issue is to suggest a new option to the SimpleImputer(): For the missing values in a given column A_j, one could replace by random draws from the present value from that same column j. In comparison to the existing imputation strategies in SimpleImputer(), such "informed" approach does i) preserve some of the randomness that is present in the column instead of replacing by a constant and ii) the filled-in values reflect the distribution of the values really existing in that column.</p>
<p dir="auto">Cf. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="329779625" data-permission-text="Title is private" data-url="https://github.com/scikit-learn/scikit-learn/issues/11209" data-hovercard-type="issue" data-hovercard-url="/scikit-learn/scikit-learn/issues/11209/hovercard" href="https://github.com/scikit-learn/scikit-learn/issues/11209">#11209</a></p>
<p dir="auto">The purpose would be to provide an unbiased, stochastic, univariate imputer. The imputer would replace missing values by values sampled uniformly at random from the non-missing values of the sample column.</p>
<p dir="auto">This would require to add additional <code class="notranslate">random_state</code> constructor parameter to the class.</p>
<p dir="auto">As for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="329773579" data-permission-text="Title is private" data-url="https://github.com/scikit-learn/scikit-learn/issues/11208" data-hovercard-type="issue" data-hovercard-url="/scikit-learn/scikit-learn/issues/11208/hovercard" href="https://github.com/scikit-learn/scikit-learn/issues/11208">#11208</a> this strategy should work both on numerical and non-numerical dtypes.</p>