我正在尝试在不使用sklearn或类似方法的情况下测量虹膜数据集上knn算法的精度和召回率。我的想法是将预测值和真实值都附加一个索引,例如:
id = [i for i in range(1,len(np.asarray(y_pred))+1)]
y_pred_id = np.insert(y_pred, 0, id)
然后删除所有非零或非1的数字……并匹配索引以获取TP的数量。可悲的是,我想出的代码仅将Array的长度追加了,有人对如何保持id为(n,2)的维数有想法吗?编辑:如果不用Pandas df就能做到,那就太好了。
谢谢,
尼古拉斯
如果我没有正确理解,则需要在n x 2
插入到id
之后再使用y_pred
大小矩阵。如果是这样,您可以通过以下方式进行:
选项1:使用np.reshape
...
y_pred_id = np.insert(y_pred, 0, id)
y_pred_id.reshape(2, n)
选项2:使用np.vstack
...
y_pred_id = np.vstack([y_pred, id])