F_VN_CreateKnnModel

F_VN_CreateKnnModel 1:

Create a k-nearest neighbors model of the specified type. The initial reference count is set to one if a new model is created and kept, otherwise. Models of this type support on-line training (sample by sample) and retraining. Predictions can only be scalar.

Syntax

Definition:

FUNCTION F_VN_CreateKnnModel : HRESULT
VAR_INPUT
    ipMlModel : Reference To ITcVnMlModel;
    eKnnType  : ETcVnKnn;
    nK        : UDINT;
    hrPrev    : HRESULT;
END_VAR

F_VN_CreateKnnModel 2: Inputs

Name

Type

Description

ipMlModel

Reference To ITcVnMlModel

Returns the created model (Non-zero interface pointers are reused.)

eKnnType

ETcVnKnn

k-nearest neighbors model type

nK

UDINT

Parameter k used for prediction (number of considered neighbors)

hrPrev

HRESULT

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

F_VN_CreateKnnModel 3: Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_CreateKnnModel erstellt ein K-Nearest-Neighbor (KNN) Modell.

K-Nearest-Neighbor-Modelle

Beim Training von K-Nearest-Neighbor-Modellen werden alle Trainingssamples 1:1 im Modell gespeichert. Zum Verständnis hilft die Vorstellung der Datenpunkte innerhalb eines mehrdimensionalen Raums (entsprechend der Dimensionalität der Samples). Für die Prädiktion wird eine Anzahl nK von Datenpunkten genutzt, die dem Eingangssample am nächsten sind (euklidische Distanz). Diese Datenpunkte werden „nächste Nachbarn“ genannt. Alle anderen Datenpunkte werden bei der Prädiktion ignoriert. Das Prädiktionsergebnis wird aus allen nächsten Nachbarn berechnet, wobei diese unabhängig von der tatsächlichen Distanz zum Eingangssample gleich gewichtet sind.

Parameter

Modell

In dem Interface Pointer ipMlModel wird das erstellte Modell zurückgegeben.

Modell-Typ

eKnnType gibt an, ob das Modell als Klassifikator (TCVN_KNN_CLASSIFIER), als Anomalie-Detektion (TCVN_KNN_NOVELTY_DETECTOR) oder als Regressor (TCVN_KNN_REGRESSOR) genutzt wird.

Anzahl genutzter Nachbarn

nK gibt an, wie viele Datenpunkte bei der Prädiktion als nächste Nachbarn genutzt werden. Für die Anomalie-Detektion ist nK irrelevant, weil dabei nur der eine nächste Nachbar benötigt wird. Daher sollte in diesem Fall der Wert 1 verwendet werden.

Anwendung

Ein K-Nearest-Neighbor-Modell für die Klassifikation mittels 5 nächster Nachbarn wird z.B. so erstellt:

hr := F_VN_CreateKnnModel(
    ipMlModel   := ipMlModel,
    eKnnType    := TCVN_KNN_CLASSIFIER,
    nK          := 5,
    hrPrev      := hr);

Required License

TC3 Vision Machine Learning

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1. 4024.44 or later

PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision