Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 2112

 
Aleksey Vyazmikin:

Por y es la partición de la cuadrícula, y por X la desviación en porcentaje de la suma del objetivo de cada clase en toda la muestra. El filtro es del 5%. Se puede ver que diferentes clases dominan en diferentes áreas, hay un cambio de espejo - entonces la mejora se debe a una clase particular (el histograma es menos), y a veces no lo es. Todo esto debería utilizarse en la formación, pero los métodos de formación estándar que conozco no lo tienen muy en cuenta. Puede ser más efectivo sobrepasar con la genética (más precisamente en la eliminación) - hay que hacerlo.

Supongamos que encuentra un buen quantum en el que el 65% de los ejemplos de primer grado.
La división se produce, por ejemplo, en el centro, deja dividir por este su quantum.

1)De la división en la rama izquierda todos los ejemplos de su quantum con el 65% de los ejemplos necesarios y de muchos más quanta que son más pequeños por valor de su quantum irán a la rama izquierda. Como resultado, no obtendrá el 65%, sino otro porcentaje, mucho menor debido a la dilución con ejemplos de otros cuantos.

2) En segundo lugar, si su quantum no es la primera división en el árbol, entonces todas las divisiones anteriores eliminaron aproximadamente el 50% de los ejemplos de la muestra. Y en el nivel 5 del árbol, quedarán 1/(2^5)=1/32 parte de los ejemplos de su cuanto, que se mezclarán con los mismos cuantos adelgazados que en el primer caso. Es decir, es poco probable que el 65% de los ejemplos permanezcan en la hoja como resultado de la formación.

La única opción es marcar las columnas como características categóricas después de la cuantificación - entonces si es la primera división en el árbol, todo el 65% de los ejemplos irán a la rama izquierda sin mezclarse con otros cuantos. Si no es la primera división en el árbol - entonces de nuevo tenemos el adelgazamiento por las divisiones superiores.

 
elibrarius:

Suponga que encuentra un buen quantum en el que el 65% de los ejemplos son de clase 1.
La división ocurre por ejemplo en el medio, que sea dividido por este quantum suyo.

1)A partir de la división, todos los ejemplos de su quantum con el 65% de los ejemplos necesarios y de muchos más quanta que son menores por valor de su quantum irán a la rama izquierda. Como resultado, no obtendrá el 65%, sino otro porcentaje, mucho menor debido a la dilución con ejemplos de otros cuantos.

2) En segundo lugar, si su quantum no es la primera división del árbol, todas las divisiones anteriores eliminaron aproximadamente el 50% de los ejemplos de la muestra. Y en el nivel 5 del árbol, quedarán 1/(2^5)=1/32 parte de los ejemplos de su cuanto, que se mezclarán con los mismos cuantos adelgazados que en el primer caso. Es decir, es poco probable que el 65% de los ejemplos permanezcan en la hoja como resultado de la formación.

La única opción es marcar las columnas como características categóricas después de la cuantificación - entonces si es la primera división en el árbol, todo el 65% de los ejemplos irán a la rama izquierda sin mezclarse con otros cuantos. Si no se trata de la primera división del árbol, entonces también se produce un adelgazamiento por las divisiones superiores.

1-2 - sí puede ocurrir, pero no necesariamente, necesitas un enfoque que minimice esa probabilidad.

Y sobre las características categóricas - es cierto, pero para MQ no hay un intérprete de modelos con características categóricas.

Hasta ahora veo una solución en consolidar los segmentos cuánticos bajo un valor y crear una muestra separada donde estos valores ocurren - de esa manera estaremos garantizados de trabajar con ese subconjunto. Lo haré mientras busco hojas, pero al principio necesito cuantificar rápidamente utilizando diferentes métodos.

 
Aleksey Vyazmikin:

Los resultados son extraños - en la muestra de prueba y de entrenamiento Recall 0,6-0,8 y en el examen sin transformación 0,009 y con transformación 0,65 - algo está mal aquí :(

Tengo la sensación de que CatBoost ha aprendido el algoritmo de conversión :)

¿Y existe la posibilidad de marcar líneas antiguas y nuevas? A continuación, es posible eliminar las cadenas transformadas de la muestra transformada y ver si se trata de un problema de interpretación o no de la formación cualitativa de todos modos.

debería ser, hay menos ejemplos de la misma clase en los nuevos datos. Aquí la generalidad debería ser mejor, deberíamos ejecutarlo en el probador de una vez

con mis datos, el remuestreo no ayuda.

se añaden nuevas filas al final, si se restan los restos del conjunto de datos original. Este método sólo añade ejemplos por el método del vecino más cercano a la clase menor. Es decir, crea nuevas etiquetas y características plausibles

 
Aleksey Vyazmikin:

1-2 - sí podría ser, pero no necesariamente, necesitas un enfoque que minimice esta probabilidad.

Y sobre las características categóricas - esto es cierto, pero para MQ no hay un intérprete de modelos con características categóricas.

Hasta ahora veo una solución en consolidar los segmentos cuánticos bajo un valor y crear una muestra separada donde estos valores ocurren - de esa manera estaremos garantizados de trabajar con ese subconjunto. Lo haré mientras busco hojas, pero al principio necesitamos cuantificar rápidamente utilizando diferentes métodos.

Este es el algoritmo para construir el árbol. No puedes cambiarlo. A menos que escribas tu propio Catboost.

 
Maxim Dmitrievsky:

debería ser, hay menos ejemplos de la misma clase en los nuevos datos. Aquí la generalización amable debe ser mejor, debemos ejecutar en el probador de una vez

con mis datos, el remuestreo no ayuda.

se añaden nuevas filas al final, si se restan los restos del conjunto de datos original. Este método sólo añade ejemplos por el método del vecino más cercano a la clase menor. Es decir, crea nuevas etiquetas y características plausibles

Así que el Recall tiene que mantenerse alto, de lo contrario no tiene sentido. No depende del equilibrio de la muestra.

Entiendo el principio de funcionamiento, gracias.

¿Existe algún método con "Cluster Centroids" - o qué otra cosa se puede intentar desde aquí.

5 главных алгоритмов сэмплинга
5 главных алгоритмов сэмплинга
  • habr.com
Работа с данными — работа с алгоритмами обработки данных. И мне приходилось работать с самыми разнообразными на ежедневной основе, так что я решил составить список наиболее востребованных в серии публикаций. Эта статья посвящена наиболее распространённым способам сэмплинга при работе с данными.
 
elibrarius:

Este es el algoritmo para construir el árbol. No se puede cambiar. A menos que escribas tu propio Catboost.

A eso me refiero: tienes que crear tu propio algoritmo.

 
Aleksey Vyazmikin:

Por lo tanto, el Recall debe seguir siendo alto o no tiene sentido. No depende del equilibrio de la muestra.

Entiendo el principio, gracias.

Hay algún método con cluster "Cluster Centroids" - o algo más para probar desde aquí.

Este elimina las etiquetas de una clase importante por el contrario.

 
Maxim Dmitrievsky:

este, en cambio, elimina las marcas de la clase mayor

Así que eliminemos los ceros de forma inteligente, quizá tenga efecto.

 
Aleksey Vyazmikin:

De esta manera borrar los ceros de una manera inteligente, tal vez tendrá un efecto.

en el cuaderno, sólo hay que sustituir el método y ya está.

from imblearn.under_sampling import ClusterCentroids
cc = ClusterCentroids(random_state=0)
X_resampled, y_resampled = cc.fit_resample(X, y)

aquí hay un ejemplo

https://imbalanced-learn.readthedocs.io/en/stable/under_sampling.html

Prefiero Near-Miss (basado en imágenes)

3. Under-sampling — imbalanced-learn 0.5.0 documentation
  • imbalanced-learn.readthedocs.io
On the contrary to prototype generation algorithms, prototype selection algorithms will select samples from the original set . Therefore, is defined such as and . In addition, these algorithms can be divided into two groups: (i) the controlled under-sampling techniques and (ii) the cleaning under-sampling techniques. The first group of methods...
 
Maxim Dmitrievsky:

en el portátil, sólo hay que sustituir el método y ya está

Debo haberlo cambiado en el lugar equivocado y está luchando.

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-e8cb95eddaea> in <module>()
      1 cc = ClusterCentroids(random_state=0)
----> 2 X_resampled, y_resampled = cc.fit_resample(X, y)

NameError: name 'X' is not defined

Por favor, compruebe lo que está mal.