So vereinfachen Sie die eingeschränkte Polypoly-Anpassung in Python

Einfache Polypoly-Passform

Wenn Sie Daten mit einem Polypoly versehen möchten, aber bestimmte Datenpunkte passieren sollen, ist dies eine einfache Möglichkeit.

Codeübersicht

Wenn Sie das Polyfit von numpy verwenden, können Sie das Gewicht mit der Option w angeben. Erhöhen Sie also das Gewicht des Punkts, den Sie korrigieren möchten. Hier ist ein Beispiel, in dem die Daten nicht durch den Ursprung geleitet werden, sondern beim Anpassen durch den Ursprung erzwungen werden sollen. Daten werden zu den Originaldaten x, y mit te, numpy.append hinzugefügt, das Gewicht dieses Punktes wird auf 1e3 gesetzt und die anderen werden auf 1 gesetzt.

Beispielcode

qiita_polyfit_limited.py



#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

x = np.array([-10, -8,-6,-4,-2,0,2,4,6,8,10])
y = np.array([-15,-10,-3,-2,-1,3,1,3,4,8,12])
weight = np.ones(len(x))
npoly=4

x_add = np.append(x,0)
y_add = np.append(y,0)
weight_add = np.append(weight,1e3)

coef=np.polyfit(x, y, npoly, w=weight)
yfit = np.poly1d(coef)(x)         

coef_add=np.polyfit(x_add, y_add, npoly, w=weight_add)
yfit_add = np.poly1d(coef_add)(x)         

F = plt.figure(figsize=(7,7))
ax = plt.subplot(1,1,1)

plt.errorbar(x,y,fmt="o",label="data",alpha=0.8,ms=3)
plt.errorbar(x,yfit,fmt="--",label="fit (no limit), order = "  +str(npoly),alpha=0.8,ms=3)
plt.errorbar(x,yfit_add,fmt="--",label="fit (fixed at 0,0), order = "  +str(npoly),alpha=0.8,ms=3)

plt.grid(linestyle='dotted',alpha=0.5)
plt.legend(numpoints=1, frameon=False, loc="best") 

outfile = "qiita_polyfitlimited.png "
plt.savefig(outfile)

Ergebnis anpassen

Wenn Sie nichts einschränken, werden Sie den Ursprung nicht durchlaufen. Wenn Sie jedoch Einschränkungen haben, können Sie sehen, dass er den Ursprung durchlaufen hat.

qiita_polyfitlimited.png

Da es sich nicht um eine strikte bedingte Anpassung handelt, bleibt am Ursprung ein kleiner Wert, nicht Null. Wenn Sie am Ursprung genau 0 sein möchten, müssen Sie die Funktion für eingeschränkte Anpassung selbst schreiben. In diesem Fall Anpassen mit eingeschränkten Parametern in Python Bitte beziehen Sie sich auf.

Recommended Posts

So vereinfachen Sie die eingeschränkte Polypoly-Anpassung in Python
Wie man in Python entwickelt
[Python] Wie man PCA mit Python macht
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
[Itertools.permutations] So löschen Sie eine Sequenz in Python
So arbeiten Sie mit BigQuery in Python
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
So überprüfen Sie die Version von opencv mit Python
So wechseln Sie die Python-Version in Cloud9
So passen Sie den Bildkontrast in Python an
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus
Verwendung regulärer Ausdrücke in Python
So zeigen Sie Hello World in Python an
Verwendung ist und == in Python
Wie schreibe ich Ruby to_s in Python
Verwendung der C-Bibliothek in Python
So empfangen Sie Befehlszeilenargumente in Python
[REAPER] Wie man Reascript mit Python spielt
So löschen Sie einen Taple in einer Liste (Python)
So installieren Sie Python
So generieren Sie eine Sequenz in Python und C ++
Einbetten von Variablen in Python-Strings
Verwendung der Python-Bildbibliothek in der Python3-Serie
So implementieren Sie Shared Memory in Python (mmap.mmap)
So erstellen Sie eine JSON-Datei in Python
So installieren Sie Python
Zusammenfassung der Verwendung von MNIST mit Python
So geben Sie die TLS-Version in Python-Anforderungen an
So benachrichtigen Sie Discord-Kanäle in Python
So erhalten Sie die Dateien im Ordner [Python]
Wie man tkinter mit Python in Pyenv benutzt
So führen Sie LeapMotion mit Nicht-Apple Python aus
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So geben Sie "Ketsumaimo" standardmäßig in Python aus
Wie man mit dem Datum / Uhrzeit-Typ in Pythons SQLite3 umgeht
So nehmen Sie Python Interpreter-Änderungen in Pycharm vor
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
So entfernen Sie doppelte Elemente in der Python 3-Liste
So rufen Sie den n-ten größten Wert in Python ab
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
So konvertieren / wiederherstellen Sie einen String mit [] in Python
So erhalten Sie den Variablennamen selbst in Python
So ermitteln Sie die Anzahl der Stellen in Python
So schreiben Sie in Python die Verkettung von Zeichenfolgen in mehrere Zeilen
So führen Sie eine Hash-Berechnung mit Salt in Python durch
So messen Sie die Verarbeitungszeit mit Python oder Java
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen