Я смотрю на простой пример knnimputer
:
from sklearn.impute import KNNImputer
X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
imputer = KNNImputer(n_neighbors=2, )
for a in X:
print(*a)
res = imputer.fit_transform(X)
print(res)
Вывод:
1 2 nan
3 4 3
nan 6 5
8 8 7
[[1. 2. 4. ]
[3. 4. 3. ]
[5.5 6. 5. ]
[8. 8. 7. ]]
Я не могу понять, почему первый вывод nan равен 4, а второй - 5,5?
Я думал, что результат будет:
first nan: sqrt(1^2 + 2^2) != 4
second nan: sqrt(6^2 + 5^2) != 5.5