在Sklearn Optics群集中除以零误差

时间:2019-12-19 02:58:23

标签: python scikit-learn

正在尝试使用OPTICS细分我的数据。

from sklearn.cluster import OPTICS
X_scaler = StandardScaler().fit(X)
X_final = X_scaler.transform(X)
opt = OPTICS()
opt.fit(X_final)

但是,使用Xi-steep方法提取群集时,在获得可达性图时似乎存在一些错误

C:\Users\d11\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\cluster\optics_.py:791: RuntimeWarning: divide by zero encountered in true_divide
  ratio = reachability_plot[:-1] / reachability_plot[1:]

我尝试将xi从0.05更改为0.5和min_samples,但无济于事。请帮忙!

1 个答案:

答案 0 :(得分:1)

这仅是警告而非错误。如果要避免这种情况,可以尝试其中的一种。

  1. 第一选择
import numpy as np
with np.errstate(divide='ignore'):
    ratio = reachability_plot[:-1] / reachability_plot[1:]
  1. 第二种选择
import numpy as np
np.seterr(divide='ignore', invalid='ignore')
ratio = reachability_plot[:-1] / reachability_plot[1:]