예측할 특성을 선택하는 순서는 누락된 값이 가장 적은 특성부터 선택하는 'ascending', 누락된 값이 가장 큰 특성부터 선택하는 'descending', 왼쪽에서 오른쪽으로 선택하는 'roman', 오른쪽에서 왼쪽으로 선택하는 'arabic', 랜덤하게 고르는 'random'이 있습니다. 기본값은 'ascending'입니다.
특성 예측은 종료 조건을 만족할 때까지 반복합니다. 각 반복 단계에서 이전 단계와 절댓값 차이 중 가장 큰 값이 누락된 값을 제외하고 가장 큰 절댓값에 tol 매개변수를 곱한 것보다 작을 경우 종료합니다. tol 매개변수 기본값은 1e-3입니다. 또는 max_iter 매개변수에서 지정한 횟수에 도달할 때 종료합니다. max_iter의 기본값은 10입니다.
예측에 사용하는 모델은 estimator 매개변수에서 지정할 수 있으며 기본적으로 BayesianRidge 클래스를 사용합니다. 예측에 사용할 특성 개수는 n_nearest_features에서 지정할 수 있으며 상관 계수가 높은 특성을 우선하여 랜덤하게 선택합니다. 기본값은 None으로 모든 특성을 사용합니다.
IterativeImputer 클래스는 아직 실험적이기 때문에 사용하려면 먼저 enable_iterative_imputer 모듈을 임포트해야 합니다.
>>> from sklearn.experimental import enable_iterative_imputer
>>> from sklearn.impute import IterativeImputer
>>> iimr = IterativeImputer()
>>> iimr.fit_transform(df.values)
array([[ 1. , 2. , 3. , 4. ],
[ 5. , 6. , 7.00047063, 8. ],
[10. , 11. , 12. , 12.99964527]])
KNNImputer 클래스는 k-최근접 이웃 방법을 사용하여 누락된 값을 채웁니다. 최근접 이웃의 개수는 n_neighbors 매개변수로 지정하며 기본값은 5입니다. 샘플 개수가 n_neighbors보다 작으면 SimpleImputer (strategy='mean')과 결과가 같습니다.
>>> from sklearn.impute import KNNImputer
>>> kimr = KNNImputer()
>>> kimr.fit_transform(df.values)
array([[ 1. , 2. , 3. , 4. ],
[ 5. , 6. , 7.5, 8. ],
[10. , 11. , 12. , 6. ]])