scipy.cluster.vq.

vq#

scipy.cluster.vq.vq(obs, code_book, check_finite=True)[Quelle]#

Weist Codes aus einem Codebuch Beobachtungen zu.

Weist jeder Beobachtung einen Code aus einem Codebuch zu. Jeder Beobachtungsvektor im 'M' mal 'N' obs-Array wird mit den Zentroiden im Codebuch verglichen und der Code des nächstgelegenen Zentroiden zugewiesen.

Die Merkmale in obs sollten Einheitsvarianz aufweisen, was durch das Durchlaufen der `whiten`-Funktion erreicht werden kann. Das Codebuch kann mit dem k-Means-Algorithmus oder einem anderen Kodierungsalgorithmus erstellt werden.

Parameter:
obsndarray

Jede Zeile des 'M' x 'N' Arrays ist eine Beobachtung. Die Spalten sind die "Merkmale", die während jeder Beobachtung gesehen wurden. Die Merkmale müssen zuerst mit der `whiten`-Funktion oder etwas Äquivalentem aufgehellt werden.

code_bookndarray

Das Codebuch wird normalerweise mit dem k-Means-Algorithmus generiert. Jede Zeile des Arrays enthält einen anderen Code, und die Spalten sind die Merkmale des Codes.

#              f0  f1  f2  f3
code_book = [[ 1., 2., 3., 4.],  #c0
             [ 1., 2., 3., 4.],  #c1
             [ 1., 2., 3., 4.]]  #c2
check_finitebool, optional

Ob überprüft werden soll, ob die Eingabematrizen nur endliche Zahlen enthalten. Deaktivieren kann die Leistung verbessern, kann aber zu Problemen (Abstürze, Nicht-Terminierung) führen, wenn die Eingaben Unendlichkeiten oder NaNs enthalten. Standard: True

Rückgabe:
codendarray

Ein Array der Länge M, das den Index des Codebuchs für jede Beobachtung enthält.

distndarray

Die Verzerrung (Distanz) zwischen der Beobachtung und ihrem nächstgelegenen Code.

Hinweise

vq unterstützt experimentell Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte testen Sie diese Funktionen, indem Sie eine Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen aus Backend und Gerät (oder anderen Fähigkeiten) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

⚠️ kein JIT

Dask

⚠️ berechnet Graph

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Beispiele

>>> import numpy as np
>>> from scipy.cluster.vq import vq
>>> code_book = np.array([[1., 1., 1.],
...                       [2., 2., 2.]])
>>> features  = np.array([[1.9, 2.3, 1.7],
...                       [1.5, 2.5, 2.2],
...                       [0.8, 0.6, 1.7]])
>>> vq(features, code_book)
(array([1, 1, 0], dtype=int32), array([0.43588989, 0.73484692, 0.83066239]))