O que alimentar a entrada da rede neural? Suas ideias... - página 67

 

Como as árvores funcionam no aprendizado de máquina?

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

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

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

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


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

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

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

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

Acima, azul - iteratividade do processo, verde - avaliação do processo.

Abaixo, há mais informações sobre iteração e avaliação, mas estou com preguiça de destacar as cores.

A divisão em folhas é um processo iterativo ou não?

Sim, a divisão em folhas na solução de árvores é um processo iterativo.



Vamos dar uma olhada mais de perto em como isso acontece: ### Processo de particionamento 1.

**Seleção do nó para o particionamento**: - Começa na raiz da árvore, onde todos os dados residem; - Em cada nó, um recurso e um valor são selecionados para o particionamento.

Isso é feito usando critérios como a redução de entropia ou o critério de Gini. 2.



**Particionamento de dados**: - Os dados são divididos em dois ou mais grupos, dependendo da característica selecionada e de seu valor. - Cada grupo se torna um novo nó (ou subárvore) para particionamento posterior. 3.
**Particionamento recursivo**: - O processo é repetido para cada novo nó.

Em cada etapa, um novo recurso é selecionado e os dados são novamente particionados. - Isso continua até que uma condição de parada seja atingida, por exemplo: - Profundidade máxima da árvore.





- Número mínimo de amostras por nó. - Nenhuma melhoria significativa na qualidade do particionamento. ### Natureza iterativa - **Iteração**:
Cada etapa de particionamento é uma iteração que resulta na criação de novos nós e subconjuntos de dados. - **Recursão**:





O processo de particionamento pode ser considerado recursivo, em que cada nó é tratado separadamente e o mesmo processo é repetido para cada nó. ### Conclusão do processo - Quando uma das condições de parada é atingida, o nó se torna um nó folha e um valor final é definido para ele (por exemplo, classe para classificação ou média para regressão). Assim, o particionamento em folhas em árvores de decisão é de fato um processo iterativo e recursivo que permite refinamentos sucessivos

Qual é o critério de avaliação durante a construção da árvore e quais algoritmos de otimização são usados nesse processo?

Ao construir árvores de decisão, vários critérios de avaliação são usados para ajudar a determinar a melhor forma de particionar os dados em cada nó.



Os critérios básicos incluem: ### Critérios de avaliação 1.

**Entropia**: - Usada no algoritmo ID3 - Mede a incerteza ou a aleatoriedade dos dados.
Quanto menor a entropia, mais homogêneos são os dados. - Fórmula:



\[ H(S) = -\sum_{i=1}^{C} p_i \log_2(p_i) \]em que \( p_i \) é a probabilidade da classe \( i \) e \( C \) é o número de classes.

2.

**Critério de Gini**: - Usado no CART (Classification and Regression Trees) - Mede a probabilidade de classificação incorreta de um item selecionado aleatoriamente.





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



**Entropia cruzada (perda logarítmica)**: - Usada em algumas variações de árvores de decisão, especialmente para tarefas de classificação; - Estima a diferença entre as probabilidades previstas e os rótulos de classe reais. 4.







** Erro médio quadrático (MSE)**: - Usado para problemas de regressão; - Estima a média dos quadrados de erro entre os valores previstos e os valores reais. ### Algoritmos de otimização Vários algoritmos e métodos de otimização também são usados na construção de árvores de decisão: 1.



**Algoritmo guloso**: - Em cada nó, o melhor recurso e valor para particionamento é selecionado com base no critério de avaliação selecionado. - Esse processo continua até que as condições de parada sejam atingidas. 2.



**Construção de uma árvore usando subconjuntos aleatórios**: - O algoritmo Random Forest usa um método de "ensacamento" em que várias árvores são construídas com base em subconjuntos aleatórios de dados e recursos. - Isso ajuda a reduzir o excesso de treinamento e a aumentar a generalização do modelo. 3.



**Poda da árvore**: - Depois que a árvore é construída, um procedimento de poda pode ser realizado para reduzir a complexidade da árvore e evitar o treinamento excessivo. - A poda pode ser feita com base na validação cruzada ou usando um critério como o erro no conjunto de validação. 4.


**Otimização de hiperparâmetros**: - Métodos como Grid Search ou Random Search são usados para encontrar valores ideais de hiperparâmetros, como profundidade da árvore, número mínimo de amostras por nó etc. Esses critérios e métodos de otimização ajudam a criar modelos eficientes e robustos com base em árvores de decisão.

Tudo o que foi negado (estimativa, iterabilidade, presença de um algoritmo de otimização) está presente na construção da árvore.


ZY. Artigos sobre o tópico #árvores.

 


O ChatGPT deixará o mundo sem pessoas tentando descobrir as coisas por conta própria. Descubra o código a partir do artigo. E essas perguntas não surgirão. Você é um programador e pode fazer isso. Ou é isso mesmo?

O chat do GPT tomou o lugar de uma fonte de conhecimento verdadeiro? Você viu a iteraçãona recursão. Não, não se trata de processar todos os dados repetidamente (como na iteração humana ou no NS, recalculando todos os pesos a cada época de aprendizado). Mas toda vez que o conjunto de dados é dividido, por exemplo, pela metade, cada metade é dividida pela metade e assim por diante, até que seja impossível dividir (resta um exemplo ou todos os exemplos são iguais). Isso é espalhar os dados pelas folhas em uma única passagem. Funciona muito rápido.

Isso é selecionar a melhor divisão, mas não avaliar os dados em si. Foi sobre isso que escrevi anteriormente. Você deseja avaliar os dados para que o registro chame a memorização.

 
Forester #:


O ChatGPT deixará o mundo sem pessoas tentando descobrir as coisas por conta própria. Descubra o código a partir do artigo. E essas perguntas não surgirão. Você é um programador e pode fazer isso. Ou é isso mesmo?

O chat do GPT tomou o lugar de uma fonte de conhecimento verdadeiro? Você viu a iteraçãona recursão. Não, não se trata de processar todos os dados repetidamente (como na iteração humana ou no NS, recalculando todos os pesos a cada época de aprendizado). Mas toda vez que o conjunto de dados é dividido, por exemplo, pela metade, cada metade é dividida pela metade e assim por diante, até que seja impossível dividir (resta um exemplo ou todos os exemplos são iguais). Isso é espalhar os dados pelas folhas em uma única passagem. Funciona muito rápido.

Isso é selecionar a melhor divisão, mas não avaliar os dados em si. Foi sobre isso que escrevi anteriormente. Você deseja avaliar os dados para que o registro chame a memorização.

Não há tempo para digitar uma postagem grande manualmente, o gpt é muito bom para isso.

Observe atentamente, por favor, pelo menos observe o código que você me ofereceu para examinar. Descubra onde estão as iterações nele, onde está a estimativa e onde está o algoritmo de otimização. Sua negação não levará a lugar algum.

Recursão é iterações.

 
1. você não normalizará os valores do conjunto de dados de modo que eles tenham uma estrutura semelhante à de outras entradas 2. mesmo que você consiga fazer isso, haverá ruído branco e nenhuma rede neural funcionará corretamente 3. somente uma rede como a GPT, com milhares de neurônios e arquiteturas projetadas exclusivamente para negociação, poderá fornecer previsões mais ou menos precisas e se adaptar ao ruído branco. e esse é um servidor separado com enormes capacidades.
 
É isso mesmo.
 
Forester #:

...



Tut.
 
Continuo com experimentos criativos. Fiz um desenho mental, quero tentar criar moldes de preços e usá-los nas negociações. Cada molde é como um padrão enorme, que é projetado condicionalmente no futuro.

 
Vejo muitos programadores experientes neste tópico, os quais admiro, portanto, não quero pisar no calo de ninguém.

No entanto, pessoal, com base em minha experiência pessoal e em minha pesquisa, os modelos lineares simples parecem sempre superar as redes neurais. Isso pode ocorrer porque os conjuntos de dados financeiros são muito ruidosos e as redes neurais são sensíveis à variação nas entradas.

Na verdade, superar uma regressão linear é impressionante (supondo que você não esteja embaralhando aleatoriamente os conjuntos de treinamento e teste).

Não quero parecer pessimista, mas todos os dados que analisei não me dão confiança de que uma Rede Neural Profunda, mesmo com um trilhão de parâmetros, superará um Modelo Linear, mesmo levando em conta o fenômeno da dupla descida.

Em geral, acho que há

1) uma etapa de pré-processamento que não percebemos
2) dados úteis que não estamos observando
ou
3) um alvo melhor que podemos prever com mais precisão.

Eu adoraria que provassem que estou errado. Na verdade, espero estar errado e que a verdadeira solução seja muito mais simples.
 



Como todas as NS só conseguem reconhecer gatinhos, tumores e jogar Dota, elas são incapazes de reconhecer uma estratégia de negociação, porque essa tarefa não é para redes burras. Como resultado, a "generalização" se transforma em "média", quando o resultado das NS são diferentes tipos de ajustes com diferentes perversões.










Vire um gato de cabeça para baixo e ele ainda é o mesmo gato. Vire um gráfico de preços de cabeça para baixo e ele não é mais uma COMPRA, mas uma VENDA. No final, mantenho minha opinião: se você quiser ajustar, deve ajustar especificamente. 1. Ou uma tabela Q, em que cada padrão histórico é atribuído a uma compra ou venda com base em estatísticas 2. Ou filtramos a entrada (ou o número de saída do NS) em todo o intervalo: alguns lugares - sinal para abrir, outros - ignorar.





A segunda opção é a implementação mais fácil da substituição do MLP: em vez de dezenas e centenas de parâmetros otimizáveis de pesos, você pode otimizar o intervalo do número de trabalho. Foi o que eu fiz, transformando a otimização em um retreinamento feroz, que às vezes resulta em algo que funciona no futuro. E mesmo nessa direção já é possível trabalhar, escolher, continuar pesquisando.




 











Observações recentes: Há dois tipos de dados de entrada: 1) Sequência temporal - dados de entrada homogêneos em ordem cronológica: preços,leituras de indicadores, padrões. 2) Diversos - leituras únicas, mas as maisrecentes , de diferentes instrumentos: indicadores, padrões.A primeira variante é a pior. Quanto mais nos aprofundamos na história, piores são os resultados.




Parece um paradoxo, se compararmos com os operadores bem-sucedidos, que se aprofundam na história.A segunda variante é a melhor. A primeira variante não pode ser treinada de forma alguma.


Parece que mais gráficos - mais informações - melhores resultados. Mas, na prática, tudo é exatamente o oposto. Além disso, minha justificativa hipotética para esse fenômeno:

O preço tem um padrão. Objetivo, técnico - é a volatilidade. Sim, ela nos permite presumir com certeza que em 10 casos em 10, pelo menos em 10 casos o preço não atingirá o valor 0. Em 10 casos de 10, o preço do euro não passará de 5000 pips em uma barra de 5 minutos.
Força maior estragará um pouco o quadro absoluto, mas ainda há um elemento de chance: nessa mesma volatilidade, há faixas de livre oscilação de preço.



E o preço durante a barra está nessa faixa média. E aqui podemos dizer com alguma certeza: o preço no próximo candle estará na faixa de agora até agora, um pouco acima da máxima atual e um pouco abaixo da mínima atual, porque o preço tende a se mover direcionalmente. Então, e se recuarmos uma barra? Qual suposição estaria correta?

Sim, de fato: o preço após 1 barra já terá 4 vezes o intervalo possível do candlestick. E se recuarmos 10 barras? Qual será o preço em 10 barras? A faixa de valores possíveis aumenta muitas vezes.




É impossível adivinhar. E acho que esse fenômeno afeta os resultados francamente ruins do NS: a falta de liberdade de previsão do passado se sobrepõe ao desempenho geral, piorando-o. Isso é confirmado pela regra prática: quanto mais entradas, pior. Você também pode verificar isso: insira um par de novas entradas separadamente e 10 entradas anteriores, também separadamente.


Os resultados do primeiro serão muito mais estáveis. Os inputs mais recentes são "ofuscados" pelos desatualizados no caldeirão geral de inputs, onde eles mais frequentemente mostram treinamento excessivo e aleatoriedade absoluta no avanço. Você pode contestar: ninguém alimenta apenas os anteriores, eles compõem todo o padrão no caldeirão geral.

E a matriz de entrada deve ser considerada como um padrão independente, mas as estatísticas mostraram que qualquer padrão único que consista em uma sequência cronológica tende a funcionar 50/50.



Ou seja, depois dele, o preço continua a se curvar como quiser. Mas asegunda variante é uma beleza.



Essa beleza não só tem a propriedade principal do predicado - o frescor dos dados, mas também pode potencialmente realizar a funcionalidade da cronologia e dos padrões: - toda a cronologia do gráfico pode ser realizada por um número e ter uma única entrada.


Ou a mesma sequência cronológica, mas com uma relação obrigatória com os dados mais recentes: se for um preço, então o reflexo do incremento do preço mais recente com o restante. E então a cronologia "morta" e inviável começa a ganhar vida.