只在特定的数值中执行

我有一个数据框,我需要根据其他样本推算一个值。该列是数字的,意味着行业数字,fx(1111 – IT,1234 – 金融,等等)。我已经尝试应用KNNImputer,它确实产生了数字,但据我所知,它平均了其邻居的输出,从而产生了一个不存在于列中的数字。

imputer的代码如下。

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。

我如何对数值列进行推算,只考虑现有的数值?

解决方案:

技术性 这个问题的答案其实出奇的简单:只要在你的knn imputer中要求一个单一的邻居就可以了。

imputer = KNNImputer(n_neighbors=1)

这样一来,knn的预测就不会在(许多)邻居中被平均, 而是实际上只由你的数据中已经存在的值组成。

请注意,这是对 编程 你实际提出的问题;根据你的数据和特征的具体形式,这是否真的是正确的方法,已经超出了回答的范围(也可以说是SO的题外话)。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Android Studio抛出 "未找到图像 "异常。

2022-9-9 8:48:19

未分类

Pandas,在尝试拆分数据时,得到 "TypeError: 'list'对象不可调用"。

2022-9-9 8:48:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索