[PYTHON] Sélection des données de mesure

Qu'est-ce que c'est

Vous êtes ingénieur en inspection de fabrication. J'ai 100 données de mesure obtenues à partir d'un certain capteur. En raison de diverses circonstances, je voudrais montrer que ces données de mesure ** "peuvent varier" **. Je veux maximiser la dispersion en choisissant 10 sur 100. Cependant, je veux dire que le capteur est normal, donc je veux le rendre ** "la valeur moyenne est exacte" **.

Essayez-le avec Python

Création de données de mesure

Créez des données de mesure avec des nombres aléatoires.

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np, pandas as pd
np.random.seed(1)
données de mesure= np.random.normal(50,1,100)
plt.hist(données de mesure)
print('écart-type',données de mesure.std())
>>>
Écart type 0.885156213832

image

Résoudre avec l'optimisation mathématique

Maximisez la distribution. Normalement, il est difficile à résoudre car il s'agit d'une optimisation quadratique entière. En supposant que la moyenne est exacte, $ (valeur-moyenne) ^ 2 $ est une valeur fixe, donc le modèle est une optimisation linéaire ou mixte.

from pulp import *
from ortoolpy import addbinvars
Nombre de sélections= 10
eps = 0.0001

m = LpProblem(sense=LpMaximize)
x = addbinvars(len(données de mesure))
m += lpDot((données de mesure-50)**2, x)
m += lpSum(x) ==Nombre de sélections
e = lpDot(données de mesure, x) /Nombre de sélections
m += 50-eps <= e
m +=           e <= 50+eps
m.solve()
%time m.solve() #Solution
r = np.vectorize(value)(x).astype(int) #résultat
print(LpStatus[m.status])
>>>
Wall time: 181 ms
Optimal
print('moyenne',données de mesure[r>0].mean())
print('écart-type',données de mesure[r>0].std())
>>>
49 en moyenne.9999119632
Écart type 1.82811635001

La moyenne était exacte et l'écart type était plus du double des données d'origine.

c'est tout

Recommended Posts

Sélection des données de mesure
Pré-traitement des données préfectorales
Mesure du temps d'exécution
Analyse des données de mesure ①-Mémorandum de montage scipy-
Analyse des données de mesure (2) -Hydrobacter et raccord, recommandation lmfit-
Visualisation des données par préfecture
Transformée de Fourier des données brutes
À propos de la gestion des données d'Anvil-App-Server
Prédiction de probabilité de données déséquilibrées
Différenciation des données de séries chronologiques (discrètes)
10 sélections d'extraction de données par pandas.DataFrame.query
Animation des géodonnées par geopandas
Recommandation d'analyse des données à l'aide de MessagePack
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
Traitement des données 2 Analyse de divers formats de données
Sélection de l'interface graphique PyOpenGL et séparation du dessin et de l'interface graphique
Expliquer le mécanisme de la classe de données PEP557
Bases de la théorie de l'information quantique: compression de données (1)
100 traitement du langage knock-91: Préparation des données d'analogie
Obtenez la liste des colonnes et la liste des données de CASTable
Acquisition des données de croissance des plantes Acquisition des données des capteurs
Séparation de la conception et des données dans matplotlib
Conversion des données de temps en notation 25 heures
Recommandation d'Altair! Visualisation des données avec Python
Visualisez les données d'exportation du journal Piyo
Exemple de traitement efficace des données avec PANDAS
Bases de la théorie de l'information quantique: compression de données (2)
[Introduction au Data Scientist] Bases de Python ♬
Connaissance de l'utilisation de l'API de données Aurora Severless
Un mémorandum de problème lors du formatage des données