云日志服務日志服務支持如下機器學習函數。
函數列表
| 函數名稱 | 語法 | 說明 |
|---|---|---|
| ts_cp_detect | ts_cp_detect(x, y, minSize) | 尋找時序序列中具有不同統計特性的區間,區間端點即為變點。 |
| ts_breakout_detect | ts_breakout_detect(x, y, winSize) | 尋找時序序列中,某統計量發生陡升或陡降的點。 |
| ts_find_peaks | ts_find_peaks(x, y, winSize) | 極大值檢測函數用于在指定窗口中尋找序列的局部極大值。 |
| ts_predicate_simple | ts_predicate_simple(x, y, nPred, isSmooth) | 利用默認參數對時序數據進行建模,并進行簡單的時序預測和異常點的檢測。 |
| ts_predicate_ar | ts_predicate_ar(x, y, p, nPred, isSmooth) | 使用自回歸模型對時序數據進行建模,并進行簡單的時序預測和異常點的檢測。 |
| ts_predicate_arma | ts_predicate_arma(x, y, p, q, nPred, isSmooth) | 使用移動自回歸模型對時序數據進行建模,并進行簡單的時序預測和異常點檢測。 |
| ts_predicate_arima | ts_predicate_arima(x, y, p, d, q, nPred, isSmooth) | 使用帶有差分的移動自回歸模型對時序數據進行建模,并進行簡單的時序預測和異常點檢測。 |
| ts_density_cluster | ts_density_cluster(x, y, z) | 使用密度聚類方法對多條時序數據進行聚類。 |
| ts_hierarchical_cluster | ts_hierarchical_cluster(x, y, z) | 使用層次聚類方法對多條時序數據進行聚類。 |
| ts_smooth_simple | ts_smooth_simple(x, y) | 默認平滑函數,使用Holt-Winters算法對時序數據進行濾波操作。 |
| ts_smooth_fir | ts_smooth_fir(x, y,winType,winSize) ts_smooth_fir(x, y,array()) | 使用FIR濾波器對時序數據進行濾波操作。 |
| ts_smooth_iir | ts_smooth_iir(x, y, array(), array()) | 使用IIR濾波器對時序數據進行濾波操作。 |
ts_cp_detect函數
尋找時序序列中具有不同統計特性的區間,區間端點即為變點。
語法
ts_cp_detect(x, y, minSize)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| minSize | 最小連續區間長度。 | 最小值為3 | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的時間戳 |
| src | 濾波前的數據 |
| proc | 該點為變點的概率,取值范圍為0~1。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_cp_detect(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_breakout_detect函數
尋找時序序列中,某統計量發生陡升或陡降的點。
語法
ts_breakout_detect(x, y, winSize)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| winSize | 最小連續區間長度。最小值為3 | int | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的時間戳 |
| src | 濾波前的數據 |
| proc | 該點為變點的概率,取值范圍為0~1。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_breakout_detect(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_find_peaks函數
從URL中提取Fragment信息。
語法
ts_find_peaks(x, y, winSize)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| winSize | 指定最小的檢測窗口長度。最小值為1 | int | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的時間戳 |
| src | 未濾波前的數據 |
| peak_flag | 該點是否為極大值,其中:
|
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_find_peaks(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_predicate_simple函數
利用默認參數對時序數據進行建模,并進行簡單的時序預測和異常點的檢測。
語法
ts_predicate_simple(x, y, nPred, isSmooth)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| nPred | 預測未來的點的數量。 | int類型,取值大于等于1 | 是 |
| isSmooth | 是否需要對原始數據做濾波操作。 | bool類型,默認為true表示對原始數據做濾波操作。 | 否 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的Unixtime時間戳 |
| value | 原始數據 |
| predict | 預測的數據 |
| upper | 預測的上界 |
| lower | 預測的下界 |
| prob | 該點為異常點的概率,范圍為0~1。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_predicate_simple(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_simple(time, number, 3, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_predicate_ar函數
使用自回歸模型對時序數據進行建模,并進行簡單的時序預測和異常點的檢測。
語法
ts_predicate_ar(x, y, p, nPred, isSmooth)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| p | 自回歸模型的階數。 | long類型,取值范圍為2~8。 | |
| nPred | 預測未來的點的數量。 | long類型,取值大于等于1 | 是 |
| isSmooth | 是否需要對原始數據做濾波操作。 | bool類型,默認為true表示對原始數據做濾波操作。 | 否 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的Unixtime時間戳 |
| value | 原始數據 |
| predict | 預測的數據 |
| upper | 預測的上界 |
| lower | 預測的下界 |
| prob | 該點為異常點的概率,范圍為0~1。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_predicate_ar(time, number, 3, 1) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_ar(time, number, 3, 1, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_predicate_arma函數
使用移動自回歸模型對時序數據進行建模,并進行簡單的時序預測和異常點檢測。
語法
ts_predicate_arma(x, y, p, q, nPred, isSmooth)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| p | 自回歸模型的階數。 | long類型,取值范圍為2~8。 | 是 |
| q | 移動平均模型的階數 | long類型,取值范圍為2~8。 | 是 |
| nPred | 預測未來的點的數量。 | long類型,取值大于等于1 | 是 |
| isSmooth | 是否需要對原始數據做濾波操作。 | bool類型,默認為true表示對原始數據做濾波操作。 | 否 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的Unixtime時間戳 |
| value | 原始數據 |
| predict | 預測的數據 |
| upper | 預測的上界 |
| lower | 預測的下界 |
| prob | 該點為異常點的概率,范圍為0~1。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_predicate_arma(time, number, 3, 2, 1) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_arma(time, number, 3, 2, 1, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_predicate_arima函數
使用帶有差分的移動自回歸模型對時序數據進行建模,并進行簡單的時序預測和異常點檢測。
語法
ts_predicate_arima(x, y, p, d, q, nPred, isSmooth)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| p | 自回歸模型的階數。 | long類型,取值范圍為2~8。 | 是 |
| d | 差分模型的階數。 | long類型,取值范圍為1~3。 | 是 |
| q | 移動平均模型的階數 | long類型,取值范圍為2~8。 | 是 |
| nPred | 預測未來的點的數量。 | long類型,取值大于等于1 | 是 |
| isSmooth | 是否需要對原始數據做濾波操作。 | bool類型,默認為true表示對原始數據做濾波操作。 | 否 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的Unixtime時間戳 |
| value | 原始數據 |
| predict | 預測的數據 |
| upper | 預測的上界 |
| lower | 預測的下界 |
| prob | 該點為異常點的概率,范圍為0~1。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_predicate_arima(time, number, 3, 2, 2, 1) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_arima(time, number, 3, 2, 2, 1, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_density_cluster函數
使用密度聚類方法對多條時序數據進行聚類。
語法
ts_density_cluster(x, y, z)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| z | 某個時刻數據對應的曲線名稱。 | 字符串類型 | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| clusterId | 聚類的類別,其中-1表示未能劃分到某一聚類中心 |
| rate | 該聚類中的instance占比。 |
| timeSeries | 該聚類中心的時間戳序列。 |
| dataSeries | 該聚類中心的數據序列。 |
| instanceNames | 該聚類中心包含的instance的集合。 |
| simInstance | 該類中的某一個instance名稱。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_density_cluster(time, number, 'test') from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_hierarchical_cluster函數
使用層次聚類方法對多條時序數據進行聚類。
語法
ts_hierarchical_cluster(x, y, z)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| z | 某個時刻數據對應的曲線名稱。 | 字符串類型 | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| clusterId | 聚類的類別,其中-1表示未能劃分到某一聚類中心 |
| rate | 該聚類中的instance占比。 |
| timeSeries | 該聚類中心的時間戳序列。 |
| dataSeries | 該聚類中心的數據序列。 |
| instanceNames | 該聚類中心包含的instance的集合。 |
| simInstance | 該類中的某一個instance名稱。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_hierarchical_cluster(time, number, __message__) from (select __ts__ as time, text-date1 as number, __message__ from log limit 100) |
| 返回結果 |
ts_smooth_simple函數
默認平滑函數,使用Holt-Winters算法對時序數據進行濾波操作。
語法
ts_smooth_simple(x, y)
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的時間戳 |
| src | 濾波前的數據。 |
| filter | 濾波后的數據。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_smooth_simple(time, number) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_smooth_fir函數
使用FIR濾波器對時序數據進行濾波操作。
語法
ts_smooth_fir(x, y,winType,winSize)
ts_smooth_fir(x, y,array())
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| winType | 濾波的窗口類型。 | 取值包括: rectangle:矩形窗口。 hanning:漢寧窗。 hamming:漢明窗。 blackman:布萊克曼窗。 | 是 |
| winSize | 濾波窗口的長度。 | long類型,取值范圍為2~15。 | |
| array() | FIR濾波的具體參數。 | 格式為數組 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的時間戳 |
| src | 濾波前的數據。 |
| filter | 濾波后的數據。
|
示例
類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_smooth_fir(time, number, 'rectangle', 2) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_smooth_fir(time, number, array(0.2,0.3,0.5)) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |
ts_smooth_iir函數
使用IIR濾波器對時序數據進行濾波操作。
語法
ts_smooth_iir(x, y, array(), array() )
參數說明
| 參數名稱 | 說明 | 類型 | 是否必選 |
|---|---|---|---|
| x | 時間列,從小到大排列。 | 格式為Unixtime時間戳 | 是 |
| y | 數值列,對應某時刻的數據。 | 數值類型 | 是 |
| array() | IIR濾波算法中關于x的具體參數。 | 數組格式 | 是 |
| array() | IIR濾波算法中關于y的具體參數 | 數組格式 | 是 |
返回值類型
| 顯示項 | 說明 |
|---|---|
| ts | 數據的時間戳 |
| src | 濾波前的數據。 |
| filter | 濾波后的數據。 |
示例
| 類型 | 示例 |
|---|---|
| 統計分析語句 | * | select ts_smooth_iir(time, number, array(0.2,0.3,0.5), array(0.2,0.3,0.5)) from (select __ts__ as time, text-date1 as number from log limit 100) |
| 返回結果 |