我在寻找Python的Scala实现sklearn.preprocessing.QuantileTransformer班级。在scala中似乎没有一个类可以实现整个功能。在
Python实现有3个主要部分:
1)使用百分位(). 如果分位数位于两个输入数据点之间,则使用线性插值。在Scala中我能找到的最接近的是breeze,它有percentile()函数(观察:DataFrame.stats.approxQuantile()不执行线性插值,因此不能在此处使用)。在
2)用途numpy.INTP公司()将值的输入范围转换为给定范围。例如,如果输入数据的范围是1-100,它可以转换成任何给定的范围,比如0-1。当输入数据在2个分位数之间时,再次使用线性插值。在Scala我能找到的最接近的是微风。插值班级。在
3)使用数字.ppf(). 我相信,对于这一点,我可以使用正态分布类作为下面的一个答案或者StandardScaler类。在
有什么更好的方法让代码简洁明了?在
Apache Commons Math库有一个^{} 类,它有一个计算指定分位数值的
inverseCumulativeProbability
方法。那应该适合你的目的。在相关问题 更多 >
编程相关推荐