我想在Haskell中编写一个机器学习库,以处理我的Haskell技能。 我考虑涉及一类是像这样的一般设计:,给定一组实例X的Haskell多态性和类型实例
class Classifier classifier where
train :: X -> y -> trainingData
classify :: trainingData -> x -> y
例如,与它们的真实标记Y,列车返回 trainingData其在分类功能中使用。
所以,如果我想要实现KNN,我会做它像这样:
data KNN = KNN Int (Int -> Int -> Float)
当第一个int是邻居的数量和功能,它是计算矢量
之间的距离度量instance Classifier KNN where
---This is where I am stuck---
我该如何实现分类器类型的类函数,以便它们对于我将创建的所有分类器都是通用的 ? 我感觉就像我对待Haskell太像一个命令 面向对象的语言,我想这样做的Haskell的方式。
这听起来像你从错误的结局开始的问题。你可以为你计划创建的各种分类器发布一些实际的'classify'和'train'函数的类型签名吗?那么,如果,为什么以及如何抽象东西,可能会很明显 – jberryman