J'essaie d'écrire un code Python très basique qui sort un nombre basé sur un échantillon d'entrées et de sorties. Donc par exemple si :
x = [1, 2, 3, 4, 5]
y = [2, 5, 10, 17, 26]
z = np.interp(7, xp, yp)
print(z) ##expected 50, actual was 26
J'aimerais pouvoir trouver une fonction de meilleur ajustement qui associe ces valeurs afin de pouvoir lui passer une autre valeur x et obtenir une approximation approximative de la valeur y. J'ai essayé de lire sur scipy.optimize.curve_fit
mais pour autant que je sache, ce n'est pas ce que je devrais utiliser car cela utilise une fonction prédéfinie que je n'ai pas dans mon cas.
Notez que je n'ai aucune restriction quant à savoir si la fonction doit être linéaire/périodique/quadratique, etc. parce que mes valeurs varieront, mais je suppose que la plupart des fonctions doivent être linéaires.
J'ai aussi essayé numpy.interp
mais je n'obtiens que la dernière valeur dans le y
pour n'importe quel x
J'entre.
EDITAR: Après avoir essayé la réponse de Cleb et l'avoir comparée avec l'approche originale de kennytm, voici mes conclusions. La technique la plus précise ici devrait être la fonction qui est la plus proche de la ligne rouge. La ligne verte représente l'approche de kennytm (la régression quadratique est la plus précise que j'ai essayée) et la ligne noire représente la technique de Cleb (UnivariateSpline). Il semble que, puisque UnivariateSpline n'a aucune connaissance préalable du modèle sous-jacent, il s'adapte un peu mieux aux valeurs de la fonction, ce qui le rend un peu plus précis.