流评估器参考
流评估器与流源或流装饰器不同。流源和流装饰器都返回元组流。流评估器更像是传统的函数,它评估其参数并返回结果。该结果可以是单个值、数组、映射或其他结构。
流评估器可以嵌套,以便一个评估器的输出成为另一个评估器的输入。
流评估器可以在不同的上下文中调用。例如,可以在其自身上调用流评估器,也可以在流式表达式的上下文中调用。
add
add
函数将采用 2 个或多个数值并将它们相加。如果任何值不是数字,则 add
函数将无法执行。如果找到空值,则将返回空值作为结果。
add 语法
下面的表达式显示了可以使用 add
评估器的各种方式。这些参数的数量和顺序无关紧要,并且不受限制,但至少需要两个参数。返回一个数值。
add(1,2,3,4) // 1 + 2 + 3 + 4 == 10
add(1,fieldA) // 1 + value of fieldA
add(fieldA,1.4) // value of fieldA + 1.4
add(fieldA,fieldB,fieldC) // value of fieldA + value of fieldB + value of fieldC
add(fieldA,div(fieldA,fieldB)) // value of fieldA + (value of fieldA / value of fieldB)
add(fieldA,if(gt(fieldA,fieldB),fieldA,fieldB)) // if fieldA > fieldB then fieldA + fieldA, else fieldA + fieldB
analyze
analyze
函数使用可用的分析器分析文本,并返回分析器发出的令牌列表。analyze
函数可以单独调用,也可以在 select
和 cartesianProduct
流表达式中使用。
anova
anova
函数计算两个或多个数值数组的方差分析。
betaDistribution
betaDistribution
函数基于其参数返回beta 概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数一起使用。
binomialCoefficient
binomialCoefficient
函数返回二项式系数,即可从 n 元素集合中选择的 k 元素子集的数量。
binomialDistribution
binomialDistribution
函数基于其参数返回二项式概率分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数一起使用。
constantDistribution
constantDistribution
函数基于其参数返回恒定概率分布。此函数是概率分布框架的一部分,旨在与 sample
和 cumulativeProbability
函数一起使用。
采样时,恒定分布始终返回其恒定值。
corr
corr
函数返回两个数值数组的相关性或矩阵的相关性矩阵。
corr
函数支持皮尔逊、肯德尔和斯皮尔曼相关性。
corr 语法
corr(numericArray1, numericArray2) // Compute the Pearsons correlation for two numeric arrays
corr(numericArray1, numericArray2, type=kendalls) // Compute the Kendalls correlation for two numeric arrays
corr(matrix) // Compute the Pearsons correlation matrix for a matrix
corr(matrix, type=spearmans) // Compute the Spearmans correlation matrix for a matrix
cosineSimilarity
cosineSimilarity
函数返回两个数值数组的余弦相似度。
diff
diff
函数执行时间序列差分。
时间序列差分通常用于在进一步分析之前使时间序列平稳。
distance
distance
函数计算两个数值数组的距离或矩阵的距离矩阵。
distance 语法
distance(numericArray1, numericArray2) // Computes the euclidean distance for two numeric arrays.
distance(numericArray1, numericArray2, type=manhattan) // Computes the manhattan distance for two numeric arrays.
distance(matrix) // Computes the euclidean distance matrix for a matrix.
distance(matrix, type=canberra) // Computes the canberra distance matrix for a matrix.
dotProduct
dotProduct
函数返回两个数值数组的点积。
empiricalDistribution
empiricalDistribution
函数返回经验分布函数,这是一个基于实际数据集的连续概率分布函数。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数一起使用。
此函数旨在处理连续数据。要从离散数据集构建分布,请使用 enumeratedDistribution
。
enumeratedDistribution
enumeratedDistribution
函数返回基于实际数据集或预定义的数据和概率集的离散概率分布函数。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数一起使用。
可以 在两种不同的情况下调用 enumeratedDistribution
-
离散值的单个数组。这对于离散数据的工作方式类似于经验分布。
-
单例离散值数组和表示离散值概率的双精度值数组。
此函数旨在处理离散数据。要从连续数据集构建分布,请使用 empiricalDistribution
。
enumeratedDistribution 语法
enumeratedDistribution(integerArray) // This creates an enumerated distribution from the observations in the numeric array.
enumeratedDistribution(array(1,2,3,4), array(.25,.25,.25,.25)) // This creates an enumerated distribution with four discrete values (1,2,3,4) each with a probability of .25.
eq
eq
函数将返回所有参数是否相等,根据 Java 的标准 equals(…)
函数。该函数接受任何类型的参数,但如果所有参数的类型不同,则该函数将无法执行。也就是说,所有参数都是布尔值、所有参数都是字符串或所有参数都是数值。如果任何参数为 null 并且至少有一个参数不为 null,则将返回 false。返回一个布尔值。
expMovingAge
expMovingAverage
函数计算数值数组的指数移动平均值。
factorial
factorial
函数返回其参数的阶乘。
gammaDistribution
gammaDistribution
函数返回基于其参数的伽玛概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数一起使用。
geometricDistribution
geometricDistribution
函数基于其参数返回一个几何概率分布。此函数是概率分布框架的一部分,旨在与 sample、probability 和 cumulativeProbability 函数一起使用。
gt
gt
函数将返回第一个参数是否大于第二个参数。该函数接受数值或字符串参数,但如果所有参数的类型不相同,则会执行失败。也就是说,全部都是字符串或全部都是数值。如果任何参数为 null,则会引发错误。返回一个布尔值。
gteq
gteq
函数将返回第一个参数是否大于或等于第二个参数。该函数接受数值和字符串参数,但如果所有参数的类型不相同,则会执行失败。也就是说,全部都是字符串或全部都是数值。如果任何参数为 null,则会引发错误。返回一个布尔值。
if
if
函数的工作方式类似于标准的条件 if/then 语句。如果第一个参数为 true,则返回第二个参数,否则返回第三个参数。该函数接受布尔值作为第一个参数,任何值作为第二个和第三个参数。如果第一个参数不是布尔值或为 null,则会发生错误。
loess
leoss
函数是一个平滑曲线拟合器,它使用局部回归算法。与接触每个控制点的 spline 函数不同,loess
函数在控制点之间绘制一条平滑曲线,而无需接触控制点。 loess
结果可由 derivative 函数使用,以便从不平滑的数据中生成平滑导数。
loess 命名参数
-
bandwidth
:(可选)绘制局部回归线时要使用的数据点百分比,默认为 .25。减小带宽会增加 loess 可以拟合的曲线数量。 -
robustIterations
: (可选) 用于平滑异常值的迭代次数,默认为 2。
loess 语法
loess(yValues) // This creates the xValues automatically and fits a smooth curve through the data points.
loess(xValues, yValues) // This will fit a smooth curve through the data points.
loess(xValues, yValues, bandwidth=.15) // This will fit a smooth curve through the data points using 15 percent of the data points for each local regression line.
logNormalDistribution
logNormalDistribution
函数基于其参数返回一个对数正态概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数一起使用。
kolmogorovSmirnov
kolmogorovSmirnov
函数在参考连续概率分布和样本集之间执行Kolmogorov Smirnov 检验。
lt
lt
函数将返回第一个参数是否小于第二个参数。该函数接受数值或字符串参数,但如果所有参数的类型不相同,则执行将失败。也就是说,所有参数都必须是字符串或都必须是数值。如果任何参数为空,则会引发错误。返回一个布尔值。
lteq
lteq
函数将返回第一个参数是否小于或等于第二个参数。该函数接受数值和字符串参数,但如果所有参数的类型不相同,则执行将失败。也就是说,所有参数都必须是字符串或都必须是数值。如果任何参数为空,则会引发错误。返回一个布尔值。
markovChain
markovChain
函数可用于执行 马尔可夫链 模拟。markovChain
函数将其参数作为 转移矩阵,并返回一个可以使用 sample 函数采样的数学模型。从马尔可夫链中获取的每个样本都代表系统的当前状态。
markovChain 语法
sample(markovChain(transitionMatrix), 5) // This creates a Markov Chain given a specific transition matrix.
The sample function takes 5 samples from the Markov Chain, representing the next five states of the system.
markovChain 返回值
马尔可夫链模型:马尔可夫链模型可以与 sample 函数一起使用。
matrix
matrix 函数返回一个 矩阵,该矩阵可以由支持矩阵运算的函数操作。
minMaxScale
minMaxScale
函数在最小值和最大值之间缩放数值数组。默认情况下,minMaxScale
在 0 和 1 之间缩放。minMaxScale
函数可以操作数值数组和矩阵。
当操作矩阵时,minMaxScale
函数操作矩阵的每一行。
minMaxScale 语法
minMaxScale(numericArray) // scale a numeric array between 0 and 1
minMaxScale(numericArray, 0, 100) // scale a numeric array between 1 and 100
minMaxScale(matrix) // Scale each row in a matrix between 0 and 1
minMaxScale(matrix, 0, 100) // Scale each row in a matrix between 0 and 100
mod
mod
函数返回第一个参数除以第二个参数的余数(模)。
mod 语法
下面的表达式展示了你可以使用 mod
计算器的各种方式。
mod(100,3) // returns the remainder of 100 / 3 .
mod(100,fieldA) // returns the remainder of 100 divided by the value of fieldA.
mod(fieldA,1.4) // returns the remainder of fieldA divided by 1.4.
if(gt(fieldA,fieldB),mod(fieldA,fieldB),mod(fieldB,fieldA)) // if fieldA > fieldB then return the remainder of fieldA/fieldB, else return the remainder of fieldB/fieldA.
monteCarlo
movingAvg
movingAvg
函数计算数字数组的移动平均值。
mult
mult
函数将取两个或多个数值并将它们相乘。如果任何值是非数值,则 mult
函数将无法执行。如果找到空值,则将返回空值作为结果。
mult 语法
下面的表达式展示了你可以使用 mult
计算器的各种方式。这些参数的数量和顺序无关紧要,并且没有限制,但至少需要两个参数。返回一个数值。
mult(1,2,3,4) // 1 * 2 * 3 * 4
mult(1,fieldA) // 1 * value of fieldA
mult(fieldA,1.4) // value of fieldA * 1.4
mult(fieldA,fieldB,fieldC) // value of fieldA * value of fieldB * value of fieldC
mult(fieldA,div(fieldA,fieldB)) // value of fieldA * (value of fieldA / value of fieldB)
mult(fieldA,if(gt(fieldA,fieldB),fieldA,fieldB)) // if fieldA > fieldB then fieldA * fieldA, else fieldA * fieldB
normalDistribution
normalDistribution
函数根据其参数返回一个 正态概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数一起使用。
olsRegress
olsRegress
函数执行普通最小二乘法,多元线性回归。
olsRegress
函数返回一个包含回归模型(带估计的回归参数)、RSquared 和回归诊断的单个元组。
olsRegress
的输出可以与 predict 函数一起使用,以基于回归模型预测值。
olsRegress 参数
-
矩阵
:回归量观测矩阵。矩阵中的每一行代表一个多元回归量观测。请注意,当指定包含截距项的模型时,无需添加初始单位列(1 列),此列将自动添加。 -
数值数组
:与回归量观测矩阵中的每一行匹配的结果数组。
poissonDistribution
poissonDistribution
函数根据其参数返回一个 泊松概率分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数一起使用。
polyFit
polyFit
函数执行多项式曲线拟合。
polyFit 语法
polyFit(yValues) // This creates the xValues automatically and fits a curve through the data points using the default 3 degree polynomial.
polyFit(yValues, 5) // This creates the xValues automatically and fits a curve through the data points using a 5 degree polynomial.
polyFit(xValues, yValues, 5) // This will fit a curve through the data points using a 5 degree polynomial.
pow
pow
函数返回其第一个参数的第二个参数次幂的值。
pow 语法
以下表达式显示了使用 pow
计算器的各种方式。
pow(2,3) // returns 2 raised to the 3rd power.
pow(4,fieldA) // returns 4 raised by the value of fieldA.
pow(fieldA,1.4) // returns the value of fieldA raised by 1.4.
if(gt(fieldA,fieldB),pow(fieldA,fieldB),pow(fieldB,fieldA)) // if fieldA > fieldB then raise fieldA by fieldB, else raise fieldB by fieldA.
predict
predict
函数根据回归模型或函数预测因变量的值。
predict
函数可以根据以下函数的输出预测值:spline, loess, regress, olsRegress。
predict 语法
predict(regressModel, number) // predict using the output of the <<regress>> function and single numeric predictor. This will return a single numeric prediction.
predict(regressModel, numericArray) // predict using the output of the <<regress>> function and a numeric array of predictors. This will return a numeric array of predictions.
predict(splineFunc, number) // predict using the output of the <<spline>> function and single numeric predictor. This will return a single numeric prediction.
predict(splineFunc, numericArray) // predict using the output of the <<spline>> function and a numeric array of predictors. This will return a numeric array of predictions.
predict(olsRegressModel, numericArray) // predict using the output of the <<olsRegress>> function and a numeric array containing one multi-variate predictor. This will return a single numeric prediction.
predict(olsRegressModel, matrix) // predict using the output of the <<olsRegress>> function and a matrix containing rows of multi-variate predictor arrays. This will return a numeric array of predictions.
probability
probability
函数返回概率分布中随机变量的概率。
probability
函数仅可为离散概率分布的特定随机变量计算概率。
支持的连续分布函数有:normalDistribution, logNormalDistribution, betaDistribution, gammaDistribution, empiricalDistribution, triangularDistribution, weibullDistribution, uniformDistribution, constantDistribution
支持的离散分布有:poissonDistribution, binomialDistribution, enumeratedDistribution, zipFDistribution, geometricDistribution, uniformIntegerDistribution
probability 语法
probability(poissonDistribution(10), 7) // Returns the probability of a random sample of 7 in a poisson distribution with a mean of 10.
probability(normalDistribution(10, 2), 7.5, 8.5) // Returns the probability between the range of 7.5 to 8.5 for a normal distribution with a mean of 10 and standard deviation of 2.
regress
regress
函数对两个数值数组执行简单回归。
此表达式的结果也由 predict
函数使用。
sample
sample
函数可用于从概率分布或马尔可夫链中抽取随机样本。
sample 语法
sample(poissonDistribution(5)) // Returns a single random sample from a poissonDistribution with mean of 5.
sample(poissonDistribution(5), 1000) // Returns 1000 random samples from poissonDistribution with a mean of 5.
sample(markovChain(transitionMatrix), 1000) // Returns 1000 random samples from a Markov Chain.
scalarAdd
scalarDivide
scalarDivide
函数将数值数组或矩阵中的每个数字除以一个标量值。 当使用数值数组时,scalarDivide
返回一个带有新值的新数组。 当使用矩阵时,scalarDivide
返回一个带有新值的新矩阵。
scalarMultiply
scalarMultiply
函数将数值数组或矩阵中的每个元素乘以一个标量值。当使用数值数组时,scalarMultiply
返回一个带有新值的新数组。当使用矩阵时,scalarMultiply
返回一个带有新值的新矩阵。
scalarSubtract
scalarSubtract
函数从数值数组或矩阵中的每个值中减去一个标量值。当使用数值数组时,scalarSubtract
返回一个带有新值的新数组。当使用矩阵时,scalarSubtract
返回一个带有新值的新矩阵。
spline
spline
函数对给定的一组 x,y 坐标执行曲线的三次样条插值 (https://en.wikiversity.org/wiki/Cubic_Spline_Interpolation)。spline 函数的返回值是一个插值函数,可用于预测沿曲线的值并生成曲线的导数。
sub
sub
函数将从左到右取 2 个或多个数值并进行减法运算。如果任何值是非数值类型,sub
函数将执行失败。如果找到空值,则将返回 null
作为结果。
sub 语法
下面的表达式展示了使用 sub
求值器的各种方式。这些参数的数量并不重要,并且没有限制,除了至少需要两个参数。返回一个数值。
sub(1,2,3,4) // 1 - 2 - 3 - 4
sub(1,fieldA) // 1 - value of fieldA
sub(fieldA,1.4) // value of fieldA - 1.4
sub(fieldA,fieldB,fieldC) // value of fieldA - value of fieldB - value of fieldC
sub(fieldA,div(fieldA,fieldB)) // value of fieldA - (value of fieldA / value of fieldB)
if(gt(fieldA,fieldB),sub(fieldA,fieldB),sub(fieldB,fieldA)) // if fieldA > fieldB then fieldA - fieldB, else fieldB - field
triangularDistribution
triangularDistribution
函数根据其参数返回一个三角概率分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数一起使用。
uniformDistribution
uniformDistribution
函数根据其参数返回一个连续均匀概率分布。请参阅 uniformIntegerDistribution
以使用离散均匀分布。此函数是概率分布框架的一部分,旨在与 sample
和 cumulativeProbability
函数一起使用。
uniformIntegerDistribution
uniformIntegerDistribution
函数根据其参数返回一个离散均匀概率分布。请参阅 uniformDistribution
以使用连续均匀分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数一起使用。
unitize
unitize
函数将数值数组缩放到 1 的幅度,通常称为单位向量。unitize 函数可以对数值数组和矩阵进行操作。
当对矩阵进行操作时,unitize 函数将矩阵的每一行进行单位化。
weibullDistribution
weibullDistribution
函数根据其参数返回一个韦布尔概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数一起使用。
zipFDistribution
zipFDistribution
函数根据其参数返回一个齐夫分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数一起使用。