k-Means

Der k-Means-Algorithmus gehört zu den unsupervised Lernmethoden und wird zur Clusteranalyse verwendet. k-Means versucht, eine Stichprobe in k-Cluster gleicher Varianz aufzuteilen, wobei die Anzahl der Cluster k vorab bekannt sein muss. Der Algorithmus lässt sich gut auf eine große Anzahl von Stichproben skalieren und ist einer der am häufigsten eingesetzten Clustering-Verfahren.

Unsupervised heißt, dass der k-Means nicht mit annotierten (gelabelten) Daten trainiert werden muss. Diese Eigenschaft macht den Algorithmus sehr populär. Sobald das Training ausgeführt wurde und die Cluster somit definiert sind, können in der Inferenz neue Daten den bereits bekannten Clustern zugeordnet werden.

Unterstützte Eigenschaften

ONNX-Support

Bislang wird nur der Export aus Scikit-learn unterstützt. Die Angabe des ONNX-Custom Attributes Key: „sklearn_model“ value: „KMeans“ ist für k-Means-Modelle notwendig, damit der Konvertierungsschritt in XML und BML funktioniert.

k-Means 1:

Einschränkung

Bei Klassifikationsmodellen wird nur der Ausgang der Labels in der SPS abgebildet. Die Scores/Probabilities sind in der SPS nicht verfügbar.

Ein Beispiel für den Export einer ONNX-Datei aus Scikit-learn zur Nutzung in TwinCAT finden Sie hier: ONNX-Export eines k-Means.

Unterstützte Datentypen

Es ist zu unterscheiden zwischen „supported datatype“ und „preferred datatype“. Der preferred datatype entspricht der Präzision der Ausführungs-Engine.

Der preferred datatype ist floating point 64 (E_MLLDT_FP64-LREAL).

Bei Verwendung eines supported datatype wird eine effiziente Typ-Konvertierung automatisch in der Bibliothek durchgeführt. Durch die Typ-Konvertierung kann es zu minimalen Performance-Einbußen kommen.

Eine Liste der supported datatypes finden Sie unter ETcMllDataType.