IterativeImputer
поведение может меняться в зависимости от случайного состояния. Случайное состояние, которое можно установить, также называется «начальным числом».
Как указано в документации, мы можем получить несколько значений при установке sample_posterior
на True
и изменении случайных начальных значений, то есть параметраrandom_state
.
Вот пример того, как его использовать:
import numpy as np
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
X_train = [[1, 2],
[3, 6],
[4, 8],
[np.nan, 3],
[7, np.nan]]
X_test = [[np.nan, 2],
[np.nan, np.nan],
[np.nan, 6]]
for i in range(3):
imp = IterativeImputer(max_iter=10, random_state=i, sample_posterior=True)
imp.fit(X_train)
print(f"imputation {i}:")
print(np.round(imp.transform(X_test)))
Он выводит:
imputation 0:
[[ 1. 2.]
[ 5. 10.]
[ 3. 6.]]
imputation 1:
[[1. 2.]
[0. 1.]
[3. 6.]]
imputation 2:
[[1. 2.]
[1. 2.]
[3. 6.]]
Мы можем наблюдать три различных вменения.