如图,机器学习PAI这个结果怎么不对?
import com.alibaba.alink.operator.stream.StreamOperator;
import com.alibaba.alink.operator.stream.outlier.KSigmaOutlierStreamOp;
import com.alibaba.alink.operator.stream.source.MemSourceStreamOp;
//import com.alibaba.alink.testutil.AlinkTestBase;
import org.apache.flink.types.Row;
import org.junit.Test;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.List;
//public class KSigmaOutlierStreamOpTest extends AlinkTestBase {
public class KSigmaOutlierStreamOpTest {
@Test
public void test() throws Exception {
List mTableData = Arrays.asList(
Row.of(1, new Timestamp(1000), 0.0),
Row.of(1, new Timestamp(2000), 0.0),
Row.of(1, new Timestamp(3000), 0.0),
Row.of(1, new Timestamp(4000), 0.0),
Row.of(1, new Timestamp(5000), 0.0),
Row.of(1, new Timestamp(6000), 0.0),
Row.of(1, new Timestamp(7000), 0.0),
Row.of(1, new Timestamp(8000), 0.0),
Row.of(1, new Timestamp(9000), 0.0),
Row.of(1, new Timestamp(10000), 10000.0)
);
MemSourceStreamOp dataOp = new MemSourceStreamOp(mTableData, new String[] {"id", "ts", "val"});
KSigmaOutlierStreamOp outlierOp = new KSigmaOutlierStreamOp()
.setGroupCols("id")
.setTimeCol("ts")
.setPrecedingRows(2)
.setFeatureCol("val")
.setPredictionCol("pred")
.setPredictionDetailCol("pred_detail");
dataOp.link(outlierOp).print();
StreamOperator.execute();
}
}
AlinkTestBase这个找不到,我就屏蔽了测试一下,然后发现结果好像不对。再就是把label那一列删掉了
AlinkTestBase是加速ut的,不会影响结果 这个数据前面都是0,导致zscore是nan, 这个没检测出来。这个我们后面fix下 。可以将PrecedingRows设置大一些 , 现在设置的是2,也就是连续三条数据判断最后一条是不是异常,窗口里数据太少了。—此回答来自钉群“Alink开源--用户群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。