使用KNeighborsClassifier时报错'object is not callable如何解决
报错原因
你前两步的实例化、调用fit()方法训练模型的操作均符合规范,报错核心出在第三步的预测写法:
KNeighborsClassifier实例化得到的knn是类实例对象,不是可调用的函数/方法。Python中只有实现了__call__魔法方法的对象支持直接加括号执行,sklearn的模型实例默认没有实现该方法,因此直接写knn(xxx)会触发TypeError: 'KNeighborsClassifier' object is not callable类型错误。
解决方案
sklearn所有有监督模型完成拟合后,需要调用对应预测方法生成结果,根据你的需求选择写法即可:
- 生成分类类别预测结果:调用
predict()方法,将原错误代码替换为:
prediction = knn.predict([[2,4,3,1]])
- 若需要生成样本属于每个类别的概率值,可调用
predict_proba()方法:
prediction_proba = knn.predict_proba([[2,4,3,1]])
内容的提问来源于stack exchange,提问作者Polly Pravir
相关产品推荐
相关产品推荐

