17.2.8 Supervised GraphWiseモデルのトレーニング

次のコードに示すように、グラフのSupervised GraphWiseモデルをトレーニングできます。

opg4j> model.fit(trainGraph)
model.fit(trainGraph);
model.fit(train_graph)

トレーニングに検証ステップを追加することもできます。モデルをトレーニングするときに、最適なトレーニング・エポック数は事前に知ることはできません。これはモデルの品質を決定する主要なパラメータの1つです。トレーニングおよび検証の損失を監視できるようになることは、モデル・パラメータの適切な値の見極めと、トレーニング・プロセスの可視化に役立ちます。エポックまたはステップの評価頻度を指定できます。検証ステップを構成するには、次のようにGraphWiseValidationConfigを作成し、モデル・ビルダーに渡します:

opg4j> import oracle.pgx.config.mllib.EvaluationFrequencyScale;

opg4j> var validationConfig = analyst.graphWiseValidationConfigBuilder().
         setEvaluationFrequency(2).                                    // set the evaluation frequency (default: 1)
         setEvaluationFrequencyScale(EvaluationFrequencyScale.EPOCH).  // available options: EPOCH, STEP (default: EPOCH)
         build()
opg4j> var model = analyst.supervisedGraphWiseModelBuilder().
         setVertexInputPropertyNames("features").
         setVertexTargetPropertyName("labels").
         setValidationConfig(validationConfig).                       // configuring the validation to be executed every 2 epochs
         build()
import oracle.pgx.config.mllib.GraphWiseValidationConfig;
import oracle.pgx.config.mllib.EvaluationFrequencyScale;

GraphWiseValidationConfig validationConfig = analyst.graphWiseValidationConfigBuilder()
    .setEvaluationFrequency(2)                                    // set the evaluation frequency (default: 1)
    .setEvaluationFrequencyScale(EvaluationFrequencyScale.EPOCH)  // available options: EPOCH, STEP (default: EPOCH)
    .build();

SupervisedGraphWiseModel model = analyst.supervisedGraphWiseModelBuilder()
    .setVertexInputPropertyNames("features")
    .setVertexTargetPropertyName("labels")
    .setValidationConfig(validationConfig)  // configuring the validation to be executed every 2 epochs
    .build();
validation_config = analyst.graphwise_validation_config(
    evaluation_frequency=2,              # set the evaluation frequency (default: 1)
    evaluation_frequency_scale="epoch",  # available options: "epoch", "step" (default: "epoch")
)

params = dict(vertex_target_property_name="labels"
              vertex_input_property_names=["features"],
              validation_config=validation_config,  # configuring the validation to be executed every 2 epochs
              seed=17)

model = analyst.supervised_graphwise_builder(**params)

検証ステップを構成した後、検証用のグラフをトレーニング用のグラフとともにfitメソッドに渡すことができます:

opg4j> model.fit(trainGraph, valGraph)
model.fit(trainGraph,valGraph);
model.fit(train_graph,valGraph)