gpt4 book ai didi

Haskell 多态性和类型类实例

转载 作者:行者123 更新时间:2023-11-30 08:38:44 25 4
gpt4 key购买 nike

我正在尝试用 Haskell 编写一个机器学习库,以提高我的 Haskell 技能。我考虑了一个涉及类的总体设计,如下所示:

  class Classifier classifier where
train :: X -> y -> trainingData
classify :: trainingData -> x -> y

例如,给定一组示例 X 及其真实标签 y,训练返回分类函数中使用的训练数据。

所以,如果我想实现 KNN,我会这样做:

data KNN = KNN Int (Int -> Int -> Float) 

其中第一个整数是邻居的数量,函数是计算向量之间距离的度量

  instance Classifier KNN where
---This is where I am stuck---

如何实现分类器类型类函数,以便它们是通用的我将创建的所有分类器?我觉得我把 Haskell 当作命令来对待类似 OOP 的语言,我想用 Haskell 的方式来做到这一点。

最佳答案

我想说你需要多参数类型类(具有可选的功能依赖项或类型系列;我省略了这些)。

 class Classifier c s l  k where
train :: c -> [(s, l)] -> k
classify :: c -> k -> s -> l
combine :: c -> k -> k -> k

分类器、样本、标签和知识类型之间存在四方面的关系。

训练方法从一组样本(s)-标签(l)对中导出一些知识(k)。分类方法使用该知识来推断样本的标签。 (combine 方法将两个知识连接在一起;不知道它是否始终适用)。

关于Haskell 多态性和类型类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39352792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com