knn算法代码问题
来源:4-2 scikit-learn中的机器学习算法封装

紫梦沁香
2025-03-02
您好,我的knn算法遇到点问题,就是我只有一个x_predict但是出来的结果是两个,麻烦帮我看一下问题在哪,感谢!
写回答
1回答
-
liuyubobobo
2025-03-03
传入 predict 的需要是一个二维矩阵,行代表样本数,列代表特征数。即使只有一个样本,也需要传入一个 [1 * 特征数] 的矩阵。你传入的是一个一维数组。
课程中的程序大写表示矩阵,小写表示向量。大小写这样区别开,就是因为特别容易犯这种错误。课程代码中添加的 assert,也是为了防止这种情况的发生。强烈建议将课程代码中的 assert 添加上。https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/02-kNN-in-scikit-learn/kNN/kNN.py
另外,你的训练数据的特征数是 2(X_train 是 10 * 2 的),但是为什么x_predict 是一个包含有 4 个元素的向量?4 是怎么来的?请在整理一下自己的思路。
继续加油!:)
012025-03-03
相似问题