Mllib 缺失值处理
Mllib missing values handling
我正在使用带有基本界面的 mllib 的 corr
喜欢
val a:RDD[Double] = sc.makeRDD(Seq(1., 1., 0.))
val b:RDD[Double] = sc.makeRDD(Seq(1., -1., 0.))
val r = Statistics.corr(a, b)
println(r)
是否有可能按大小写或成对删除 NAN 和 Infinity 值?
在无穷大或 NAN 值的情况下,Mllib 默认提供 NAN 作为 corr 的结果。
据我所知,没有内置函数,您需要自己过滤掉这些值。一种方法是使用 java.Double (http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html) 功能:
import java.lang.Double.isNaN
import java.lang.Double.isInfinite
val filtered1 = data1.filter((!isNaN(_))&&(!isInfinite(_)))
val filtered2 = data2.filter((!isNaN(_))&&(!isInfinite(_)))
val r = Statistics.corr(filtered1, filtered2)
println(r)
我正在使用带有基本界面的 mllib 的 corr 喜欢
val a:RDD[Double] = sc.makeRDD(Seq(1., 1., 0.))
val b:RDD[Double] = sc.makeRDD(Seq(1., -1., 0.))
val r = Statistics.corr(a, b)
println(r)
是否有可能按大小写或成对删除 NAN 和 Infinity 值?
在无穷大或 NAN 值的情况下,Mllib 默认提供 NAN 作为 corr 的结果。
据我所知,没有内置函数,您需要自己过滤掉这些值。一种方法是使用 java.Double (http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html) 功能:
import java.lang.Double.isNaN
import java.lang.Double.isInfinite
val filtered1 = data1.filter((!isNaN(_))&&(!isInfinite(_)))
val filtered2 = data2.filter((!isNaN(_))&&(!isInfinite(_)))
val r = Statistics.corr(filtered1, filtered2)
println(r)