试图使用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,但无济于事。请帮忙!

最佳答案

这只是警告,不是错误。如果要避免这种情况,可以尝试以下一种方法。


第一选择


import numpy as np
with np.errstate(divide='ignore'):
    ratio = reachability_plot[:-1] / reachability_plot[1:]



第二种选择


import numpy as np
np.seterr(divide='ignore', invalid='ignore')
ratio = reachability_plot[:-1] / reachability_plot[1:]

关于python - 在Sklearn Optics群集中除以零误差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59402745/

10-11 20:19