计算 KNN 错误率的问题

数据挖掘 matlab k-nn 八度
2022-02-26 03:53:04

我正在尝试验证我的 KNN 算法对电影评分预测的准确性。

我有2载体:Y- 真实的收视率,Y- 与预测的。

当我使用以下公式计算估计的标准误差(是我需要计算的那个吗?)时:

σest=(YY)2N

我得到的结果1.03. 但我以为不可能>1. 如果不是,那么这个数字对我说了什么?

results = load('first_try.mat');
Y = results(:,1);
Y_predicted = results(:,2);

o = sqrt(sum((Y-Y_predicted).^2)/rows(Y))
1个回答

K-NN 是距离的度量,因此方程的结果将取决于数据的规模。如果评分在 0 到 100 之间。那么如果你总是预测得很差,那么你的值显然会远大于 1。

例如,对于一个非常糟糕的预测器

import numpy as np

Y = [100, 90, 100, 90]
Y_p = [10, 10, 10, 10]

np.sqrt(np.sum(np.subtract(Y, Y_p)**2)/len(Y))

85.14693182963201