Scikit-Learn Gridsearch AttributeError: 'HDBSCAN' 对象没有属性 'predict'

问题描述

我正在尝试使用 Scikit-Learn 的 gridsearchcv 调整 HDSBCAN 模型。我想用纯度作为我的得分手,所以我这样定义:

from sklearn.metrics import make_scorer

def cluster_purity(y_true,y_pred):
    # compute contingency matrix (also called confusion matrix)
    contingency_matrix = metrics.cluster.contingency_matrix(y_true,y_pred)
    # return purity
    return np.sum(np.amax(contingency_matrix,axis=0)) / np.sum(contingency_matrix)

purity_score = make_scorer(cluster_purity,greater_is_better=True)

然后我为 Gridsearch 定义了一个函数,如下所示:

def HDBSCAN_test(param_grid,n_jobs): 

    estimator = hdbscan.HDBSCAN()
 
    cv = None
    
    regressor = gridsearchcv(estimator=estimator,cv=cv,scoring=purity_score,param_grid=param_grid,n_jobs=n_jobs,error_score=0.0,verbose=3) 

    regressor.fit(X_train,y_train) 

    print("Best Estimator learned through GridSearch") 
    print(regressor.best_estimator_)

    return cv,regressor.best_estimator_

然后我这样称呼它:

param_grid={'min_cluster_size': [1000,2000,5000,8000]}

n_jobs=-1

cv,best_est=HDBSCAN_test(param_grid,n_jobs)

但是我收到了这个错误

AttributeError: 'HDBSCAN' object has no attribute 'predict'

这是有道理的,因为确实 HDBSCAN 没有 predict。它有 predictfit_predictgenerate_prediction_data(参见 link

我曾尝试将行 regressor.fit(X_train,y_train) 更改为 regressor.fit_predict(X_train) 但这次我收到此错误AttributeError: 'gridsearchcv' object has no attribute 'fit_predict'

我该如何解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)