Tin*_*Man 3 random scala collect
我正在Scala中构建决策树系统,但我的数据中的一些条目具有相同的属性.我通过实现一个"随机"节点类型来解决这个问题,允许查询随机选择要遍历的分支,但是当我尝试随机分割剩余的例子时,我得到一个"MatchError".我目前的代码:
def splitRandom(examples: Array[String]): Array[String]={
examples.collect {case x if(r.nextInt(100) < 50) => x}
}
Run Code Online (Sandbox Code Playgroud)
"examples"是一个字符串数组,每个字符串都是一行,包含一个包含所有属性的数据条目.
collect对于随机行为来说不是一个好的选择,因为相同的条件可以被评估两次(首先是a isDefinedAt,然后是第二次计算值); 如果它第一次说真,假第二次 - 在同一输入 - 匹配将被打乱.filter改为使用:
examples.filter(_ => r.nextInt(100) < 50)
Run Code Online (Sandbox Code Playgroud)