对数据使用DBSCAN算法

时间:2018-11-15 11:32:46

标签: python outliers dbscan

我正在尝试在小型数据帧上应用DBSCAN算法,以便在之后进行离群值预测。所有列都有数字值,但是即使没有空值,我仍然会遇到相同的错误。

这是我调用算法的代码:

    db = DBSCAN(eps=0.09, min_samples=10).fit(dfc)
    m = loop.LocalOutlierProbability(dfc).fit()
    scores_noclust = m.local_outlier_probabilities
    m_clust = loop.LocalOutlierProbability(dfc, 
    cluster_labels=list(db.labels_)).fit()
    scores_clust = m_clust.local_outlier_probabilities
    print(list(scores_clust))

我收到此错误:

  输入类型不支持

ufunc'isnan',并且输入可以   不能根据铸件安全地强制使用任何受支持的类型   规则“安全”

我不明白为什么,因为我没有空值。

1 个答案:

答案 0 :(得分:0)

根据您的评论,似乎您有一列包含需要转换为整数的对象。

dfc['Idade'] = pd.to_numeric(dfc['Idade']).astype(int)

仅仅进行转换还不够,它只会返回一个新的意甲,但不会修改旧的意甲,您必须明确地执行此操作。