无法理解这一行代码np.mean(pred_i!= y_test)

时间:2019-02-01 19:27:49

标签: python-3.x numpy machine-learning

在一个教程中,我无法理解以下代码行:

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))

3 个答案:

答案 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])

回到您的问题:您感兴趣的行将返回那些未能通过测试的结果的一部分,因此返回您的错误。