記事「ONNXモデルをクラスでラップする」についてのディスカッション

 

新しい記事「ONNXモデルをクラスでラップする」はパブリッシュされました:

オブジェクト指向プログラミングは、読みやすく修正しやすい、よりコンパクトなコードの作成を可能にします。ここでは3つのONNXモデルの例を見てみましょう。

過半数の得票は、<総得票数>/2+1という式に従って計算されます。合計3票で、過半数は2票です。いわゆる「ハード投票」です。

テスト結果は同じ設定のままです。

ハード投票テスト結果

3つのモデルの仕事、すなわち、利益の出る取引と利益の出ない取引の数を別々に見てみましょう。モデル1 - 11:3、モデル2 - 6:1、モデル3 - 16:10です。

ハード投票で結果は改善されたようです(16:4)が、もちろん、フルレポートやテストチャートを見る必要があります。

作者: MetaQuotes

 
とても役に立つ記事です

ONNXのバージョンは1.13.0ですか、それとも1.14.0ですか?
 

これは本当に興味深い。

記事に添付したMLファイルONNX.eurusd.D1.30.class.Training.pyの def collect_dataset() に以下の行があります(48行目~59行目):

    for i in tqdm(range(n - sample_size)):
        w = df.iloc[i: i + sample_size + 1]
        x = w[['close', 'ma_fast', 'ma_slow']].iloc[:-1].values

        delta = x[0][-1] - w.iloc[-1]['close']
        if np.abs(delta)<=0.0001:
           y = 0, 1, 0
        else:
           if delta>0:
              y = 1, 0, 0
           else:
              y = 0, 0, 1

上記のハイライトされた行の背後にあるロジックを教えてください。

分類は最初のサンプルの'ma_slow'(x[0][-1])と新しいターゲットの'close'(w.iloc[-1]['close'])の差に基づいています。さらに'sample_size-1'の時間差がある。

さらに

if delta>0:
              y = 1, 0, 0

これはy = 0,0,1 ではないのか?つまり売りシグナル だ。

同様に、ONNX.eurusd.D1.10.class.Training.pydef collect_dataset(), line45-47:

        x = w[['open', 'high', 'low', 'close']].iloc[:-1].values

        delta = x[3][-1] - w.iloc[-1]['close']
どのように?分類は、4つ目のサンプルの「終値」(x[3][-1])と新しいターゲットの「終値」(w.iloc[-1]['close'])の差に基づいています。
 
Xiaoyu Huang #:
とても役に立つ記事だ

ONNXのバージョンは1.13.0ですか、それとも1.14.0ですか?
情報が見つかりません。何か理由がありますか?