ストリーム評価機能リファレンス
ストリーム評価機能は、ストリームソースやストリームデコレーターとは異なります。ストリームソースとストリームデコレーターは両方ともタプルのストリームを返します。ストリーム評価機能は、パラメータを評価して結果を返す従来の関数に似ています。その結果は、単一の値、配列、マップ、またはその他の構造にすることができます。
ストリーム評価機能はネストできるため、ある評価機能の出力が別の評価機能の入力になります。
ストリーム評価機能はさまざまなコンテキストで呼び出すことができます。たとえば、ストリーム評価機能は単独で呼び出すことも、ストリーミング式内で呼び出すこともできます。
add
add
関数は、2 つ以上の数値を加算します。いずれかの値が数値以外の場合、add
関数は実行に失敗します。null 値が見つかった場合は、結果として null が返されます。
add 構文
以下の式は、add
評価機能を使用できるさまざまな方法を示しています。これらのパラメータの数と順序は重要ではなく、少なくとも 2 つのパラメータが必要であること以外に制限はありません。数値が返されます。
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
関数は、2つ以上の数値配列に対して分散分析を計算します。
betaDistribution
betaDistribution
関数は、パラメータに基づいてベータ確率分布を返します。この関数は確率分布フレームワークの一部であり、sample
、kolmogorovSmirnov
、およびcumulativeProbability
関数と連携するように設計されています。
binomialCoefficient
binomialCoefficient
関数は、二項係数、つまりn要素の集合から選択できるk要素の部分集合の数を返します。
binomialDistribution
binomialDistribution
関数は、パラメータに基づいて二項確率分布を返します。この関数は確率分布フレームワークの一部であり、sample
、probability
、およびcumulativeProbability
関数と連携するように設計されています。
constantDistribution
constantDistribution
関数は、そのパラメータに基づいて定数確率分布を返します。この関数は確率分布フレームワークの一部であり、sample
およびcumulativeProbability
関数と連携するように設計されています。
サンプリングすると、定数分布は常にその定数値を返します。
corr
corr
関数は、2つの数値配列の相関または行列の相関行列を返します。
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
関数は、2つの数値配列のコサイン類似度を返します。
cov
cumulativeProbability
cumulativeProbability
関数は、確率分布内のランダム変数の累積確率を返します。累積確率は、ランダム変数以下のすべてのランダム変数の合計確率です。
diff
diff
関数は、時系列差分を実行します。
時系列差分は、さらなる分析を行う前に時系列を定常にするためによく使用されます。
距離
distance
関数は、2つの数値配列の距離、または行列の距離行列を計算します。
distance 名前付きパラメータ
-
type
: (オプション) 距離のタイプ。指定可能な値は、euclidean
、manhattan
、canberra
、またはearthMovers
です。デフォルトはeuclidean
です。
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
関数は、2つの数値配列のドット積を返します。
empiricalDistribution
empiricalDistribution
関数は、実際のデータセットに基づいた連続的な確率分布関数である経験分布関数を返します。この関数は、確率分布フレームワークの一部であり、sample
、kolmogorovSmirnov
、およびcumulativeProbability
関数と連携するように設計されています。
この関数は、連続データで動作するように設計されています。離散データセットから分布を作成するには、enumeratedDistribution
を使用します。
enumeratedDistribution
enumeratedDistribution
関数は、実際のデータセット、または事前に定義されたデータと確率のセットに基づいた離散確率分布関数を返します。この関数は、確率分布フレームワークの一部であり、sample
、probability
、およびcumulativeProbability
関数と連携するように設計されています。
enumeratedDistributionは、2つの異なるシナリオで呼び出すことができます。
-
離散値の単一配列。これは、離散データの経験分布のように機能します。
-
単一の離散値の配列と、離散値の確率を表すdouble値の配列。
この関数は、離散データで動作するように設計されています。連続データセットから分布を作成するには、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.
eor
eor
関数は、少なくとも2つのブールパラメータの論理排他的ORを返します。いずれかのパラメータがブール値ではないか、nullの場合、関数は実行に失敗します。ブール値を返します。
eor 構文
以下の式は、eor
評価器を使用できるさまざまな方法を示しています。少なくとも2つのパラメータが必要ですが、使用できる数に制限はありません。
eor(true,fieldA) // true iff fieldA is false
eor(fieldA,fieldB) // true iff either fieldA or fieldB is true but not both
eor(eq(fieldA,fieldB),eq(fieldC,fieldD)) // true iff either fieldA == fieldB or fieldC == fieldD but not both
eq
eq
関数は、Javaの標準的なequals(…)
関数に従って、すべてのパラメータが等しいかどうかを返します。この関数は任意の型のパラメータを受け入れますが、すべてのパラメータが同じ型ではない場合、実行に失敗します。つまり、すべてブール値、すべて文字列、またはすべて数値です。いずれかのパラメータがnullであり、nullではないパラメータが少なくとも1つ存在する場合、falseが返されます。ブール値を返します。
expMovingAge
expMovingAverage
関数は、数値配列の指数移動平均を計算します。
factorial
factorial
関数は、パラメータの階乗を返します。
gammaDistribution
gammaDistribution
関数は、パラメータに基づいてガンマ確率分布を返します。この関数は、確率分布フレームワークの一部であり、sample
、kolmogorovSmirnov
、およびcumulativeProbability
関数と連携するように設計されています。
geometricDistribution
geometricDistribution
関数は、パラメータに基づいて幾何確率分布を返します。この関数は、確率分布フレームワークの一部であり、sample、probability、およびcumulativeProbability関数と連携するように設計されています。
getAttribute
getAttribute
関数は、キーによってmatrix
から属性を返します。matrix
を返す任意の関数は、追加情報とともにmatrix
に属性を設定することもできます。setAttribute
関数を使用して、matrix
に属性を設定することもできます。属性のキーは常に文字列です。属性の値には、数値、配列、マップ、行列など、任意のオブジェクトを指定できます。
gt
gt
関数は、最初のパラメータが 2 番目のパラメータより大きいかどうかを返します。この関数は数値または文字列のパラメータを受け入れますが、すべてのパラメータが同じ型でない場合 (つまり、すべてが String またはすべてが Numeric の場合) は実行に失敗します。パラメータが null の場合はエラーが発生します。ブール値を返します。
gteq
gteq
関数は、最初のパラメータが 2 番目のパラメータ以上であるかどうかを返します。この関数は数値および文字列のパラメータを受け入れますが、すべてのパラメータが同じ型でない場合 (つまり、すべてが String またはすべてが Numeric の場合) は実行に失敗します。パラメータが null の場合はエラーが発生します。ブール値を返します。
if
if
関数は、標準的な条件付き if/then ステートメントのように動作します。最初のパラメータが true の場合は 2 番目のパラメータが返され、それ以外の場合は 3 番目のパラメータが返されます。この関数は、最初のパラメータとしてブール値、2 番目と 3 番目のパラメータとして任意の値を受け入れます。最初のパラメータがブール値でない場合、または null の場合はエラーが発生します。
loess
leoss
関数は、局所回帰アルゴリズムを使用する平滑化曲線フィッターです。各制御点に触れるスプライン関数とは異なり、loess
関数は制御点に触れる必要なく、制御点を通過する滑らかな曲線を配置します。loess
の結果は、微分関数で使用して、滑らかでないデータから滑らかな微分を生成できます。
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
関数は、参照連続確率分布とサンプルセットの間でコルモゴロフ-スミルノフ検定を実行します。
サポートされている分布関数は、empiricalDistribution
、normalDistribution
、logNormalDistribution
、weibullDistribution
、gammaDistribution
、および betaDistribution
です。
lt
lt
関数は、最初のパラメータが 2 番目のパラメータより小さいかどうかを返します。この関数は数値または文字列のパラメータを受け入れますが、すべてのパラメータが同じ型でない場合 (つまり、すべてが String またはすべてが Numeric の場合) は実行に失敗します。パラメータが null の場合はエラーが発生します。ブール値を返します。
lteq
lteq
関数は、最初のパラメータが 2 番目のパラメータ以下であるかどうかを返します。この関数は数値および文字列のパラメータを受け入れますが、すべてのパラメータが同じ型でない場合 (つまり、すべてが String またはすべてが Numeric の場合) は実行に失敗します。パラメータが 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 パラメータ
-
数値配列
|行列
: スケールする配列または行列 -
double
: (オプション) 最小値。デフォルトは 0 です。 -
double
: (オプション) 最大値。デフォルトは 1 です。
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
関数は、最初のパラメータを 2 番目のパラメータで割った余り (モジュロ) を返します。
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
monteCarlo
関数は、パラメータに基づいてモンテカルロシミュレーションを実行します。monteCarlo
関数は、指定された回数だけ別の関数を実行し、結果を返します。実行される関数には通常、各実行で確率分布から抽出される 1 つ以上の変数があります。sample
関数は、サンプルを抽出するために関数で使用されます。
シミュレーションの結果配列は、シミュレーション結果の確率を理解するための経験的分布として扱うことができます。
movingAvg
movingAvg
関数は、数値の配列に対する移動平均を計算します。
mult
mult
関数は、2 つ以上の数値を掛け合わせます。mult
関数は、いずれかの値が数値でない場合は実行に失敗します。null 値が見つかった場合は、null が結果として返されます。
mult 構文
以下の式は、mult
評価器を使用するさまざまな方法を示しています。これらのパラメータの数と順序は重要ではなく、少なくとも 2 つのパラメータが必要であること以外に制限はありません。数値が返されます。
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
関数は、最初のパラメータを 2 番目のパラメータの累乗にした値を返します。
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 構文
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 構文
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.
raw
raw
関数は、パラメータである生の値そのものを返します。これは、文字列を別の評価器の一部として使用する場合に便利です。
raw 構文
以下の式は、raw
評価器を使用できるさまざまな方法を示しています。内部にあるものはそのまま返されます。内部評価器は文字列とみなされ、評価されません。
raw(foo) // "foo"
raw(count(*)) // "count(*)"
raw(45) // 45
raw(true) // "true" (note: this returns the string "true" and not the boolean true)
eq(raw(fieldA), fieldA) // true if the value of fieldA equals the string "fieldA"
regress
regress
関数は、2つの数値配列の単純な回帰を実行します。
この式の結果は、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
scalarAdd
関数は、数値配列または行列内のすべての値にスカラ値を追加します。数値配列を操作する場合、scalarAdd
は新しい値を持つ新しい配列を返します。行列を操作する場合、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)を実行します。スプライン関数の戻り値は、曲線に沿って値を予測し、曲線の導関数を生成するために使用できる補間関数です。
sub
sub
関数は、2 つ以上の数値を左から右へ減算します。いずれかの値が数値でない場合、sub
関数は実行に失敗します。null 値が見つかった場合は、結果として null
が返されます。
sub 構文
以下の式は、sub
評価器を使用できるさまざまな方法を示しています。これらのパラメータの数は重要ではなく、少なくとも 2 つのパラメータが必要であるという点を除いて制限はありません。数値が返されます。
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
transpose
transpose
関数は、行列を転置します。
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
関数は、パラメータに基づいてZipF 分布を返します。この関数は確率分布フレームワークの一部であり、sample
、probability
、cumulativeProbability
の各関数と連携するように設計されています。