L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 2834

 
mytarmailS #:
Je n'ai pas réussi avec xgboost...
Ou plutôt, j'ai réussi, mais l'entraînement n'a pas fonctionné, il faut se faire de bons amis avec les gradients là, il faut rendre la fonction fitness gradient, avec la génétique c'est beaucoup plus facile

Oui, c'est la partie délicate. Il faut calculer le gradient et la matrice des dérivées secondes, le hessien. La hessienne doit également être définie positivement.

Pour le profit, par exemple, la hessienne est dégénérée (égale à zéro). Il est nécessaire d'affiner d'une manière ou d'une autre la fonction de perte afin d'obtenir un compromis raisonnable entre le besoin et la nécessité.

 
Andrey Dik #:

1. mon nom de famille n'est pas décliné
2. la question n'est pas de savoir si le global changera ou non (il changera nécessairement), mais de savoir s'il est possible de trouver l'extremum global. si vous ne vous en souciez pas, vous pouvez simplement initialiser les poids du réseau avec des nombres aléatoires et c'est tout, car quelle différence cela fait-il que ce soit global ou non ? local.))

1. En ce qui concerne le nom de famille, j'en tiendrai compte. Vous êtes la seule personne que je connaisse avec un tel nom de famille.

2) Je voudrais objecter qu'il ne faut pas pousser l'idée jusqu'à l'absurde, mais en réalité le cas est le même : nous n'avons pas besoin d'optimums - nous avons besoin de plateaux, plus c'est étendu, mieux c'est, plus c'est rentable, mieux c'est. Et l'extremum est toujours un état instable, alors que nous avons besoin d'un état stable, et dans le futur. Il s'avère donc que la recherche d'optimums est une activité nuisible.

J'avance ici l'idée que la stabilité des bénéfices dans le futur dépend des propriétés des prédicteurs et ne dépend que très peu du modèle, et encore moins des algorithmes d'optimisation. Il s'agit donc d'une approche complètement différente.

 
СанСаныч Фоменко #:

Ce que je défends ici, c'est l'idée que la durabilité des bénéfices à l'avenir dépend des propriétés des prédicteurs et ne dépend que très peu du modèle, et encore moins des algorithmes d'optimisation. Il s'agit là d'une approche totalement différente.

Pouvez-vous m'envoyer votre échantillon ? Nous avons la même vision du problème du mauvais apprentissage des modèles, j'aimerais comparer dans quelle mesure votre méthode de sélection est meilleure que la mienne, et si elle s'adapte à votre échantillon.

 
Qu'est-il proposé de substituer au logloss ?
 
Aleksey Nikolayev #:

Oui, c'est la partie délicate. Vous devez calculer le gradient et la matrice des dérivées secondes - la hessienne. La hessienne doit également être définie positive.

Pour le profit, par exemple, la hessienne est dégénérée (égale à zéro). Il est nécessaire d'affiner d'une manière ou d'une autre la fonction de perte afin d'obtenir un compromis raisonnable entre le besoin et la nécessité.

Ici, si j'ai bien compris, la hessienne n' est pas du tout prise en compte.

#  Custom objective function (squared error)
myobjective <- function(preds, dtrain) {
  labels <- getinfo(dtrain, "label")
  grad <- (preds-labels)    
  hess <- rep(1, length(labels))                
  return(list(grad = grad, hess = hess))
}

#  Custom Metric
evalerror <- function(preds, dtrain) {
  labels <- getinfo(dtrain, "label")
  err <- (preds-labels)^2        
  return(list(metric = "MyError", value = mean(err)))   
}

Il ne sert qu'à réduire le gradient.

grad <- (preds-labels)   


Ceci est différent.

logregobj <- function(preds, dtrain) {
  labels <- getinfo(dtrain, "label")
  preds <- 1 / (1 + exp(-preds))
  grad <- preds - labels
  hess <- preds * (1 - preds)
  return(list(grad = grad, hess = hess))
}


Je me souviens que j'ai eu beaucoup de mal avec ça, alors j'ai abandonné.

Mais ce serait cool d'entraîner mon physique).
 
СанСаныч Фоменко #:

Mais en réalité, c'est le cas : nous n'avons pas besoin d'optimums - nous avons besoin de plateaux, plus ils sontétendus, mieux c'est, plus ils sont rentables, mieux c'est. Et un extremum est toujours un état instable.

Et la fonction qui évalue "combien de plateau/pas de plateau" n'est pas la recherche du maximum ?

Et une fonction qui évalue "plus c'est rentable, mieux c'est" n'est pas une recherche de maximum ?

Etla fonction qui évalue "plus c'est étendu, mieux c'est" n' est pas une recherche de maximum?

Et la fonction qui évalue "état stable / instable" n'est pas une recherche de maximum ?

Ou bien avez-vous besoin d'un plateau ici aussi ? )))) Dans ce cas, voir le premier point ))))

Oh ces gens profanes ...



SanSanych Fomenko #:

Je défends ici l'idée que la durabilité des bénéfices à l'avenir dépend des propriétés des prédicteurs et très peu du modèle, et encore moins des algorithmes d'optimisation. C'est une approche complètement différente.

Il ne faut pas pousser l'idée, mais la prouver ou au moins la justifier....

Il y en avait un ici, qui poussait l'idée que Mashka est la meilleure chose qui puisse être, et à quoi sert cette poussée ??????

 
Il serait encore plus intéressant d'inclure le corps manquant et de réfléchir au type de relation qui pourrait décrire le facteur de profit entre les puces et les étiquettes. Pratiquement aucun 🤤
 
СанСаныч Фоменко #:

1. Je garderai le nom de famille à l'esprit. Vous êtes la seule personne que je connaisse avec ce nom de famille.

2) J'aimerais objecter qu'il ne faut pas pousser l'idée jusqu'à l'absurde, mais en réalité le cas est le même : nous n'avons pas besoin d'optimums - nous avons besoin de plateaux, plus ils sont étendus, mieux c'est, plus ils sont rentables, mieux c'est. Et l'extremum est toujours un état instable, mais nous avons besoin d'un état stable, et dans le futur. Il s'avère donc que la recherche d'optimums est une occupation nuisible.

J'avance ici l'idée que la stabilité des bénéfices dans le futur dépend des propriétés des prédicteurs et dépend très peu du modèle, et encore moins des algorithmes d'optimisation. C'est donc une approche complètement différente.

1. v

2) Voici une figure, comme une courbe d'une fonction d'apprentissage hypothétique.

Êtes-vous sûr que la grille s'arrêtera à l'extremum local 1 ? Ou peut-être 2 ? Ou quoi, 3, comme au milieu ? On ne sait donc pas à l'avance combien il y a d'extrema locaux, il peut y en avoir 100500 ou même plus. C'est pourquoi il est important d'essayer de trouver le plus élevé de tous les extrema locaux que l'algorithme peut atteindre.

 
Maxim Dmitrievsky #:
Qu'est-il proposé de substituer à la perte de logarithme ?

S'il s'agit d'une question pour moi, le profit ou un analogue raisonnable de celui-ci. Profit - pour l'instant, il s'agit de la somme de tous les (close[i] - open[i])*prognos[i], où prognos[i] est la prédiction de la couleur de la bougie et vaut 1 ou -1. Il se peut qu'il faille le modifier d'une manière ou d'une autre pour obtenir un bon gradient et un bon comportement hessien.

 
Aleksey Nikolayev #:

S'il s'agit d'une question pour moi, le profit ou un analogue raisonnable de celui-ci. Profit - pour l'instant, il s'agit de la somme de tous les (close[i] - open[i])*prognos[i], où prognos[i] est la prédiction de la couleur de la bougie et vaut 1 ou -1. Il se peut qu'il faille le modifier d'une manière ou d'une autre pour obtenir un bon gradient et un bon comportement hessien.

En génétique, nous prenons des variables et les maximisons en fonction d'un critère. Ce n'est pas possible ici, en raison de la classification. Il n'y a pas de relation entre le profit et les étiquettes de classe. Au mieux, vous n'obtiendrez rien. C'est pourquoi de tels critères sont placés dans eval_metrics