寻找超参数

best_score = 0.0
best_k = -1
for k in range(1,11):
    knn_clf = KNeighborsClassifier(n_neighbors=k)
    knn_clf.fit(X_train,y_train)
    score = knn_clf.score(X_test,y_test)
    if score > best_score:
        best_k = k
        best_score = score
        
print('best_k =>',best_k)
print('best_score =>',best_score)

是否考虑距离这个参数

best_method=''
best_score = 0.0
best_k = -1
for method in ['uniform','distance']:
    for k in range(1,11):
        knn_clf = KNeighborsClassifier(n_neighbors=k,weights = method)
        knn_clf.fit(X_train,y_train)
        score = knn_clf.score(X_test,y_test)
        if score > best_score:
            best_k = k
            best_score = score
            best_method=method

print('best_method =>',best_method)
print('best_k =>',best_k)
print('best_score =>',best_score)

猜你喜欢

转载自www.cnblogs.com/Erick-L/p/9009449.html