请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

4.2 为什么predict还需要一个私有的predict,而fit没有?

是因为,predict函数太长了吗?所以分成小的函数。
我看那个示意图里面predict仅仅是一个输出箭头,是不是predict函数的具体实现过程放到fit里更合适,然后fit返回一个变量就够了?

正在回答

1回答

liuyubobobo 2018-01-30 16:16:03

在这一小节的设计里,_predict的作用是预测一个样本数据的输出结果。predict的作用是预测一组(多个)样本数据的输出结果。这里根据scikit-learn的封装方式,将后者作为最终暴露给用户的接口。


predict和fit做的事情完全不同。predict做的事情是预测,fit做的事情是训练。用户在具体调用的时候,在fit以后,可以多次使用fit的结果,多次调用predict,即针对一个训练结果,对不同的数据进行预测,所以二者的实现是分离的。以后慢慢你就会看到,对于大多数算法,fit过程是很慢的。每预测一组数据,就重新fit一遍,是不合理的:)

1 回复 有任何疑惑可以回复我~
  • 提问者 神经旷野舞者 #1
    想把那个流程图和代码对应起来的,fit是训练过程,那那个蓝色圆圈的机器学习算法对应哪部分代码?还是说那个蓝色部分表示静态的东西
    回复 有任何疑惑可以回复我~ 2018-01-30 17:15:53
  • liuyubobobo 回复 提问者 神经旷野舞者 #2
    对!就是蓝色的部分!只不过kNN算法非常特殊,蓝色的部分不需要计算!kNN算法的主要计算都在红色部分,也就是预测部分。之后学习更多的算法以后就会了解,大多数机器学习算法的重头戏,都在fit这一部分:)
    回复 有任何疑惑可以回复我~ 2018-01-30 17:20:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信