python中二元变量如何用KNN法补缺值?
How to fill missing value with KNN method for binary variables in python?
我有一个包含许多数字变量的数据集。我想用KNN方法来填补缺失值。以下代码没有正确填写缺失值,因为部分填写的值超出了范围。例如我有二进制变量,但它用一个浮点数填充它们。
正如您在下表中看到的,我得到 0.66 而不是 1。
请告知代码错误的原因。
df = pd.read_csv('sample.csv')
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=3)
df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns)
数据集:
Column 1
Column 2
5
1
NAN
0
NAN
NAN
1
1
结果:
Column 1
Column 2
5
1
3
0
3
0.66
1
1
第 2 列基本上包含两个值(0 和 1)。它不是数值特征,它是分类特征因此您可以使用模式来填充第 2 列中的缺失值
我有一个包含许多数字变量的数据集。我想用KNN方法来填补缺失值。以下代码没有正确填写缺失值,因为部分填写的值超出了范围。例如我有二进制变量,但它用一个浮点数填充它们。
正如您在下表中看到的,我得到 0.66 而不是 1。
请告知代码错误的原因。
df = pd.read_csv('sample.csv')
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=3)
df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns)
数据集:
Column 1 | Column 2 |
---|---|
5 | 1 |
NAN | 0 |
NAN | NAN |
1 | 1 |
结果:
Column 1 | Column 2 |
---|---|
5 | 1 |
3 | 0 |
3 | 0.66 |
1 | 1 |
第 2 列基本上包含两个值(0 和 1)。它不是数值特征,它是分类特征因此您可以使用模式来填充第 2 列中的缺失值