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