-1

을위한 최적의 매개 변수를 찾기 위해, 내 코드는 다음과 같습니다GridsearchCV 내가 자작 나무에 대한 최적의 매개 변수를 찾을 gridsearchCV을 사용하고 자작 나무

enter image description here

: 출력이 나에게 오류를 제공하지만

RAND_STATE=50 # for reproducibility and consistency 
folds=3 
k_fold = KFold(n_splits=folds, shuffle=True, random_state=RAND_STATE) 

hyperparams = { "branching_factor": [50,100,200,300,400,500,600,700,800,900], 
       "n_clusters": [5,7,9,11,13,17,21], 
       "threshold": [0.2,0.3,0.4,0.5,0.6,0.7]} 
birch = Birch() 

def sil_score(ndata): 
    labels = ensemble.predict(ndata) 
    score = silhouette_score(ndata, labels) 
    return score 

sil_scorer = make_scorer(sil_score) 

ensemble = GridSearchCV(estimator=birch,param_grid=hyperparams,scoring=sil_scorer,cv=k_fold,verbose=10,n_jobs=-1) 

ensemble.fit(x) 
print ensemble 
best_parameters = ensemble.best_params_ 
print best_parameters 
best_score = ensemble.best_score_ 
print best_score 

sil_score 함수에서 채점하는데 필요한 필수 매개 변수가 이미 언급되었을 때 점수 값이 4 개의 인수를 찾는 이유가 혼란 스럽습니다.

답변

2

점수 기능이 잘못되었습니다. 구문은 sil_score(y_true,y_pred)이어야합니다. 여기서 y_true는 지상 진실 lables이고 y_pred은 예측 된 레이블입니다. 또한 점수 계산 기능에서 앙상블 개체를 사용하여 별도로 레이블을 예측할 필요가 없습니다. 또한 경우에 따라 silhouette_score을 점수 함수로 직접 사용하는 것이 더 바람직합니다. 앙상블을 호출하여 전혀 필요하지 않은 점수 함수 내에서 레이블을 예측하기 때문입니다. silhouette_score을 점수 함수로 전달하면 GridSearchCV가 점수를 예측하여 처리합니다.

Here is an example 어떻게 작동하는지 보려면 여기를 클릭하십시오.