如何在Sklearn管道中实现KNN来归类类别特征

时间:2019-09-03 15:51:49

标签: scikit-learn

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

我对现有的KNN解决方案(fancyimpute,sklearn KneighborRegressor)进行了大量研究。他们似乎都没有用

  • 在sklearn管道中工作
  • 归类归类特征

我的一些问题是(任何建议都值得赞赏):

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

2 个答案:

答案 0 :(得分:1)

  1. 默认的KNeighborRegressor应该能够对缺失值进行回归,但是只能对数字值进行回归。因此,对于绝对值,我相信您很可能需要先对其进行编码,然后再估算缺失的值。

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

  3. sklearn的
  4. 迭代计算机可以对整个数据集进行插补

答案 1 :(得分:0)

  1. KNNImputer是sklearn 0.22.0版中的新功能

  2. KNNImputer默认情况下使用欧几里德距离度量标准,但是您可以传入自己的自定义距离度量标准。

  3. 我无法说出KNNImputer的速度,但我想如果将它制成sklearn,就可以对其进行一些优化。