17.4.6 Unsupervised GraphWiseモデルのトレーニング

次のように、グラフでUnsupervised 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(100).                                  // set the evaluation frequency (default: 1)
         setEvaluationFrequencyScale(EvaluationFrequencyScale.STEP).   // available options: EPOCH, STEP (default: EPOCH)
         build()
opg4j> var model = analyst.unsupervisedGraphWiseModelBuilder().
         setVertexInputPropertyNames("vertex_features").
         setValidationConfig(validationConfig).          // configuring the validation to be executed every 100 steps
         build()
import oracle.pgx.config.mllib.GraphWiseValidationConfig;
import oracle.pgx.config.mllib.EvaluationFrequencyScale;

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

UnsupervisedGraphWiseModel model = analyst.unsupervisedGraphWiseModelBuilder()
    .setVertexInputPropertyNames("vertex_features")
    .setValidationConfig(validationConfig)  // configuring the validation to be executed every 100 steps
    .build();
validation_config = analyst.graphwise_validation_config(
    evaluation_frequency=100,           # set the evaluation frequency (default: 1)
    evaluation_frequency_scale="step",  # available options: "epoch", "step" (default: "epoch")
)

params = dict(vertex_input_property_names=["vertex_features"],
              validation_config=validation_config,  # configuring the validation to be executed every 100 steps
              seed=17)

model = analyst.unsupervised_graphwise_builder(**params)

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

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