Ich habe gerade Python abgeholt, um maschinelle Lernaufgaben zu implementieren, um das Wissen, das ich im Unterricht gesammelt habe, zu üben.scipy.interpolate.lagrange schlägt bei einigen Daten fehl
Ich bin neu in Python, daher habe ich gerade spicy-Bibliothek entdeckt, die eine Reihe von sehr nützlichen mathematischen Tools darunter Lagrange-Interpolation für 1D-Polynome mit interpolate.lagrange
bietet.
Ich versuche, diese Funktion zu verwenden, um eine Gleichung zu haben, die ich danach verwenden werde. Obwohl ich folgende Fehlermeldung bin immer:
/usr/lib/python2.7/dist-packages/numpy/lib/polynomial.py:1186: RuntimeWarning: divide by zero encountered in true_divide return poly1d(self.coeffs/other) /usr/lib/python2.7/dist-packages/numpy/lib/polynomial.py:681: RuntimeWarning: invalid value encountered in double_scalars
Code:
import sys
import math
import os
import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt
x = []
y = []
file = open(os.getcwd()+"/practice/train.txt", "r")
for line in file.read().split():
x.append(float(line.split(',')[0]))
y.append(float(line.split(',')[1]))
poly = interpolate.lagrange(x, y)
print poly(1.5)
Trainingsdatenmenge: https://s3.amazonaws.com/hr-testcases/399/assets/trainingdata.txt
Was ich versucht habe, so weit: Ich verstanden, dass einige Zeilen in Daten resultieren i bis zur Null-Teilung. Verwenden von Divide and Conquer auf dem Dataset; das Löschen einiger Zeilen würde es funktionieren lassen, aber ich werde die Genauigkeit in einer Weise verlieren, dass poly(x)
ein nicht genaues y (f (x)) druckt.
Hinweis: Ich habe die Linie, die die Zero Division auslöst, immer noch nicht verfolgt.
Jede Erklärung würde sehr geschätzt.
Die Daten, die Sie ist nicht vorhanden bestellt und das Ergebnis sieht aus wie eine abschnittsweise lineare Funktion, das nicht ideal mit Polynome interpoliert. Auch die Lagrange-Interpolationsroutine erwähnt "Warnung: Diese Implementierung ist numerisch instabil. Erwarten Sie nicht, dass Sie mehr als ungefähr 20 Punkte verwenden können, selbst wenn sie optimal gewählt sind.". Können Sie erwähnen, warum Sie das gewählt haben? –