在一个教程中,我无法理解以下代码行:
np.mean(pred_i != y_test)
完成for
循环:
error_rate = []
for i in range(1,40):
knn = KNeighborsClassifier(n_neighbors=i)
knn.fit(X_train,y_train)
pred_i = knn.predict(X_test)
error_rate.append(np.mean(pred_i != y_test))
print(np.mean(pred_i != y_test))
答案 0 :(得分:0)
只需扩展Lajos的答案即可:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.LinkedHashMap` out of START_OBJECT token
at [Source: (File); line: 32, column: 3] (through reference chain: com.org.Message["attributes"])
将构造布尔其为WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatBMP, false);
运算的结果的一个新的向量。这些由pred_i != y_test
自动转换。 True为1,False为0。然后,您将获得向量的平均值。即如果全部为True,则为1.0;如果全部为False,则为0.0。
答案 1 :(得分:0)
np.mean(pred_i != y_test)
将取平均值0-1之间的值,该值将附加到错误率后面。稍后,如果用图表显示错误率与k值(1-40),则将得到具有最小错误率的k值。使用该K值将提高模型的准确性。
答案 2 :(得分:0)
warning: Format "%s" expects Arguments of type char* but Argument 2 has type "char**"
将返回布尔值(pred_i != y_test)
的向量。
请注意,[True, False, ...]
对于那些与测试值不匹配的变量将返回True,因为您对错误感兴趣。
例如:
!=
将返回np.mean([True, True, False])
回到您的问题:您感兴趣的行将返回那些未能通过测试的结果的一部分,因此返回您的错误。