予測アルゴリズム

Predictor algorithms

Predictorクラスは、Nステップ先の予測を行います。内部的には、このクラスは Classifiers を使用して SDR を未来の値に関連付けます。このクラスは、データポイントの欠落を処理します。

python3
sequence = [ SDR( 1000 ).randomize( 0.02 ) for i in range(4) ]

labels = [ 4, 5, 6, 7 ]

pred = Predictor([ 1, 2 ])
pred.learn( 0, sequence[0], labels[0] )
pred.learn( 1, sequence[1], labels[1] )
pred.learn( 2, sequence[2], labels[2] )
pred.learn( 3, sequence[3], labels[3] )
pred.reset()

A = pred.infer( sequence[0] )
numpy.argmax( A[1] )  ->  labels[1]
numpy.argmax( A[2] )  ->  labels[2]

B = pred.infer( sequence[1] )
numpy.argmax( B[1] )  ->  labels[2]
numpy.argmax( B[2] )  ->  labels[3]

互換性に関する注意: このクラスは、古い SDRClassifier の代替クラスです。実際の値の推定値は提供されなくなりました。

引数の steps は、学習して予測する未来へのステップ数です。 Predictorはステップのリストを受け取ります。

引数 alpha は、学習中に重み行列を適応させるために使用されます。alphaを大きくすると、データへの適応が速くなります。

サンプルA(ラベル"4"のシーケンスを入力したときの予測)を可視化してみます。

図5-3

次のステップのラベルが"5"、その次のラベルが"6"であることを尤度(ゆうど)でしめしています。

続いてサンプルB(ラベル"5"のシーケンスを入力したときの予測)を可視化してみます。

図5-4

次のステップのラベルが"6"、その次のラベルが"7"であることを尤度(ゆうど)でしめしています。

メソッド

  • Predictor.infer(...):尤度(ユウド/likelihoods)を計算する。引数パターンは、アクティブな入力ビットを含むSDRである。キーが予測ステップ、値がPDFであるディクショナリを返します。PDFについての詳細は、help(Classifier.infer)を参照してください。

  • Predictor.learn(...) :事例データから学ぶ。引数 recordNum は各レコードのインクリメント整数です。 数字の空白はレコードの欠落に対応します。 引数 pattern は、アクティブな入力ビットを含む SDR です。 引数 classification は、現在のカテゴリまたはバケットインデックスです。 入力に複数のカテゴリがある場合は、リストにすることもできる。

  • Predictor.reset(...) :時系列データセットで使用します。

最終更新