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

 
Maxim Dmitrievsky #:
おそらく、属性とラベルは関数を通して自動的に作られるという意味だろう。

おそらく。

Maxim Dmitrievsky#:
新しいデータに適用するときは、すでに訓練されたモデルが使われるので、何も削除する必要はありません。

そして、トレーニングの開始を初期化するとき、なぜそれを削除するのですか?最初に一度マークアップして、すぐにまたマークアップする......。この点が理解できない。

Maxim Dmitrievsky#:
もし同じにしたいのであれば、最小取引時間と最大取引時間を同じにし、最小=最大
にする。
正しいやり方がわかっていればいいのですが、正しいやり方がわからないのです......。

どんな自動分割関数でも代用できます。これがこのアプローチの柔軟性です。

いや、私はただ自分のサンプリングを試してみたいだけなんだ。そのためには、そこで何を取り除く必要があるのかを理解する必要がある。

削除済み  
Aleksey Vyazmikin #:

おそらくね。

そしてトレーニングの開始を初期化する際、なぜそれを削除するのでしょうか?最初に一度マークアップをして、またすぐにマークアップをする......。この点が理解できない。

いや、僕はただサンプリングを試したいだけで、そのためにはそこで何を取り除く必要があるのかを理解する必要があるんだ。

その点を飛ばしてサンプリングを使うことはできる、そうだ。いろいろなオプションを試してみたんだ。仕切り直しは、トレード/トレードなしのラベルを洗練させるために行ったんだ。
削除済み  
H.Y.もし興味があれば、より「明確」でシンプルなリアライゼーションの他のバリエーションを展開することもできる。なぜなら、これは少し理解しにくいからだ。ここには多くの仮定があり、混乱する可能性があります。

もしそのような動きがあるのなら、ONNXへのコンバートを含むバリエーションも......。というのも、そうすれば、この構築のすべてを、興味深いカスタム・アーキテクチャを持つ1つのニューラルネットワークに置き換えることができ、それを簡単に端末に転送することができるからだ。
 
Maxim Dmitrievsky #:
H.Y.もし興味があれば、もっと "明確で "シンプルなリアライゼーションの他のバリエーションを展開することもできる。なぜなら、これは少し理解しにくいからだ。ここには多くの仮定があり、混乱する可能性があります。

もしそのような動きがあるのなら、ONNXへのコンバートを含むバリエーションも......。そうすれば、興味深いカスタム・アーキテクチャを持つ1つのニューラルネットワークで、この構築をすべて置き換えることができ、簡単に端末に転送できるからだ。
マキシム、時間があったらすぐに、ONNXに変換したモデルを発表してください。このようなモデルはすべて、トレインでも消耗しているのですが、何が問題なのか理解できません(
 
Maxim Dmitrievsky #:
H.Y.もし興味があれば、もっと "明確で "シンプルなリアライゼーションの他のバリエーションを展開することもできる。なぜなら、これは少し理解しにくいからです。たくさんの仮定があり、混乱するかもしれない。

もしそのような動きがあるのなら、ONNXに変換したバリエーションも含めて......。なぜなら、そうすれば、このすべての構築を、興味深いカスタム・アーキテクチャを持つ1つのニューラルネットワークに置き換えることができ、それを簡単に端末に転送することができるからです。

私はまだpythonのコードをよく理解していないので、どんなコード例にも興味があります。

削除済み  
Aleksey Vyazmikin #:

私はまだpythonのコードをよく理解していないので、説明の少ないコードサンプルに興味があります。

Pythonはとても簡単です。文字通り、"Python for Complex Problems"(複雑な問題のためのPython)という本が数冊あり、numpy、pandas、sklearnのような基本的なパッケージの使い方をカバーしています。そしてMark Lutz - Learning Python, Volume 1。2冊目はクラスについてで、あまり必要ない。
 
Maxim Dmitrievsky #:
Pythonはとてもシンプルだ。文字通り "Python for Complex Problems "の本が数冊あり、numpy、pandas、sklearnのような基本的なパッケージの使い方をカバーしている。そしてMark Lutz - Learning Python, Volume 1。2冊目はクラスについてで、あまり必要ない。

推薦ありがとう。Pythonは簡単かもしれませんが、私の記憶力は悪くなっているので、新しいことを学ぶのは難しいです。

2つのターゲットでサンプルを作成した後、列は "close "ですか?

 

一般的に、私はcsvファイルに以下の形式のデータを持っています。

  • 「2010.01.04.07:24:00 "という形式の日付の列。
  • 「Target_P 列 -取引の方向に関する 情報が含まれています。
  • " Column Target_100 - ターゲットを含 む "+ "Column Target_100- ターゲ ットを含む "+ "ColumnTarget_100 - ターゲットを含む
  • " カラム Target_100_Buy- 購入時の財務結果が格納される
  • " Column Target_100_Sell-ターゲットが 含まれる。 - には売却時の財務結果が入る

従って、私は以下のコードを通して、記事で説明されているように見えるようにする。

# Загрузите данные из файлов
Load_train_data = pd.read_csv('E:\\FX\\MT5_CB\\MQL5\\Files\\Catboost_Tester_M02_104_SMO\\Setup\\train.csv',sep=';')

# Сохранили предикторы
train_data = Load_train_data.loc[:, :'iVolumes_B0_S15_D1']

# Сохранили значения целевой
train_labels = Load_train_data['Target_100']

# Преобразование столбца 'Time' в формат datetime
Load_train_data['Time'] = pd.to_datetime(Load_train_data['Time'], format='%Y.%m.%d %H:%M:%S')

# Преобразование обратно в строку с нужным форматом
#Load_train_data['Time'] = Load_train_data['Time'].dt.strftime('%Y-%m-%d %H:%M:%S')

# Сохранили значение столбца
train_taime  = Load_train_data['Time']

# Вывод результата
print(train_taime)

# Создали новый DataFrame объединением столбцов
combined_data = pd.concat([train_taime, train_data, train_labels], axis=1)


# Добавили новый столбец "close" после "train_taime" со значениями "1.1"
combined_data.insert(combined_data.columns.get_loc('Time') + 1, 'close', 1.1)

# Переименовали столбец "Target_100" в "labels"
combined_data.rename(columns={'Target_100': 'labels'}, inplace=True)

# Добавили столбец с данными из train_labels
combined_data['meta_labels'] = train_labels

pr = combined_data

# Вывод результата
print(combined_data)

このように表示される。

0        2010-01-04 07:24:00
1        2010-01-04 21:02:00
2        2010-01-04 21:14:00
3        2010-01-04 21:56:00
4        2010-01-04 23:08:00
                ...         
28193    2018-03-12 01:18:00
28194    2018-03-12 02:52:00
28195    2018-03-12 03:08:00
28196    2018-03-12 03:38:00
28197    2018-03-12 08:32:00
Name: Time, Length: 28198, dtype: object
                      Time  close  ...  labels  meta_labels
0      2010-01-04 07:24:00    1.1  ...       0            0
1      2010-01-04 21:02:00    1.1  ...       0            0
2      2010-01-04 21:14:00    1.1  ...       0            0
3      2010-01-04 21:56:00    1.1  ...       0            0
4      2010-01-04 23:08:00    1.1  ...       0            0
...                    ...    ...  ...     ...          ...
28193  2018-03-12 01:18:00    1.1  ...       0            0
28194  2018-03-12 02:52:00    1.1  ...       0            0
28195  2018-03-12 03:08:00    1.1  ...       0            0
28196  2018-03-12 03:38:00    1.1  ...       1            1
28197  2018-03-12 08:32:00    1.1  ...       0            0

[28198 rows x 2412 columns]

次に、あなたの年の関数をコメントする

# make dataset
#pr = get_prices()
#pr = labelling_relabeling(pr, relabeling=False)
#a, b = tester(pr, MARKUP, use_meta=False, plot=False)
#pr['meta_labels'] = b
#pr = pr.dropna()
#pr = labelling_relabeling(pr, relabeling=True)

エラーが出る

Traceback (most recent call last):
  File "F:/FX/Python/meta_modeling_Viborka.py", line 386, in <module>
    res.append(brute_force(pr[pr.columns[1:]], bad_samples_fraction=0.5))
  File "F:/FX/Python/meta_modeling_Viborka.py", line 128, in brute_force
    X = X[X.index >= START_DATE]
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\ops\common.py", line 81, in new_method
    return method(self, other)
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\arraylike.py", line 60, in __ge__
    return self._cmp_method(other, operator.ge)
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\indexes\range.py", line 964, in _cmp_method
    return super()._cmp_method(other, op)
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\indexes\base.py", line 6783, in _cmp_method
    result = ops.comparison_op(self._values, other, op)
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\ops\array_ops.py", line 296, in comparison_op
    res_values = _na_arithmetic_op(lvalues, rvalues, op, is_cmp=True)
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\ops\array_ops.py", line 171, in _na_arithmetic_op
    result = func(left, right)
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\computation\expressions.py", line 239, in evaluate
    return _evaluate(op, op_str, a, b)  # type: ignore[misc]
  File "C:\Program Files\Python38\lib\site-packages\pandas\core\computation\expressions.py", line 70, in _evaluate_standard
    return op(a, b)
TypeError: '>=' not supported between instances of 'int' and 'datetime.datetime'
>>> 

テストしたいのですが、できません :(

削除済み  
Aleksey Vyazmikin #:
TypeError: '>=' が 'int' と 'datetime.datetime' のインスタンス間でサポートされていません。

最初に気づいたのは、データフレームのインデックスが間違っているということです。

 
Maxim Dmitrievsky #:

最初に気づいたのは、データフレームのインデックスが間違っているということだ。

また、idex値(0,1,2)をカレンダーの日付とどのように比較できるのでしょうか?