Loops 尝试实现一个嵌套循环来测试Iris数据上KNN的多个K值

Loops 尝试实现一个嵌套循环来测试Iris数据上KNN的多个K值,loops,knn,Loops,Knn,我试图找出如何以下面的代码为基础运行k值1、3、5、7、10、20、30、40和50。目前它已经是一个循环,因为我正在运行10个数据测试,将其存储在一个列表中,然后计算平均值,以便评估每个k级别的准确性 我在想可能是一个嵌套循环,但我似乎不知道在哪里或如何 为了完成所有的k级别,我使用下面的代码块重复了9次(因此这是一个巨大的代码段),但我知道必须有一种更优雅的方法来实现这一点,以便它在一个块内运行所有9 k值,并且仍然编译10精度结果、每个k值的平均精度和预测结果。这超出了我的技能水平 #k

我试图找出如何以下面的代码为基础运行k值1、3、5、7、10、20、30、40和50。目前它已经是一个循环,因为我正在运行10个数据测试,将其存储在一个列表中,然后计算平均值,以便评估每个k级别的准确性

我在想可能是一个嵌套循环,但我似乎不知道在哪里或如何

为了完成所有的k级别,我使用下面的代码块重复了9次(因此这是一个巨大的代码段),但我知道必须有一种更优雅的方法来实现这一点,以便它在一个块内运行所有9 k值,并且仍然编译10精度结果、每个k值的平均精度和预测结果。这超出了我的技能水平

#k value of 1
    a_range = range(0,10)
    scores_list = []
    right_wrong = []
    for a in a_range:
        knn = KNeighborsClassifier(n_neighbors=1)
        knn.fit(x_train, y_train.ravel()) 
        y_pred=knn.predict(x_test)
        scores_list.append(metrics.accuracy_score(y_test,y_pred))
    mscore_list = []
    mscore_list.append(statistics.mean(scores_list))
    mright_wrong.append(np.count_nonzero(y_test == np.atleast_2d(y_pred).T))