Référence des fonctions
Equarith 1.0.3 cherche dans un catalogue typé d’opérations numériques. Chaque opération possède un coût de complexité par défaut et un domaine numérique. Un candidat qui produit une valeur non finie sur une ligne requise est rejeté, sauf si l’opération choisie définit explicitement un comportement protégé.
Les identifiants ci-dessous sont également les noms canoniques utilisés dans les formules analysées. Les coûts sont ceux de la v1.0.3 ; vous pouvez les modifier avant la recherche.
Sélection recommandée par défaut
Sélectionnez Valeurs par défaut dans le catalogue de fonctions pour appliquer cet ensemble prudent recommandé :
add,subtractetmultiply;safe_div;squareetcube;sinetcos;safe_logetsafe_sqrt;abs.
Lors du chargement initial des capacités, la sélection courante peut comprendre toutes les fonctions non historiques. Valeurs par défaut la réduit volontairement à la liste ci-dessus. Ne conservez les autres fonctions que si elles sont cohérentes avec les variables, les unités et la relation attendue.
Arithmétique
add(a,b), coût 1 : addition ; opérandes et résultat doivent être finis.subtract(a,b), coût 1 : soustraction.multiply(a,b), coût 1 : multiplication ; un dépassement rejette le candidat.divide(a,b), coût 2 : division stricte ;|b|doit être supérieur à1e-12.safe_div(a,b), coût 3 : renvoie normalementa / b, mais renvoiealorsque|b| <= 1e-12.aq(a,b), coût 4 : quotient analytiquea / sqrt(1 + b²), sans singularité pour des entrées finies.
La division protégée évite une valeur indéfinie, mais change le sens mathématique près de zéro. Vérifiez que cette branche est défendable dans le domaine étudié.
Puissances
square(x), coût 2 :x².cube(x), coût 3 :x³.inv(x), coût 2 :1/x; l’entrée doit être non nulle.pow(x,n), coût 4 : puissance réelle. Les exposants générés par la recherche sont des entiers non nuls contraints à[-3, 3]; le résultat doit être un réel fini.
Fonctions trigonométriques
sin(x)etcos(x), coût 2 chacune.tan(x), coût 3 ; un résultat non fini rejette le candidat.asin(x)etacos(x), coût 3 chacune ;xdoit appartenir à[-1, 1].atan(x), coût 3.atan2(y,x), coût 3 : angle tenant compte du quadrant.sinc(x), coût 4 :sin(x)/xavecsinc(0) = 1.
Les arguments sont en radians. Un ajustement trigonométrique peut extrapoler périodiquement bien au-delà de toute justification physique.
Fonctions hyperboliques
sinh(x),cosh(x)ettanh(x), coût 3 chacune.asinh(x), coût 4.acosh(x), coût 4 ;x >= 1.atanh(x), coût 4 ;-1 < x < 1.
Un dépassement ou une violation de domaine rejette le candidat.
Exponentielles, logarithmes et racines
exp(x), coût 3 ; un dépassement rejette le candidat.expm1(x), coût 3 : calcul précis deexp(x) - 1près de zéro.safe_exp(x), coût 4 : calcule l’exponentielle après avoir bornéxdans[-60, 60].log(x), coût 3 : logarithme naturel pourx > 0.log2(x)etlog10(x), coût 4 chacune, pourx > 0.log1p(x), coût 3 : calcul précis delog(1 + x)pourx > -1.safe_log(x), coût 4 :log(abs(x) + 1e-12).sqrt(x), coût 3, pourx >= 0.cbrt(x), coût 3 : racine cubique réelle.safe_sqrt(x), coût 4 :sqrt(abs(x)).
Les variantes sûres produisent une valeur finie sur un domaine plus large, mais les valeurs absolues, bornes et termes epsilon modifient leur sens. Préférez une opération stricte lorsque la contrainte de domaine est elle-même pertinente et respectée par les données.
Fonctions de forme et d’agrégation
abs(x), coût 2.relu(x), coût 2 :max(0,x).sigmoid(x), coût 4 : transition logistique stable dans[0,1].softplus(x), coût 4 :log(1 + exp(x))calculé de manière stable.gaussian(x), coût 4 :exp(-x²).ceil(x)etfloor(x), coût 2 chacune.round(x), coût 3 : les valeurs exactement à mi-chemin sont arrondies en s’éloignant de zéro.sign(x), coût 2.min(a,b)etmax(a,b), coût 2 chacune.hypot(a,b), coût 3 : calcul desqrt(a² + b²)résistant aux dépassements.clamp(x,lower,upper), coût 3 ; la borne basse ne doit pas dépasser la borne haute.
Les opérations discontinues comme l’arrondi, le signe, min, max et clamp peuvent décrire des régimes, mais aussi créer des frontières instables.
Fonctions spéciales
fmod(a,b), coût 4 : reste en virgule flottante ;bdoit être non nul.tgamma(x), coût 4 : fonction gamma ; ses pôles et dépassements sont invalides.lgamma(x), coût 4 : logarithme de la valeur absolue de gamma ; ses pôles sont invalides.erf(x), coût 4 : fonction d’erreur.erfc(x), coût 4 : fonction d’erreur complémentaire avec calcul stable dans la queue gaussienne.
Fonctions logiques et conditionnelles
Ces opérations renvoient des nombres et permettent de construire des formules par morceaux :
smaller(a,b)etgreater(a,b), coût 4 : renvoient 0 ou 1.equal(a,b)etdifferent(a,b), coût 4 : utilisent l’égalité exacte en virgule flottante et renvoient 0 ou 1.logical_or(a,b)etlogical_and(a,b), coût 4 : zéro est faux et toute valeur non nulle est vraie.if_else(condition,when_true,when_false), coût 5 : choisit le deuxième opérande si la condition est non nulle, sinon le troisième.
L’égalité exacte est rarement robuste pour des mesures continues. Une comparaison à un seuil est généralement plus significative.
Fonctions d’historique
Les fonctions d’historique sont désactivées par défaut et utilisent la chronologie des lignes source d’origine, même lorsque l’entraînement est séparé aléatoirement ou évalué sur des échantillons progressifs. rolling_std et rolling_slope ont un coût de 5 ; toutes les autres fonctions historiques ci-dessous ont un coût de 4.
delay(expr,N): valeur de l’expressionNlignes source avant la ligne actuelle.moving_average(expr,N): moyenne desNlignes précédentes, sans inclure la ligne actuelle.difference(expr,N): valeur actuelle moins celle situéeNlignes auparavant.rolling_std(expr,N): écart-type de population sur lesNlignes précédentes.rolling_min(expr,N)etrolling_max(expr,N): extrême sur lesNlignes précédentes.rolling_slope(expr,N): pente des moindres carrés sur lesNlignes précédentes ;Ndoit valoir au moins 2.decay(expr,r): somme pondérée exponentiellement de la valeur actuelle et des précédentes avec les puissances der, tronquée à la taille maximale de l’historique.ema(expr,r): moyenne pondérée exponentiellement et normalisée de la valeur actuelle et des précédentes.
Les tailles de fenêtre sont des entiers de 1 à la taille maximale de l’historique, configurable entre 1 et 1 000. Les taux de décroissance vérifient 0 < r < 1.
Les premières lignes de chauffe et toute ligne dont l’historique requis est invalide sont exclues avant la séparation entraînement/test. Une grande taille maximale d’historique peut donc réduire fortement les données admissibles.
Autoriser la cible dans les fonctions d’historique rend possibles les formules autorégressives. Une telle formule peut être valable pour une prédiction à un pas si les cibles observées précédentes sont disponibles, mais invalide dans un déploiement qui n’en dispose pas.
Les expressions historiques fonctionnent pour l’évaluation d’un jeu de données, les projets et les checkpoints compatibles. Elles sont indisponibles pour les points personnalisés sans ordre et ne peuvent pas être exportées sous forme de source exécutable autonome dans la v1.0.3. Les exports de présentation comme le texte de formule et LaTeX restent disponibles.
Coûts de complexité
Un coût exprime une préférence d’interprétabilité, pas seulement un coût d’exécution. La complexité de chaque formule contribue directement au front de Pareto. Augmenter le coût d’une fonction place ses formules à une complexité supérieure ; le diminuer facilite leur conservation.
Utilisez un schéma de coûts cohérent pendant toute une expérience. Leur modification peut réordonner le front de Pareto et rend un checkpoint existant incompatible.
Pour les autres réglages, consultez Configurer une recherche. Pour les restrictions du code généré, consultez Exporter les données et les formules.