추가된 indicator_ 속성은 MissingIndicator 클래스의 객체입니다. MissingIndicator 객체의 features_ 속성은 누락된 값이 있는 특성의 인덱스를 담고 있습니다.
>>> imr.indicator_.features_
array([2, 3])
MissingIndicator 객체의 fit_transform 메서드를 호출하면 features_ 속성에 담긴 특성에서 누락된 값의 위치를 나타내는 배열을 반환합니다. 여기서는 세 번째, 네 번째 특성의 누락된 값의 위치입니다. 이 배열 값이 SimpleImputer 객체의 transform 메서드가 반환한 배열의 마지막 두 열에 해당합니다.
>>> imr.indicator_.fit_transform(df.values)
array([[False, False],
[ True, False],
[False, True]])
사이킷런 0.24 버전에서는 SimpleImputer 클래스에 원본 특성으로 변환하는 inverse_transform 메서드가 추가됩니다.
>>> imr.inverse_transform(imputed_data)
array([[ 1., 2., 3., 4.],
[ 5., 6., nan, 8.],
[10., 11., 12., nan]])
SimpleImputer는 한 특성의 통계 값을 사용하여 누락된 값을 채웁니다. 이와 달리 IterativeImputer 클래스는 다른 특성을 사용하여 누락된 값을 예측합니다. 먼저 initial_strategy 매개변수에 지정된 방식으로 누락된 값을 초기화합니다. 그다음 누락된 값이 있는 한 특성을 타깃으로 삼고 다른 특성을 사용해서 모델을 훈련하여 예측합니다. 이런 식으로 누락된 값이 있는 모든 특성을 순회합니다.
initial_strategy 매개변수에 지정할 수 있는 값은 SimpleImputer와 동일하게 'mean', 'median', 'most_frequent', 'constant'가 가능합니다.