knn分数的python迭代出现问题



我是python和sklearn的新手,我仍在努力弄清楚lambda到底做了什么,以及如何从我的测试数据集中获取分数,如果有人有任何有用的提示,那将是非常好的,谢谢!

问题:现在我们将编写一个函数,该函数将初始化、拟合给定k值的测试数据并返回分数和Plot结果使用1到25(包括1到25(之间的值,获得分数并绘制条形图提示:你可以使用地图,也可以使用简单的循环

import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
def returnScore(k, xtrain, xtest, ytrain, ytest):
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(xtrain, ytrain)
return knn.score(xtest, ytest)

result = [*map(lambda i:returnScore(i,?,?,?,?), range(1,25))]
print(result)
plt.plot(result)

分数是knn.score((给你的。基本上就是您在结果数组中得到的结果。Python中的lambda函数是匿名函数。所以你可以等效地写

def getscores(k):
...
return returnScore(k,?,?,?,?)
result = [*map(getscores, range(1,25))]

但是,在这种情况下,使用lambda函数更容易阅读。请参阅lambdas如何有用?

最新更新