为什么knnimputer提供此输出?

时间:2020-05-05 14:45:57

标签: scikit-learn knn imputation

我正在看简单的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

0 个答案:

没有答案
相关问题