Uma variante da marcação "informativa", um teste de caneta:
def labeling_entropy(dataset, min_Mi = 0.1, min=15, max=15):
labels = []
MIs = []
for i in range(max, dataset.shape[0]-max*2):
rand = random.randint(min, max)
curr_pr = dataset['close'][i]
future_pr = dataset['close'][i + rand]
full_pr = dataset[i-rand:i+rand]
mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[0:rand], full_pr[full_pr.columns[0]].iloc[rand:rand*2])
MIs.append(mi.mean())
if future_pr + MARKUP < curr_pr and mi.mean() > min_Mi:
labels.append(1.0)
elif future_pr - MARKUP > curr_pr and mi.mean() > min_Mi:
labels.append(0.0)
else:
labels.append(2.0)
dataset = dataset.iloc[max:]
dataset = dataset.iloc[:len(labels)].copy()
dataset['labels'] = labels
return dataset.dropna(), MIs
Pegamos um conjunto de sinais e marcamos os rótulos como em meus artigos, mas levando em conta a informação mútua (tipo de regressão) entre n cadeias do conjunto de sinais antes de abrir uma negociação e n cadeias de preços futuros.
Se a informação mútua estiver abaixo do limite, marcamos como não negociável.
Em seguida, treinamos 2 modelos em sinais e em negociação/não negociação, começando em 2019
mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[0:rand], full_pr[full_pr.columns[0]].iloc[0:rand]) сравниваем фичи и цены в момент предсказания
mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[0:rand*2], full_pr[full_pr.columns[0]].iloc[0:rand*2]) сравниваем на глубину предсказания вперед + назад
mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[rand:rand*2], full_pr[full_pr.columns[0]].iloc[rand:rand*2]) только вперед
mi = mutual_info_regression(full_pr.iloc[0:rand], full_pr[full_pr.columns[0]].iloc[rand:rand*2])текущие цены и фичи в момент предсказания VS будущие цены
mytarmailS #: Bem, releia minha postagem, a última imagem.
Ainda está escrito
Havia apenas 2 variantes nas primeiras 25 barras. E 2 erros são um pequeno erro. E essa é apenas uma variante do gráfico entre milhares, que por acaso chamou sua atenção. A situação será diferente em outras. Você precisa criar uma estratégia (que ainda não formulou) e observar a linha de equilíbrio em novos dados (Maxim levou sua ideia até o fim e tudo ficou claro de uma vez).
Fiz a mesma coisa com o agrupamento há mais de um ano, depois determinei os níveis médios, como nas fotos, e fiz pedidos a partir deles. Dividi em 3 clusters: alta, baixa e reversão à média. Funciona muito bem no treinamento.
O engraçado é que, independentemente dos meios especiais que você use, não é possível obter nada de bom a partir do aleatório
E em qual das 100 linhas previstas fazer uma previsão? A média é a solução mais óbvia.
Bem, digamos que 50 previsões para cima e 50 para baixo, calculamos a média, obtivemos uma previsão horizontal, e daí?)))
e é isso. Quais são suas opções?
E em qual das 100 linhas previstas você deve fazer uma previsão?
Uma variante da marcação "informativa", um teste de caneta:
Pegamos um conjunto de sinais e marcamos os rótulos como em meus artigos, mas levando em conta a informação mútua (tipo de regressão) entre n cadeias do conjunto de sinais antes de abrir uma negociação e n cadeias de preços futuros.
Se a informação mútua estiver abaixo do limite, marcamos como não negociável.
Em seguida, treinamos 2 modelos em sinais e em negociação/não negociação, começando em 2019
Resultado:
Não houve muito ganho com essa abordagem
Não vi a sugestão)
A coisa lógica a fazer era tentar outras opções:
todas as opções não produzem nada
Bem, releia minha postagem, a última imagem.
Havia apenas 2 variantes nas primeiras 25 barras. E 2 erros são um pequeno erro.
E essa é apenas uma variante do gráfico entre milhares, que por acaso chamou sua atenção. A situação será diferente em outras. Você precisa criar uma estratégia (que ainda não formulou) e observar a linha de equilíbrio em novos dados (Maxim levou sua ideia até o fim e tudo ficou claro de uma vez).