Discusión sobre el artículo "Metamodelos en el aprendizaje automático y el trading: Timing original de las órdenes comerciales" - página 12

[Eliminado]  
Aleksey Vyazmikin #:

¿Y cómo puede compararse un valor idex (0,1,2) con una fecha de calendario?

No se comparan, sólo hay que poner la columna de hora como índice, y 0,1,2 no es necesario para nada

prueba lo resaltado en tu código

def get_prices() -> pd.DataFrame:
    p = pd.read_csv('files/EURUSD_H1.csv', delim_whitespace=True)
    pFixed = pd.DataFrame(columns=['time', 'close'])
    pFixed['time'] = p['<DATE>'] + ' ' + p['<TIME>']
    pFixed['time'] = pd.to_datetime(pFixed['time'], format='mixed')
    pFixed['close'] = p['<CLOSE>']
    pFixed.set_index('time', inplace=True)
    pFixed.index = pd.to_datetime(pFixed.index, unit='s')
    pFixed = pFixed.dropna()
    pFixedC = pFixed.copy()

    count = 0
    for i in PERIODS:
        pFixed[str(count)] = pFixedC.rolling(i).mean() - pFixedC
        count += 1

    return pFixed.dropna()
 
Maxim Dmitrievsky #:

No se comparan, sólo la columna de tiempo se debe establecer en el índice, y 0,1,2 no es necesario en absoluto

prueba lo resaltado en tu código

En general, ya he perdido mucho tiempo. Adaptación para los datos de un archivo no tuvo éxito.

Al parecer, es más fácil volver a escribir desde cero.

Los datos desaparecen en algún lugar después de marcado en la segunda iteración - No sé si es algún tipo de problema con el libro.

Уникальные значения в train_y (meta model): [0.]
Traceback (most recent call last):
  File "F:/FX/Python/meta_modeling_Viborka.py", line 504, in <module>
    res.append(brute_force(pr[pr.columns[1:]], bad_samples_fraction=0.5))
  File "F:/FX/Python/meta_modeling_Viborka.py", line 265, in brute_force
    meta_model.fit(train_X, train_y, eval_set=(test_X, test_y),
  File "C:\Program Files\Python38\lib\site-packages\catboost\core.py", line 5100, in fit
    self._fit(X, y, cat_features, text_features, embedding_features, None, sample_weight, None, None, None, None, baseline, use_best_model,
  File "C:\Program Files\Python38\lib\site-packages\catboost\core.py", line 2319, in _fit
    self._train(
  File "C:\Program Files\Python38\lib\site-packages\catboost\core.py", line 1723, in _train
    self._object._train(train_pool, test_pool, params, allow_clear_pool, init_model._object if init_model else None)
  File "_catboost.pyx", line 4645, in _catboost._CatBoost._train
  File "_catboost.pyx", line 4694, in _catboost._CatBoost._train
_catboost.CatBoostError: C:/Go_Agent/pipelines/BuildMaster/catboost.git/catboost/private/libs/target/target_converter.cpp:375: Target contains only one unique value
>>> 
Archivos adjuntos:
 

Básicamente, sí, hay una reducción a cero pasando aquí

    # mark bad labels from bad_samples_book
    if BAD_SAMPLES_BOOK.value_counts().max() > 1:
        to_mark = BAD_SAMPLES_BOOK.value_counts()
        mean = to_mark.mean()
        marked_idx = to_mark[to_mark > mean*bad_samples_fraction].index
        pr2.loc[pr2.index.isin(marked_idx), 'meta_labels'] = 0.0
    else:
        pr2.loc[pr2.index.isin(BAD_SAMPLES_BOOK), 'meta_labels'] = 0.0

¿No puedo entender cómo puedo obtener un valor mayor que uno después de la primera iteración?

En consecuencia, ya que no, todos los valores "
meta_labels
"se reducen a cero para mí.
[Eliminado]  
Aleksey Vyazmikin #:

Básicamente, sí, hay una reducción a cero pasando aquí

No entiendo cómo puedo obtener un valor mayor que uno después de la primera iteración.

En consecuencia, como no lo entiendo, todos los valores " " se ponen a cero para mí.

algo extraño está pasando. dame tiempo para concentrarme, lo resolveremos más tarde ) o envíame un trozo de tu conjunto de datos.

 
Maxim Dmitrievsky #:

algo extraño está pasando. dame tiempo para concentrarme, lo resolveremos más tarde ) o envíame una parte de tu conjunto de datos

Este es un borrador. Tuve que resolver problemas que no se le ocurrieron a usted, a saber, clases desequilibradas conduce a errores al dividir en submuestras.

Mientras cuenta - se puede dormir ...

Voy a tratar de subir la muestra más tarde.
Archivos adjuntos:
 
Maxim Dmitrievsky #:

Aquí tienes una muestra.

Aún así, creo que no entendí bien el marcado.

 
Maxim Dmitrievsky #:

¿Entiendo correctamente que el meta modelo clasifica los ejemplos con clase "1", y el segundo modelo ya está activado sólo en las unidades del primero?

Estoy confundido por tu código - lo que es clasificado por el modelo como una unidad se escribe como un cero. Si lo he entendido bien, por supuesto...

    p2 = [x[0] < 0.5 for x in p]
    p2_meta = [x[0] < 0.5 for x in p_meta]

En general, si he reconstruido correctamente el método, el resultado es el siguiente.

000

He añadido comprobaciones en el código - de lo contrario se bloquea con un error - adjunto.

¿Y entiendo que el análisis sintáctico del modelo no funciona, porque el código del modelo ha cambiado?

Archivos adjuntos:
[Eliminado]  
Aleksey Vyazmikin #:

¿Entiendo bien que el metamodelo clasifica los ejemplos con clase "1", y el segundo modelo se activa ya sólo sobre las unidades del primero?

Estoy confundido por tu código - lo que es clasificado por el modelo como una unidad se escribe como un cero. Si lo entiendo correctamente, por supuesto...

En general, si he restaurado correctamente el método, el resultado es el siguiente

He añadido comprobaciones en el código - de lo contrario falla con un error - adjunto.

¿Y entiendo que el parseo del modelo no funciona porque el código del modelo ha cambiado?

Ahí x[0] son probabilidades para la clase nula, pero el modelo da probabilidades para dos clases. Es decir, si la probabilidad de la clase nula es menor que 0,5, entonces se predice la clase primero. Entonces Verdadero == 1 y viceversa. Por lo tanto, no hay error.

Sí, hay cambios en la nueva versión de catbust, te enviaré los rediseños. Estoy un poco lejos de mi ordenador en este momento, intentaré ayudarte más tarde
 
Maxim Dmitrievsky #:
Sí, hay cambios en la nueva versión de la catbusta, voy a descontar los rediseños. Un poco lejos de mi ordenador en este momento, voy a tratar de ayudar más tarde

Gracias.

[Eliminado]  
Aleksey Vyazmikin #:

Gracias.

Tal vez en su conjunto de datos las etiquetas están al revés