Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:类,类似于python中的QuantiletTransformer_Python_Scala_Scikit Learn_Normal Distribution_Quantile - Fatal编程技术网

Scala:类,类似于python中的QuantiletTransformer

Scala:类,类似于python中的QuantiletTransformer,python,scala,scikit-learn,normal-distribution,quantile,Python,Scala,Scikit Learn,Normal Distribution,Quantile,我正在寻找Python的sklearn.preprocessing.QuantiletTransformer类的Scala实现。似乎没有一个类可以在scala中实现整个功能 Python实现有3个主要部分: 1) 使用numpy.percentile()计算给定数据和百分比数组的分位数。如果分位数位于两个输入数据点之间,则使用线性插值。在Scala中我能找到的最接近的是breeze,它有percentile()函数(观察:DataFrame.stats.approxQuantile()不执行线性

我正在寻找Python的sklearn.preprocessing.QuantiletTransformer类的Scala实现。似乎没有一个类可以在scala中实现整个功能

Python实现有3个主要部分:

1) 使用numpy.percentile()计算给定数据和百分比数组的分位数。如果分位数位于两个输入数据点之间,则使用线性插值。在Scala中我能找到的最接近的是breeze,它有percentile()函数(观察:DataFrame.stats.approxQuantile()不执行线性插值,因此不能在这里使用)

2) 使用numpy.interp()将值的输入范围转换为给定范围。例如,如果输入数据范围为1-100,则可以将其转换为任何给定范围,例如0-1。当输入数据存在于2个分位数之间时,再次使用线性插值。我能在Scala中找到的最接近的类是breeze.interpolation类

3) 使用numpy.ppf()计算反向CDF。我相信,对于这一点,我可以使用正态分布类作为下面的一个答案或StandardScaler类

有什么更好的方法可以使编码变得简短和简单吗?

该库有一个类,它有一个计算指定分位数值的
反向可计算性方法。那应该适合你的目的