我有一個如圖所示的多維陣列。如果我使用 搜索最大精度max(accuracy),它將根據 計算最大精度k value。

K = np.arange(1, 5)
metric = ['euclidean', 'manhattan']
accuracy = []
for k in K:
for m in metric:
m2 = KNeighborsClassifier(n_neighbors=k, metric=m).fit(X_train_scaled, y_train_scaled)
acc = m2.score(X_test_scaled, y_test_scaled)
accuracy.append([k, m, acc])
print(f'Accuracy = {accuracy}')
print(f'\nMax Accuracy: \n{max(accuracy)}')
如何根據 計算最大精度accuracy value?
uj5u.com熱心網友回復:
accuracy是一個回圈構造的串列。由于準確度分數是每個子串列中的第三個元素,因此您可以max通過將選擇串列的最后一個元素的 lambda 函式傳遞給key引數來使用函式找到最大值。從檔案:
key 指定一個引數的函式,用于從每個串列元素中提取比較鍵(例如,key=str.lower)。串列中每一項對應的鍵計算一次,然后用于整個排序程序。
例如:
>>> accuracy = [[1,'a',1], [1,'b',10], [2,'c',5], [3,'d',3]]
>>> highest_accuracy = max(accuracy, key=lambda x: x[-1])
>>> print(highest_accuracy)
[1, 'b', 10]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425607.html
