流评估器参考
流评估器不同于流源或流装饰器。流源和流装饰器都返回元组流。流评估器更像是一个传统函数,它评估其参数并返回结果。该结果可以是单个值、数组、映射或其他结构。
可以嵌套流评估器,以便评估器的输出成为另一个评估器的输入。
可以在不同的上下文中调用流评估器。例如,可以单独调用流评估器,也可以在流表达式上下文中调用它。
add
add
函数将获取 2 个或更多数字值并将它们相加。如果任何值是非数字,则 add
函数将无法执行。如果找到 null 值,则会将 null 作为结果返回。
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
流表达式中调用。
analyze 语法
以下表达式显示了使用 analyze
评估器的方法。
-
分析原始文本:
analyze("hello world", analyzerField)
-
在
select
表达式中分析文本字段。这会使用分析器的输出对元组进行注释:select(expr, analyze(textField, analyzerField) as outField)
-
使用
cartesianProduct
表达式分析文本字段。这会将分析器发出的每个标记流式传输到其自己的元组中:cartesianProduct(expr, analyze(textField, analyzer) as outField)
anova
anova
函数为两个或更多数字数组计算 方差分析。
betaDistribution
betaDistribution
函数基于其参数返回一个 贝塔概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数配合使用。
binomialCoefficient
binomialCoefficient
函数返回一个 二项式系数,即从 n 元素集合中可以选择 k 元素子集的数量。
binomialDistribution
binomialDistribution
函数基于其参数返回一个 二项式概率分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数配合使用。
constantDistribution
constantDistribution
函数基于其参数返回一个常数概率分布。此函数是概率分布框架的一部分,旨在与 sample
和 cumulativeProbability
函数配合使用。
当采样时,常数分布始终返回其常数值。
corr
corr
函数返回两个数字数组的相关性或矩阵的相关性矩阵。
corr
函数支持 Pearson、Kendall 和 Spearman 相关性。
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(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 语句。如果第一个参数为真,则返回第二个参数,否则返回第三个参数。该函数接受布尔值作为第一个参数,并接受任何内容作为第二个和第三个参数。如果第一个参数不是布尔值或为 null,则会发生错误。
loess
leoss
函数是一个平滑曲线拟合器,它使用 局部回归 算法。与触及每个控制点的 样条 函数不同,loess
函数在控制点中放置一条平滑曲线,而无需触及控制点。loess
结果可由 导数 函数使用,以从不平滑的数据生成平滑导数。
loess 命名参数
-
带宽
: (可选)绘制局部回归线时要使用的百分比数据点,默认为 .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 检验。
lteq
lteq
函数将返回第一个参数是否小于或等于第二个参数。该函数接受数字和字符串参数,但如果所有参数不是同一种类型,则无法执行。也就是说,全部为字符串或全部为数字。如果任何参数为 null,则会引发错误。返回布尔值。
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(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.
蒙特卡罗
移动平均
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 参数
-
matrix
:回归观测矩阵。矩阵中的每一行都表示一个多变量回归观测值。请注意,在指定包含截距项的模型时,无需添加初始单位列(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(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.
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
scalarMultiply
scalarMultiply
函数将数字数组或矩阵中的每个元素乘以标量值。使用数字数组时,scalarMultiply
返回一个包含新值的新数组。使用矩阵时,scalarMultiply
返回一个包含新值的新矩阵。
scalarSubtract
scalarSubtract
函数从数字数组或矩阵中的每个值中减去一个标量值。使用数字数组时,scalarSubtract
返回一个包含新值的新数组。使用矩阵时,scalarSubtract
返回一个包含新值的新矩阵。
spline
spline
函数对给定一组 x、y 坐标的曲线执行三次样条插值 (https://en.wikiversity.org/wiki/Cubic_Spline_Interpolation)。样条函数的返回值是一个插值函数,可用于沿曲线预测值并生成曲线的导数。
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 函数将对矩阵的每一行进行 unitize。
weibullDistribution
weibullDistribution
函数根据其参数返回一个威布尔概率分布。此函数是概率分布框架的一部分,旨在与 sample
、kolmogorovSmirnov
和 cumulativeProbability
函数配合使用。
zipFDistribution
zipFDistribution
函数根据其参数返回一个ZipF 分布。此函数是概率分布框架的一部分,旨在与 sample
、probability
和 cumulativeProbability
函数配合使用。