使用KBinsDiscretizer处理Nan值

时间:2020-08-07 10:43:50

标签: python machine-learning scikit-learn

我有一个看起来像这样的numpy数组,

A = np.random.randn(100, )
A.ravel()[np.random.choice(A.size, 10, replace=False)] = np.nan

np.nan指示缺少几个值

我正在尝试在其上安装KBinsDiscretizer。我通常要对非null值进行装箱,并将空值标记为单独的箱。

在通常情况下尝试适合KBinsDiscretizer时,由于数据中存在np.nan,因此出现以下错误。

est = KBinsDiscretizer(n_bins=5, encode='ordinal', strategy='quantile')
est.fit(A.reshape(-1, 1))

ValueError:输入包含NaN,无穷大或对于dtype('float64')而言太大的值。

有没有解决的办法?我想正常地对非null值进行装箱,并为null值创建一个附加的箱。

1 个答案:

答案 0 :(得分:0)

a PR to do this,在决定如何处理encode不同值的NaN bin时会停滞不前;在此期间,您可以在本地使用/修改代码。