std.ml

Maschinelles Lernen als native Lyx-Bibliothek ohne externe Abhängigkeiten. Implementiert: Lineare Regression (Gradient Descent, MSE-Loss), Logistische Regression (Sigmoid, Kreuzentropie), k-Nearest-Neighbours (euklidische und Manhattan-Distanz), K-Means-Clustering, Entscheidungsbäume (Gini-Impurity, Entropy, MSE-Kriterium) und Naive Bayes für Textklassifikation. Normalisierung: MinMax und Z-Score. Metriken: MSE, MAE, R², Accuracy.

Einsatzbereiche: Vorhersagemodelle (Preise, Nachfrage), Anomalieerkennung, Textklassifikation, Kundensegmentierung, Empfehlungssysteme — als eingebettete ML-Engine ohne externe Python-Abhängigkeit.

Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne


Konstanten

Name Typ Wert Sichtbarkeit
PROT_RW int64 3 priv
MAP_ANON int64 34 priv
FD_NONE int64 -1 priv

Funktionen

Signatur Sichtbarkeit Beschreibung
SquareF64(x: f64): f64 pub Quadriert einen Float64-Wert
AbsF64(x: f64): f64 pub Betrag eines Float64-Werts
SqrtF64(x: f64): f64 pub Quadratwurzel für Float64
ExpF64(x: f64): f64 pub Exponentialfunktion e hoch x
SigmoidF64(z: f64): f64 pub Sigmoid-Aktivierungsfunktion
LogF64(x: f64): f64 pub Natürlicher Logarithmus
NBLog(x: f64): f64 pub Logarithmus für Naive-Bayes
LinearRegressionInit(): void pub Initialisiert lineare Regression
LinearRegressionWeight(): f64 { return lr_weight; } pub Liest aktuelles Modellgewicht
LinearRegressionBias(): f64 { return lr_bias; } pub Liest aktuellen Bias-Wert
LinearRegressionLoss(): f64 { return lr_loss; } pub Liest letzten MSE-Verlust
LinearRegressionEpochs(): int64 { return lr_epochs; } pub Liest Anzahl Trainings-Epochen
LinearRegressionFit1( pub Trainiert mit einem Datenpunkt
LinearRegressionFit2( pub Trainiert mit zwei Datenpunkten
LinearRegressionFit( pub Trainiert mit Datenpunkten
LinearRegressionFit8( pub Trainiert mit acht Datenpunkten
LinearRegressionFitArrays(xData: int64, yData: int64, n: int64): void pub Trainiert mit Array-Datensatz
LinearRegressionPredict(x: f64): f64 pub Sagt Wert für x vorher
LogisticRegressionInit(): void pub Initialisiert logistische Regression
LogisticRegressionWeight(): f64 { return logr_weight; } pub Liest aktuelles Modellgewicht
LogisticRegressionBias(): f64 { return logr_bias; } pub Liest aktuellen Bias-Wert
LogisticRegressionLoss(): f64 { return logr_loss; } pub Liest letzten Kreuzentropie-Verlust
LogisticRegressionAccuracy(): f64 { return logr_accuracy; } pub Liest Klassifikationsgenauigkeit
LogisticRegressionEpochs(): int64 { return logr_epochs; } pub Liest Anzahl Trainings-Epochen
LogisticRegressionFit1( pub Trainiert mit einem Datenpunkt
LogisticRegressionFit( pub Trainiert mit Datenpunkten
LogisticRegressionFit8( pub Trainiert mit acht Datenpunkten
LogisticRegressionFitArrays(xData: int64, yData: int64, n: int64, learningRate: f64, epochs: int64): void pub Trainiert mit Array-Datensatz
LogisticRegressionPredictProb(x: f64): f64 pub Gibt Klassenwahrscheinlichkeit zurück
LogisticRegressionPredict(x: f64): int64 pub Klassifiziert Eingabewert binär
EuclideanDistance(x1: f64, y1: f64, x2: f64, y2: f64): f64 pub Euklidischer Abstand zweier Punkte
Mean2(a: f64, b: f64): f64 { return (a + b) * 0.5; } pub Arithmetisches Mittel zweier Werte
Variance2(a: f64, b: f64): f64 pub Varianz zweier Werte
StdDev2(a: f64, b: f64): f64 { return SqrtF64(Variance2(a, b)); } pub Standardabweichung zweier Werte
MSE2(y_true0: f64, y_true1: f64, y_pred0: f64, y_pred1: f64): f64 pub MSE-Fehler für zwei Vorhersagen
MAE2(y_true0: f64, y_true1: f64, y_pred0: f64, y_pred1: f64): f64 pub MAE-Fehler für zwei Vorhersagen
R2Score2(y_true0: f64, y_true1: f64, y_pred0: f64, y_pred1: f64): f64 pub R²-Score für zwei Vorhersagen
KNNInit2(k: int64, x0: f64, x1: f64, y0: f64, y1: f64): void pub Initialisiert KNN mit zwei Punkten
KNNPredict2(x: f64): int64 pub KNN-Vorhersage für zwei Klassen
KNNInit(k: int64): void pub Initialisiert KNN-Klassifikator
KNNGetK(): int64 { return knn_k; } pub Liest aktuellen K-Wert
KNNGetNSamples(): int64 { return knn_n; } pub Liest Anzahl Trainings-Samples
KNNFit(features: int64, labels: int64, n: int64, nFeatures: int64): void pub Trainiert KNN mit Datensatz
KNNDistance(a: int64, b: int64, n: int64): f64 pub Euklidische Distanz zweier Vektoren
KNNManhattanDistance(a: int64, b: int64, n: int64): f64 pub Manhattan-Distanz zweier Vektoren
KNNFindNeighbors(query: int64, k: int64): int64 pub Findet k nächste Nachbarn
KNNMajorityVote(neighborIndices: int64, k: int64): int64 pub Bestimmt Klasse per Mehrheitswahl
KNNPredict(query: int64): int64 pub Klassifiziert einen Eingabevektor
KNNScore(features: int64, labels: int64, n: int64): f64 pub Berechnet KNN-Genauigkeit auf Datensatz
KMeansInit2(c0: f64, c1: f64): void pub Initialisiert K-Means mit zwei Zentroiden
KMeansFit2(x0: f64, x1: f64, iterations: int64): void pub Trainiert K-Means mit zwei Punkten
KMeansPredict(x: f64): int64 pub Weist Punkt einem Cluster zu
KMeansCentroid0(): f64 { return km_centroid0; } pub Liest Position von Zentroid 0
KMeansCentroid1(): f64 { return km_centroid1; } pub Liest Position von Zentroid 1
KMeansInit(k: int64): void pub Initialisiert K-Means-Clustering
KMeansGetK(): int64 { return km_k; } pub Liest Anzahl der Cluster
KMeansGetIter(): int64 { return km_iter; } pub Liest Anzahl der Iterationen
KMeansGetInertia(): f64 { return km_inertia; } pub Liest Inertia der Clusterung
KMeansInitCentroids(features: int64, n: int64, nFeatures: int64, k: int64): void pub Setzt initiale Zentroiden-Positionen
KMeansFit(features: int64, n: int64, nFeatures: int64, k: int64): void pub Führt K-Means-Clustering durch
KMeansPredictCluster(point: int64): int64 pub Weist Vektor einem Cluster zu
KMeansGetAssignments(): int64 { return km_assignments; } pub Liest Cluster-Zuweisungen zurück
KMeansGetCentroids(): int64 { return km_centroids; } pub Liest alle Zentroiden-Positionen
KMeansGetClusterSize(clusterIdx: int64): int64 pub Gibt Anzahl Punkte im Cluster
KMeansGetCentroid(idx: int64, featureIdx: int64): f64 pub Liest Feature-Wert eines Zentroiden
MinMaxNorm(x: f64, min: f64, max: f64): f64 pub MinMax-Normalisierung auf [0,1]
MinMaxDenorm(x_norm: f64, min: f64, max: f64): f64 pub Denormalisiert MinMax-Wert
ZScoreNorm(x: f64, mean: f64, stddev: f64): f64 pub Z-Score-Normalisierung
TrainTestSplit(index: int64): int64 pub Teilt Index in Train/Test-Gruppen
NaiveBayesInit(nClasses: int64, vocabSize: int64): void pub Initialisiert Naive-Bayes-Klassifikator
NaiveBayesFit(documents: int64, docLengths: int64, labels: int64, n: int64): void pub Trainiert Naive-Bayes mit Texten
NaiveBayesPredict(docWords: int64, docLen: int64): int64 pub Klassifiziert ein Dokument
NaiveBayesGetWordCount(classIdx: int64, wordIdx: int64): f64 pub Liest Wortzähler je Klasse
NaiveBayesGetClassCount(classIdx: int64): int64 pub Liest Dokumentanzahl je Klasse
NaiveBayesScore(documents: int64, docLengths: int64, labels: int64, n: int64): f64 pub Berechnet Klassifikationsgenauigkeit

Typen

DecisionTreeNode (struct)

Feld Typ
featureIdx int64
threshold f64
left int64
right int64
classLabel int64
nSamples int64
impurity f64
DT_GINI int64 0 pub
DT_ENTROPY int64 1 pub
DT_MSE int64 2 pub
Signatur Sichtbarkeit Beschreibung
DecisionTreeInit(maxDepth: int64, criterion: int64): void pub Initialisiert Entscheidungsbaum
DTGiniImpurity(labels: int64, n: int64): f64 pub Berechnet Gini-Unreinheit
DTEntropyImpurity(labels: int64, n: int64): f64 pub Berechnet Entropie-Unreinheit
DecisionTreeFit(features: int64, labels: int64, n: int64, nFeatures: int64, nClasses: int64): void pub Trainiert Entscheidungsbaum
DecisionTreePredict(featureVector: int64): int64 pub Klassifiziert einen Merkmalsvektor
AccuracyScore(y_true: int64, y_pred: int64, n: int64): f64 pub Berechnet Klassifikationsgenauigkeit
MeanSquaredError(y_true: int64, y_pred: int64, n: int64): f64 pub Berechnet mittleren quadratischen Fehler
MeanAbsoluteError(y_true: int64, y_pred: int64, n: int64): f64 pub Berechnet mittleren absoluten Fehler
R2Score(y_true: int64, y_pred: int64, n: int64): f64 pub Berechnet R²-Bestimmtheitsmaß