计算框架构建与模型评估
1. 计算框架目标与构建层次
目标是创建一个灵活且可复用的框架,以适应不同的工作流,并支持从预处理、数据平滑、分类到验证的所有类型的机器学习算法。Scala 提供了丰富的工具包,包括单子设计、设计模式和使用特质的依赖注入。创建框架有三个复杂度层次:
- 依赖注入(Cake 模式)
- 管道操作符
- 单子数据转换
- 单子工作流的分层设计
第一步是定义一个特质和一个方法,用于描述计算单元(工作流元素)对数据的转换。
2. 管道操作符
数据转换是处理和分类数据集、训练和验证模型以及显示结果的任何工作流的基础。目标是定义不同类型数据转换的符号表示,而不暴露实现数据转换的算法的内部状态。管道操作符用于作为数据转换的签名:
trait PipeOperator[-T, +U] {
def |> (data: T): Option[U]
}
|> 操作符将类型为 T 的数据转换为类型为 U 的数据,并返回一个选项以处理内部错误和异常。该符号借鉴自 F# 语言,数据转换实际上实现了一个函数,因此具有与 Scala 的 Function[-T, +R] 相同的方差签名。
3. 单子数据转换
接下来是创建单子设计来实现管道操作符。使用单子设计将数据转换函数 _fct 与最常用的 Scal
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



