【问题标题】:How to implement KNN to impute categorical features in a sklearn pipeline如何实现 KNN 来估算 sklearn 管道中的分类特征
【发布时间】:2020-01-06 13:27:14
【问题描述】:

我想使用 KNN 在 sklearn 管道中估算分类特征(缺少多个分类特征)。

我对现有的 KNN 解决方案(fancyimpute、sklearn KneighborRegressor)做了很多研究。他们似乎都没有工作

  • 在 sklearn 管道中工作
  • 估算分类特征

我的一些问题是(非常感谢任何建议):

  1. 是否有任何现有方法允许使用 KNN(或任何其他回归器)来估算缺失值(在本例中为分类)以使用 sklearn 管道
  2. fancyimpute KNN 实现似乎没有使用汉明距离来估算缺失值(这对于分类特征来说是理想的)。
  3. 考虑到 KNN 在估算缺失值时非常耗时(即针对整个数据集对缺失值运行预测),是否有任何可用的快速 KNN 方法实现

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:
    1. KNNImputer 是 sklearn 版本 0.22.0 的新内容

    2. KNNImputer 默认使用欧式距离度量,但您可以传入自己的自定义距离度量。

    3. 我无法评价 KNNImputer 的速度,但我想如果将它放入 sklearn 中,已经对其进行了一些优化。

    【讨论】:

      【解决方案2】:
      1. 默认的 KNeighborRegressor 应该能够处理缺失值的回归,但只能处理数值。因此,对于分类值,我相信您很可能需要先对其进行编码,然后再估算缺失值。

      2. KNNImpute,最有可能使用均值/众数等

      3. 来自 sklearn 的 iterativeimputer 可以针对整个数据集运行插补

      【讨论】:

        猜你喜欢
        • 2021-03-02
        • 2016-03-26
        • 2016-12-11
        • 2017-08-08
        • 2017-06-24
        • 1970-01-01
        • 2017-12-23
        • 2014-09-21
        • 2017-10-11
        相关资源
        最近更新 更多