Почему knnimputer дает такой вывод? - PullRequest
1 голос
/ 05 мая 2020

Я смотрю на простой пример 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
...