Comment simplifier l'ajustement polymorphe restreint en python

Coupe polypoly facile

Si vous souhaitez adapter des données à un polypole, mais que vous souhaitez que certains points de données passent, voici un moyen simple de le faire.

Aperçu du code

Lorsque vous utilisez le polyfit de numpy, vous pouvez spécifier le poids avec l'option w, augmentez donc le poids du point que vous souhaitez corriger. Voici un exemple où les données ne passent pas par l'origine, mais vous voulez les forcer à travers l'origine lors de l'ajustement. Les données sont ajoutées aux données d'origine x, y avec te, numpy.append, le poids de ce point est défini sur 1e3 et les autres sur 1.

Exemple de code

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)

Résultat de l'ajustement

Si vous ne limitez rien, vous ne passerez pas par l'origine, mais si vous avez des restrictions, vous pouvez voir qu'il est passé par l'origine.

qiita_polyfitlimited.png

Puisqu'il ne s'agit pas d'un ajustement conditionnel strict, une petite valeur reste, et non zéro, à l'origine. Si vous voulez être exactement 0 à l'origine, vous devez écrire vous-même la fonction d'ajustement restreint. Dans ce cas, Comment faire l'ajustement avec des paramètres restreints en python Prière de se référer à.

Recommended Posts

Comment simplifier l'ajustement polymorphe restreint en python
Comment développer en Python
[Python] Comment faire PCA avec Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment gérer le japonais avec Python
[Introduction à Python] Comment utiliser la classe en Python?
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
[Itertools.permutations] Comment créer une séquence en Python
Comment utiliser BigQuery en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
Comment utiliser les expressions régulières en Python
Comment afficher Hello World en python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
Comment utiliser la bibliothèque C en Python
Comment recevoir des arguments de ligne de commande en Python
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Comment installer Python
Comment générer une séquence en Python et C ++
Comment incorporer des variables dans des chaînes python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment implémenter la mémoire partagée en Python (mmap.mmap)
Comment créer un fichier JSON en Python
Comment installer python
Résumé de l'utilisation de MNIST avec Python
Comment spécifier la version TLS dans les requêtes python
Comment notifier les canaux Discord en Python
Comment obtenir les fichiers dans le dossier [Python]
Comment utiliser tkinter avec python dans pyenv
Comment exécuter LeapMotion avec Python non-Apple
[Python] Comment dessiner un histogramme avec Matplotlib
Comment générer "Ketsumaimo" en standard en Python
Comment gérer le type datetime dans sqlite3 de python
Comment apporter des modifications à l'interpréteur Python dans Pycharm
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Comment supprimer les éléments en double dans la liste Python 3
Comment récupérer la nième plus grande valeur en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Comment convertir / restaurer une chaîne avec [] en python
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
Comment écrire une concaténation de chaînes sur plusieurs lignes en Python
Comment faire un calcul de hachage avec Salt en Python
Comment mesurer le temps de traitement avec Python ou Java
Comment connaître le répertoire actuel en Python dans Blender