【发布时间】:2020-08-08 04:43:18
【问题描述】:
我有一个数据框,我需要根据其他样本估算一个值。该列是数字,表示行业编号 fx(1111 - IT、1234 - 金融等)。我尝试应用 KNNImputer,它确实会产生数字,但据我了解,它会平均其邻居的输出,从而生成列中不存在的数字。
输入代码如下:
X = df.copy()
imputer = KNNImputer(n_neighbors=5)
filled = imputer.fit_transform(X)
cols = X.columns
df_imputed = pd.DataFrame(data=filled, columns = cols)
它提供的输出是:6405.2 但是,最接近的行业代码是 6399 或 6411
如何仅考虑现有值对数值列进行插补?
【问题讨论】:
-
最简单的方法是将列表中不存在的值替换为现有值中的关闭值。您可以通过比较差异来做到这一点。
标签: scikit-learn knn imputation