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.
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.