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 是怎么来的?请在整理一下自己的思路。


继续加油!:)



0
1
紫梦沁香
十分感谢!
2025-03-03
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5948 学习 · 2456 问题

查看课程