記事「機械学習や取引におけるメタモデル:取引注文のオリジナルタイミング」についてのディスカッション - ページ 13

 
Maxim Dmitrievsky #:
x[0]は0クラスの確率で、モデルは2クラスの確率を与える。つまり、ヌル・クラスの確率が0.5より小さければ、そのクラスが最初に予測されます。したがって、True == 1 となり、その逆も同様です。したがって、エラーはありません。

確率は0から1まで あり 、0.5以上なら「1」、そうでなければ「0」が二値分類のデフォルトだ。翻訳者の訳が変ですが:
"

  • 1つのオブジェクトは、各クラスの確率を持つ1次元のnumpy.ndarrayです。

"

しかし、それではどうやってクラス "1 "の確率を求めるのでしょうか?一次元の配列の中に、各クラスの確率が別々に存在するわけがない。

 
Maxim Dmitrievsky #:
あなたのデータセットでは、ラベルが逆さまになっているのかもしれない。

"1 "は正しい取引/利益/良い。逆であるべきだろうか?

削除済み  
Aleksey Vyazmikin #:

"1 "は正しい取引/利益/良い。そうでなければいけないのか?

そうではなく、あなたのデータセットにおける売り買いのことです。何が「0」で何が「1」なのか。買いか売りか。
削除済み  
Aleksey Vyazmikin #:

ふむ、私はバイナリ分類のデフォルトで、0から1、0.5以上 - "1"、それ以外の "0 "に する ことができます そのような確率について聞いたことがない。翻訳者が奇妙に翻訳していますが:
"

  • 1つのオブジェクトは、各クラスの確率を持つ1次元のnumpy.ndarrayです。

"

しかし、クラス "1 "の確率はどうやって求めるのでしょうか?一次元の配列の中に、各クラスの確率が別々に存在するわけがない。

クラス0の確率<0.5なら、クラス1が予測される。このコードは、テスターのために確率をクラス・ラベルに変換しているだけです。そこでは何も問題ない。
 
Maxim Dmitrievsky #:
そうではなく、あなたのデータセットにおける売りと買いのことです。買いか売りか。

財務結果にはすでにマークアップがある。クローズ・カラムには取引結果を書く。つまり、トレーニングでは、買いか売りかは重要ではないのだ。

Maxim Dmitrievsky#:
クラス0の確率が0.5未満なら、クラス1が予測される。このコードは単に確率をテスターのクラスラベルに変換しているだけです。そこでは何も問題ありません。

こだわっているようには思いたくないが、それでも3つの選択肢がある。
1.
2. あなたのコードを理解していない。
3.0.5未満の確率を "1 "と仮定するのは間違っている。

削除済み  
Aleksey Vyazmikin #:

そこでは、マークアップはすでに財務結果に基づいている。クローズ欄には取引の結果を記入した。つまり、トレーニングでは売買は重要ではないのだ。

押しつけがましいことはしたくないが、それでも3つの選択肢がある。
1.評価されるのはCatBoostクラス「1」の確率だと思い込んで、ずっと間違ったやり方をしてきた。
2. あなたのコードを理解していない。
3.0.5未満の確率を「1」として分類すべきであると仮定している点で間違っています。

終値の列は終値であるべきです。

確率の合計は常に1に等しい。あるクラスの確率が0.5より小さい場合、別のクラスが予測される。

 
Maxim Dmitrievsky #:

終値の欄は終値であるべきだ。

添付したコードを見てください。そちらの方がわかりやすいかもしれません。私はすべてのバーに分類を持っていません。

マキシム-ドミトリエフスキー#:

合計確率は常に1に等しい。いずれかのクラスの確率が0.5より小さい場合、別のクラスが予測される。

このコードでは、確率が0.4の場合、クラス "1 "が得られます。なぜですか?

削除済み  
Aleksey Vyazmikin #:

添付したコードを見てください。より明確になるかもしれません。すべてのバーで分類しているわけではありません。

このコードでは、0.4の確率でクラスが「1」になります。なぜですか?

zipで圧縮したデータセットを入手できますか?

クラス1の確率が0.6だからです。

一般的に、そのアルゴリズムは、そこで行われている通りにデータを受け入れるはずです。
 
Maxim Dmitrievsky #:

zip圧縮されたデータセットを入手できますか? rarは持っていません。

ダウンロードはできます。mac用のコマンドラインサポートはありますが...。

Maxim Dmitrievsky#:
クラス1の確率は0.6だから。
predict_proba p
[[0.74864123 0.25135877]
 [0.81097595 0.18902405]
 [0.81477042 0.18522958]
 ...
 [0.83347862 0.16652138]
 [0.84273186 0.15726814]
 [0.84617344 0.15382656]]

私はそれを印刷するまで理解できませんでした - この点でコンソールバージョンに違いがあります。

そして、マークアップのロジックを残して、フリップのコードをコメントアウトした。

#//-------以前に反転させたマークを元に戻す 
            #if  pred_meta>0.5:pred_meta=0
            #else :pred_meta=1
            #if  pred>0.5:pred=0
            #else :pred=1

#//-------仕切り直しをして、残高を数える。
            if pred_meta==1:#Мета  модель детектировала примеры как класс "1"
                if pred < 0.5 and Target_100<0.0:
                    meta_labels[i] = 1 
                if pred < 0.5 and Target_100>0.0:
                    meta_labels[i] = 0 
                if pred >= 0.5 and Target_100>0.0:
                    meta_labels[i] = 1
                    report.append(report[-1]+Target_100)
                if pred >= 0.5 and Target_100<0.0:
                    meta_labels[i] = 0
                    report.append(report[-1]+Target_100)
            if pred_meta==0:#Мета  модель детектировала примеры как класс "0"
                if pred < 0.5 and Target_100<0.0:
                    meta_labels[i] = 1 
                if pred < 0.5 and Target_100>0.0:
                    meta_labels[i] = 0 
                if pred >= 0.5 and Target_100>0.0:
                    meta_labels[i] = 1                    
                if pred >= 0.5 and Target_100<0.0:
                    meta_labels[i] = 0
 
Maxim Dmitrievsky #:
zip圧縮されたデータセットの提供は可能ですか?

リンク