¿Qué alimentar a la entrada de la red neuronal? Tus ideas... - página 67

 

¿Cómo funcionan los árboles en el aprendizaje automático?

Деревья в машинном обучении, в частности, решающие деревья, представляют собой структуру, которая используется для классификации и регрессии. Основная идея заключается в том, чтобы разбить набор данных на более мелкие подмножества, основываясь на значениях входных признаков. Вот основные моменты, как работают деревья:

### 1. Структура дерева
- **Вершины**: Каждая вершина дерева представляет собой узел, где происходит разделение данных.
- **Корень**: Это верхний узел дерева, откуда начинается процесс разделения.
- **Листовые узлы**: Узлы, которые не имеют дочерних узлов, представляют собой конечные результаты (классификация или предсказание).

### 2. Процесс построения дерева
- **Выбор признака**: На каждом узле выбирается признак, по которому будет происходить разделение. Выбор признака осуществляется на основе критерия, который позволяет максимизировать однородность подмножеств (например, критерий Джини или энтропия для классификации).
- **Разделение данных**: Данные делятся на две или более группы в зависимости от значения выбранного признака.
- **Рекурсия**: Процесс повторяется для каждой полученной группы, пока не будет достигнуто определенное условие остановки (например, максимальная глубина дерева или минимальное количество образцов в узле).

### 3. Оценка качества
- **Критерии**: Для оценки качества разделения используются различные метрики, такие как:
  - **Джини**: Мера, которая вычисляет вероятность неправильной классификации случайно выбранного элемента.
  - **Энтропия**: Мера неопределенности, которая показывает, насколько данные в узле разнородны.


### 4. Устойчивость к переобучению
- **Переобучение**: Деревья могут легко переобучаться, особенно если они слишком глубокие. Для борьбы с этим применяются методы, такие как обрезка (pruning), которая удаляет менее значимые узлы.
- **Регуляризация**: Установка ограничений на максимальную глубину дерева или минимальное количество образцов в узле также помогает избежать переобучения.

### 5. Применение
- **Классификация**: Деревья могут использоваться для классификации объектов на основе их признаков.
- **Регрессия**: Деревья могут предсказывать непрерывные значения, разбивая данные на подмножества и вычисляя среднее значение в каждом листовом узле.

### 6. Ансамблевые методы
- **Случайные леса**: Это метод, который объединяет множество деревьев для улучшения точности и устойчивости модели.
- **Градиентный бустинг**: Метод, который строит деревья последовательно, где каждое новое дерево исправляет ошибки предыдущих.

Деревья являются мощным инструментом в машинном обучении благодаря своей интерпретируемости и способности обрабатывать как числовые, так и категориальные данные.

Arriba azul - iteratividad del proceso, verde - evaluación del proceso.

Abajo hay más sobre iteración y evaluación, me da pereza resaltar los colores.

¿La división en hojas es un proceso iterativo o no?

Sí, la partición en hojas en la resolución de árboles es un proceso iterativo.



Echemos un vistazo más de cerca a cómo sucede: ### Proceso de partición 1.

**Selección del nodo para la partición**: - Comienza en la raíz del árbol, donde residen todos los datos. - En cada nodo, se selecciona una característica y un valor por el que particionar.

Para ello se utilizan criterios como la reducción de entropía o el criterio de Gini. 2. **Partición de los datos**: - Se inicia en la raíz del árbol, donde residen todos los datos.



Partición de los datos**: - Los datos se dividen en dos o más grupos en función de la característica seleccionada y de su valor. - Cada grupo se convierte en un nuevo nodo (o subárbol) para la partición posterior. 3. Partición recursiva**: - En cada nodo se selecciona una característica y un valor.
**El proceso se repite para cada nuevo nodo.

En cada paso, se selecciona una nueva característica y se vuelven a dividir los datos. - Esto continúa hasta que se alcanza una condición de parada, por ejemplo: - Profundidad máxima del árbol.





- Número mínimo de muestras por nodo - Ninguna mejora significativa en la calidad de la partición ### Naturaleza iterativa - **Iteración**:
Cada paso de la partición es una iteración que da lugar a la creación de nuevos nodos y subconjuntos de datos. - **Recursión**:





El proceso de partición puede considerarse recursivo, en el que cada nodo se trata por separado y se repite el mismo proceso para cada nodo. ### Finalización del proceso - Cuando se alcanza una de las condiciones de parada, el nodo se convierte en un nodo hoja y se define un valor final para él (por ejemplo, clase para clasificación o media para regresión). Así, la partición en hojas en los árboles de decisión es de hecho un proceso iterativo y recursivo que permite refinamientos sucesivos.

¿Cuál es el criterio de evaluación durante la construcción del árbol y qué algoritmos de optimización se utilizan en este proceso?

Cuando se construyen árboles de decisión, se utilizan varios criterios de evaluación para ayudar a determinar cuál es la mejor manera de particionar los datos en cada nodo.



Entre los criterios básicos se incluyen: ### Criterios de evaluación 1.

**Entropía**: - Se utiliza en el algoritmo ID3. - Mide la incertidumbre o aleatoriedad de los datos.
Cuanto menor es la entropía, más homogéneos son los datos. - Fórmula:



\[ H(S) = -\suma_{i=1}^{C} p_i \log_2(p_i) \]donde \( p_i \) es la probabilidad de la clase \( i \) y \( C \) es el número de clases.

2.

**Criterio de Gini**: - Se utiliza en CART (árboles de clasificación y regresión) - Mide la probabilidad de clasificar erróneamente un elemento seleccionado al azar.





- Fórmula: \[ Gini(S) = 1 - \sum_{i=1}^{C} p_i^2 \] 3 .



**Entropía cruzada (pérdida logarítmica)**: - Se utiliza en algunas variaciones de árboles de decisión, especialmente para tareas de clasificación. - Estima la diferencia entre las probabilidades predichas y las etiquetas de clase reales. 4. Error cuadrático medio (ECM).







** Error cuadrático medio (MSE)**: - Se utiliza para problemas de regresión. - Estima la media de los cuadrados de error entre los valores predichos y los reales. ### Algoritmos de optimización En la construcción de árboles de decisión también se utilizan varios algoritmos y métodos de optimización: 1. El algoritmo de codicia**: - Estima la diferencia entre las probabilidades predichas y las etiquetas de clase reales.



**En cada nodo, se selecciona la mejor característica y el mejor valor para la partición en función del criterio de evaluación seleccionado. Este proceso continúa hasta que se alcanzan las condiciones de parada. 2. Algoritmo de optimización.



Esto ayuda a reducir el sobreentrenamiento y a aumentar la generalizabilidad del modelo. 3. **Poda del árbol**: - En cada nodo se selecciona la mejor característica y el mejor valor para la partición en función del criterio de evaluación seleccionado.



**Una vez construido el árbol, puede llevarse a cabo un procedimiento de poda para reducir su complejidad y evitar el sobreentrenamiento. - La poda puede basarse en la validación cruzada o en un criterio como el error en el conjunto de validación. 4. **Optimización de hiperparámetros


**Optimización de hiperparámetros**: - Se utilizan métodos como la búsqueda en cuadrícula o la búsqueda aleatoria para encontrar valores óptimos de hiperparámetros como la profundidad del árbol, el número mínimo de muestras por nodo, etc. Estos criterios y métodos de optimización ayudan a construir modelos eficientes y robustos basados en árboles de decisión.

Todo lo que se negaba (estimación, iterabilidad, presencia de un algoritmo de optimización) está presente en la construcción de árboles.


ZY. Artículos sobre el tema #árboles.

 


ChatGPT dejará el mundo sin gente que intente averiguar las cosas por su cuenta. Averigua el código a partir del artículo. Y esas preguntas no surgirán. Eres programador y puedes hacerlo. ¿O es eso?

¿El chat de GPT ha ocupado el lugar de una fuente de verdadero conocimiento? Has vistola iteraciónen la recursividad. No - no es procesar todos los datos una y otra vez (como en los humanos iterando o en NS recalculando todos los pesos en cada época de aprendizaje). Pero cada vez que el conjunto de datos se divide, por ejemplo, por la mitad, cada mitad se divide por la mitad y así sucesivamente, hasta que es imposible dividirlo (queda 1 ejemplo o todos los ejemplos son iguales). Esto es repartir los datos entre las hojas en 1 pasada. Funciona muy rápido.

Esto es seleccionar la mejor división, pero no evaluar los datos en sí. Eso es lo que escribí antes. Usted quiere evaluar los datos para el registro para llamar a la memorización.

 
Forester #:


ChatGPT dejará el mundo sin gente que intente averiguar las cosas por su cuenta. Averigua el código a partir del artículo. Y esas preguntas no surgirán. Eres programador y puedes hacerlo. ¿O es eso?

¿El chat de GPT ha ocupado el lugar de una fuente de verdadero conocimiento? Has vistola iteraciónen la recursividad. No - no es procesar todos los datos una y otra vez (como en los humanos iterando o en NS recalculando todos los pesos en cada época de aprendizaje). Pero cada vez que el conjunto de datos se divide, por ejemplo, por la mitad, cada mitad se divide por la mitad y así sucesivamente, hasta que es imposible dividirlo (queda 1 ejemplo o todos los ejemplos son iguales). Esto es repartir los datos entre las hojas en 1 pasada. Funciona muy rápido.

Esto es seleccionar la mejor división, pero no evaluar los datos en sí. Eso es lo que escribí antes. Usted quiere evaluar los datos para el registro para llamar a la memorización.

No hay tiempo para escribir un gran post manualmente, gpt es bastante bueno para eso.

Fíjate bien, por favor, al menos mira el código que me ofreces mirar. Averigua dónde están las iteraciones en él, dónde está la estimación y dónde está el algoritmo de optimización. Tu negación no llevará a ninguna parte.

La recursión son iteraciones.

 
1.No normalizará los valores del conjunto de datos para que su estructura sea similar a la de otras entradas 2.Aunque pueda hacerlo, será ruido blanco y ninguna red neuronal funcionará correctamente 3.Sólo una red como GPT con miles de neuronas y arquitecturas diseñadas exclusivamente para el trading será capaz de dar previsiones más o menos precisas y adaptarse al ruido blanco. Y se trata de un servidor independiente con enormes capacidades.
 
Así es.
 
Forester #:

...



Tut.
 
Continúo con los experimentos creativos. He dibujado una imagen mental, quiero intentar crear moldes de precios y utilizarlos en el trading. Cada molde es como un cierto patrón enorme, que se proyecta condicionalmente en el futuro.

 
Veo que en este hilo hay muchos programadores experimentados a los que admiro, así que no quiero molestar a nadie.

Sin embargo, según mi experiencia personal y mis investigaciones, los modelos lineales simples parecen superar siempre a las redes neuronales. Esto puede deberse a que los conjuntos de datos financieros son muy ruidosos y a que las redes neuronales son sensibles a la varianza de los datos de entrada.

De hecho, en mi opinión, superar a una regresión lineal es impresionante (suponiendo que no se barajen aleatoriamente los conjuntos de entrenamiento y prueba).

No quiero parecer pesimista, pero todos los datos que he analizado no me permiten confiar en que una red neuronal profunda, incluso con un billón de parámetros, supere a un modelo lineal, ni siquiera teniendo en cuenta el fenómeno del doble descenso.

En general, creo que hay

1) un paso de preprocesamiento del que no nos hemos dado cuenta
2) datos útiles que estamos pasando por alto
O
3) un objetivo mejor que podemos predecir con más precisión.

Me encantaría que me demostraran lo contrario. De hecho, espero equivocarme y que la verdadera solución sea mucho más sencilla.
 



Como todas las NS sólo pueden reconocer gatitos, tumores y jugar al Dota, son incapaces de reconocer una estrategia de trading, porque esta tarea no es para redes tontas. Como resultado, la "generalización" se convierte en "promediación", cuando el resultado de las NS son diferentes tipos de ajustes con diferentes perversiones.










Dale la vuelta a un gato y sigue siendo el mismo gato, dale la vuelta a un gráfico de precios y ya no es una COMPRA, sino una VENTA. Al final, mantengo mi opinión: si quieres ajustar, debes ajustar específicamente. 1. O bien una tabla Q, donde a cada patrón histórico se le asigna una compra o una venta basada en estadísticas 2. O bien filtramos la entrada (o la salida) de la red. O filtramos la entrada (o número de salida de la NS) en todo el rango: algunos lugares - señal para abrir, algunos - ignorar.





La segunda opción es la implementación más fácil de reemplazo MLP: en lugar de decenas y cientos de parámetros optimizables de pesos, puede optimizar el rango de número de trabajo. Así lo hice, convirtiendo la optimización en un reentrenamiento feroz, que a veces resulta en algo que funciona en el delantero. E incluso en esta dirección ya es posible trabajar, elegir, seguir buscando.