17.6.8 異常の推測
トレーニングされたモデルを使用すると、次のコードで示すように、表示されないノードの異常スコアまたはラベルを推測してそれらをデータベースに格納できます。
opg4j> var vertexScores = model.inferAnomalyScores(fullGraph, fullGraph.getVertices()).flattenAll()
opg4j> vertexScores.write().
db().
name("vertex scores").
tablename("vertexScores").
overwrite(true).
store()
PgxFrame vertexScores = model.inferAnomalyScores(fullGraph,fullGraph.getVertices()).flattenAll();
vertexScores.write()
.db()
.name("vertex scores")
.tablename("vertexScores")
.overwrite(true)
.store();
vertex_scores = model.infer_anomaly_scores(full_Graph,full_Graph.get_vertices()).flatten_all()
vertex_scores.write().db().table_name("table_name").name("vertex_scores").overwrite(True).store()
データの汚染要因がわかっている場合は、それを使用して適切なしきい値を探すことができます。
opg4j> var vertexLabels = model.inferAnomalyScores(fullGraph, fullGraph.getVertices()).flattenAll()
opg4j> vertexLabels.write().
db().
name("vertex labels").
tablename("vertexLabels").
overwrite(true).
store()
PgxFrame vertexLabels = model.inferAnomalyScores(fullGraph,fullGraph.getVertices()).flattenAll();
vertexLabels.write()
.db()
.name("vertex labels")
.tablename("vertexLabels")
.overwrite(true)
.store();
vertex_labels = model.infer_anomaly_scores(full_Graph,full_Graph.get_vertices()).flatten_all()
vertex_labels.write().db().table_name("table_name").name("vertex_labels").overwrite(True).store()
前述のすべての例では、現在ログインしているデータベースでモデルの異常を推測することを前提としています。別のデータベースで異常を推測する必要がある場合は、username
、password
、jdbcUrl
などのデータベース資格証明をinferAnomalyScores
メソッドにさらに指定する必要があります。
opg4j> vertexScores.write().
db().
name("vertex scores").
tablename("vertexScores").
username("user").
password("password").
jdbcUrl("jdbcUrl").
overwrite(true).
store()
vertexScores.write()
.db()
.name("vertex scores")
.tablename("vertexScores")
.username("user")
.password("password")
.jdbcUrl("jdbcUrl")
.overwrite(true)
.store();
vertex_scores.write().db().table_name("table_name") \
.name("vertex scores") \
.username("user") \
.password("password") \
.jdbc_url("jdbc_url") \
.overwrite(True) \
.store()