Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2112

 
Aleksey Vyazmikin:

Por y é a partição da grade, e por X o desvio como uma porcentagem da soma da meta de cada classe em toda a amostra. O filtro é de 5%. Você pode ver que classes diferentes dominam em áreas diferentes, há uma mudança de espelho - então a melhoria é devida a uma classe em particular (o histograma é menos), e às vezes não é. Tudo isso deve ser usado em treinamento, mas métodos de treinamento padrão conhecidos por mim não levam isso muito em conta. Pode ser mais eficaz exagerar na genética (mais precisamente na eliminação) - você tem que fazer isso.

Suponha que você encontre um bom quantum no qual 65% dos exemplos da 1ª série.
A divisão ocorre, por exemplo, no meio, deixe dividir por isso o seu quantum.

1)A partir da divisão em ramo esquerdo todos os exemplos do seu quantum com 65% dos exemplos necessários e de muitos mais quanta que são menores pelo valor do seu quantum irão para o ramo esquerdo. Como resultado você não receberá 65%, mas outra porcentagem - muito menor devido à diluição com exemplos de outros quanta.

2) Segundo - se o seu quantum não for a primeira divisão na árvore, então todas as divisões anteriores removeram cerca de 50% dos exemplos da amostra. E no nível 5 da árvore, 1/(2^5)=1/32 parte dos exemplos na sua quant, que será misturada com a mesma quant magra como no primeiro caso. Ou seja, é pouco provável que 65% dos exemplos permaneçam na folha como resultado do treinamento.

A única opção é marcar as colunas como características categóricas após a quantização - então se for a primeira divisão na árvore, todos os 65% dos exemplos irão para o ramo esquerdo sem se misturarem com outros quanta. Se não for primeiro dividido em árvore - então, novamente, temos um desbaste por divisões superiores.

 
elibrarius:

Suponha que você encontre um bom quantum no qual 65% dos exemplos são de classe 1.
A divisão acontece, por exemplo, no meio, que seja dividida por este seu quantum.

1)Da divisão, todos os exemplos do seu quantum com 65% dos exemplos necessários e de muitos mais quanta que são menores pelo valor do seu quantum irão para o ramo esquerdo. Como resultado você não receberá 65%, mas outra porcentagem - muito menor devido à diluição com exemplos de outros quanta.

2) Segundo - se o seu quantum não for a primeira divisão na árvore, então todas as divisões anteriores removeram cerca de 50% dos exemplos da amostra. E no nível 5 da árvore, 1/(2^5)=1/32 parte dos exemplos na sua quant, que serão misturados com a mesma quantena fina como no primeiro caso. Ou seja, é pouco provável que 65% dos exemplos permaneçam na folha como resultado do treinamento.

A única opção é marcar as colunas como características categóricas após a quantização - então se for a primeira divisão na árvore, todos os 65% dos exemplos irão para o ramo esquerdo sem se misturarem com outros quanta. Se não for a primeira fenda na árvore - então, novamente, temos o desbaste por fendas superiores.

1-2 - sim, pode acontecer, mas não necessariamente, você precisa de uma abordagem que minimize essa probabilidade.

E sobre características categóricas - isso é verdade, mas para a MQ não há um intérprete modelo com características categóricas.

Até agora vejo uma solução em consolidar segmentos quânticos sob um valor e criar uma amostra separada onde esses valores ocorrem - dessa forma teremos a garantia de trabalhar com esse subconjunto. Vou fazer isso enquanto procuro por folhas, mas no início preciso quantificar rapidamente usando métodos diferentes.

 
Aleksey Vyazmikin:

Os resultados são estranhos - na amostra de teste e treino Recall 0,6-0,8 e no exame sem transformação 0,009 e com transformação 0,65 - algo está errado aqui :(

Tenho a sensação de que o CatBoost aprendeu o algoritmo de conversão :)

E há uma oportunidade para marcar linhas antigas e novas? Então é possível remover linhas transformadas da amostra transformada e ver se é um problema de interpretação ou não de treinamento qualitativo, tudo da mesma forma.

deveria ser, há menos exemplos da mesma classe sobre os novos dados. Aqui o tipo de generalização deve ser melhor, devemos fazer o teste de uma só vez.

com os meus dados, a reamostragem não ajuda.

novas linhas são adicionadas ao final, se você subtrair os restos do conjunto de dados original. Este método apenas acrescenta exemplos pelo método dos vizinhos mais próximos à classe menor. Isto é, cria novos rótulos e características plausíveis

 
Aleksey Vyazmikin:

1-2 - sim, pode ser, mas não necessariamente, você precisa de uma abordagem que minimize esta probabilidade.

E sobre características categóricas - isto é verdade, mas para a MQ não existe um intérprete modelo com características categóricas.

Até agora vejo uma solução em consolidar segmentos quânticos sob um valor e criar uma amostra separada onde esses valores ocorrem - dessa forma teremos a garantia de trabalhar com esse subconjunto. Vou fazer isso enquanto procuro por folhas, mas no início precisamos quantificar rapidamente usando métodos diferentes.

Este é o algoritmo para construir a árvore. Não podes mudá-lo. A menos que você escreva o seu próprio Catboost.

 
Maxim Dmitrievsky:

deveria ser, há menos exemplos da mesma classe sobre os novos dados. Aqui o tipo de generalização deve ser melhor, devemos fazer o teste de uma só vez.

com os meus dados, a reamostragem não ajuda.

novas linhas são adicionadas ao final, se você subtrair os restos do conjunto de dados original. Este método apenas acrescenta exemplos pelo método do vizinho mais próximo à classe menor. Isto é, cria novos rótulos e características plausíveis

Por isso a Recall tem de se manter alta, senão não vale a pena. Não depende do equilíbrio da amostra.

Eu entendo o princípio de operação, obrigado.

Existe algum método com o agrupamento de "Cluster Centroids" - ou o que mais tentar a partir daqui?

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

Este é o algoritmo para construir a árvore. Não podes mudá-lo. A menos que você escreva o seu próprio Catboost.

É disso que estou a falar - tens de fazer o teu próprio algoritmo.

 
Aleksey Vyazmikin:

Por isso, a recordação deve permanecer elevada ou não faz sentido. Não depende do equilíbrio da amostra.

Eu entendo o princípio, obrigado.

Há algum método com o agrupamento "Cluster Centroids" - ou algo mais para tentar a partir daqui.

Esta remove etiquetas de uma grande classe, pelo contrário.

 
Maxim Dmitrievsky:

este, por outro lado, remove as marcas da classe principal

Então vamos remover os zeros de uma forma inteligente, talvez tenha um efeito.

 
Aleksey Vyazmikin:

Assim, apague os zeros de uma forma inteligente, talvez tenha um efeito.

no bloco de notas, basta substituir o método e pronto.

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

eis um exemplo

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

Eu prefiro Near-Miss (baseado em fotos)

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:

no laptop, basta substituir o método e pronto.

Devo tê-lo mudado no sítio errado e está a lutar.

---------------------------------------------------------------------------
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, verifique o que está errado.