你问我有用没有用,那当然说有用啦。
举个栗子:
https:// izbicki.me/blog/hlearn- cross-validates-400x-faster-than-weka。一句话概括就是:有人用Haskell写了个比Weka快400倍的朴素贝叶斯cross validation,然后发到了ICML13上:
https:// izbicki.me/public/paper s/icml2013-algebraic-classifiers.pdf。
具体细节是这样的:有人在用haskell写一个机器学习库的时候发现,因为朴素贝叶斯在不同样本点上训练出来的模型构成了一个群,可以很容易地定义加法运算合并起来,免去了重复训练的需求。于是在做k-fold cross validation的时候只需要在每一折上单独训练,从而把复杂度从O(kn)降低为O(n)。如果能发现其他模型有类似的代数性质,也可以使用同样的方法降低cv的开销。
不过作者认为,他发现这个性质主要是因为haskell语言本身的抽象性更容易把这样的代数性质给表现出。
同一个作者的这篇小文章也挺有意思:
https:// izbicki.me/blog/gausian -distributions-are-monoids