0

我正在尝试复制 WSO2 流处理器文档中给出的“检测异常”教程。

@App:name('SugarSyrupOutlierPredictionApp')

@source(type='http', receiver.url='http://localhost:5007/SugarSyrupEP', @map(type = 'json'))
define stream SugarSyrupDataStream (viscosity double, temperature double, density double);

@sink(type='log', prefix='Outlier detected in sugar syrup supply:')
define stream OutlierStream (viscosity double, temperature double, density double, outlier bool);

from SugarSyrupDataStream#timeseries:outlier(5, viscosity, temperature, density)
select *
insert into OutlierStream;

我在调用异常值函数时遇到的错误是这样的。

Caused by: org.wso2.siddhi.core.exception.SiddhiAppCreationException: Outlier Function is available only for simple linear regression at org.wso2.extension.siddhi.execution.timeseries.LinearRegressionOutlierStreamProcessor.init(LinearRegressionOutlierStreamProcessor.java:221)

我在这里遗漏了什么还是应该使用其他功能?

4

1 回答 1

2

似乎扩展只接受 3 个参数。请参阅siddhi-execution-timeseries 文档#outlier

您需要更新教程示例以将范围 Y 和 X 作为异常值扩展的参数。这是因为扩展只支持简单的线性回归。

@App:name('SugarSyrupOutlierPredictionApp')

@source(type='http', receiver.url='http://localhost:5007/SugarSyrupEP', @map(type = 'json'))
define stream SugarSyrupDataStream (viscosity double, temperature double, density double);

@sink(type='log', prefix='Outlier detected in sugar syrup supply:')
define stream OutlierStream (viscosity double, temperature double, outlier bool);

from SugarSyrupDataStream#timeseries:outlier(5, viscosity, temperature)
select viscosity, temperature, outlier
insert into OutlierStream;
于 2019-04-23T17:22:20.790 回答