====== std.ml_full ====== Erweiterte Machine-Learning-Algorithmen und Modelle: Deep Learning Layers, Convolutional Networks, Rekurrente Netze (LSTM), Gradient Boosting und Ensemble-Methoden. Aufbauend auf ''std.ml'' mit schwergewichtigen Implementierungen für Produktionseinsatz. → [[lyx_-_programmiersprache:units:ml|std.ml]] · [[lyx_-_programmiersprache:units|Standard Library]] · [[lyx_-_programmiersprache:units:graphdb|std.graphdb]] > **Die Doppel von ''ExpF64'', ''LogF64'' und ''SqrtF64'' sind entfernt** ([[https://github.com/SEOLizer/LyX-Compiler/issues/1572|#1572]] behoben). Die Unit importiert jetzt ''std.math''; wer sie mitimportiert, bekommt dieselben Werte wie überall sonst — mit 1.1.2E nachgemessen: > > LogF64(100) = 4.605170 ExpF64(1) = 2.718281 > > Vorher lieferte ''LogF64'' hier **immer 0** und ''ExpF64'' eine grobe Näherung, ohne jede Meldung — und zwar im ganzen Programm, weil die Namen im flachen Namensraum kollidierten. ---- ===== Typen ===== ==== DecisionTreeNode (struct) ==== ^ Feld ^ Typ ^ | ''featureIdx'' | ''int64'' | | ''threshold'' | ''f64'' | | ''left'' | ''int64'' | | ''right'' | ''int64'' | | ''classLabel'' | ''int64'' | | ''nSamples'' | ''int64'' | | ''impurity'' | ''f64'' | | ''featureImportance'' | ''f64'' | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''SquareF64(x: f64): f64'' | pub | — | | ''SqrtF64(x: f64): f64'' | pub | SSE2-optimized square root (uses sqrtsd when available) Currently falls back to Newton's method | | ''SqrtF64SSE(x: f64): f64'' | pub | — | | ''ExpF64(x: f64): f64'' | pub | Exponential function - simple approximation exp(x) ≈ 1 + x for small x, use lookup for common values | | ''SigmoidF64(z: f64): f64'' | pub | Sigmoid function: σ(z) = 1 / (1 + e^(-z)) Use piecewise approximation | | ''LogF64(x: f64): f64'' | pub | Log (natural logarithm) - inverse of exp | | ''LinearRegressionInit(): void'' | pub | Initialize model - with small non-zero weights | | ''LinearRegressionWeight(): f64'' | pub | Get weight | | ''LinearRegressionBias(): f64'' | pub | Get bias | | ''LinearRegressionLoss(): f64'' | pub | Get last loss | | ''LinearRegressionEpochs(): int64'' | pub | Get epochs | | ''LinearRegressionPredict(x: f64): f64'' | pub | Predict single value (linear) | | ''LogisticRegressionInit(): void'' | pub | Initialize logistic regression model | | ''LogisticRegressionWeight(): f64'' | pub | Get weight | | ''LogisticRegressionBias(): f64'' | pub | Get bias | | ''LogisticRegressionLoss(): f64'' | pub | Get last loss (binary cross-entropy) | | ''LogisticRegressionAccuracy(): f64'' | pub | Get accuracy | | ''LogisticRegressionEpochs(): int64'' | pub | Get epochs | | ''LogisticRegressionPredictProb(x: f64): f64'' | pub | Predict probability (sigmoid output) Returns value between 0 and 1 | | ''LogisticRegressionPredict(x: f64): int64'' | pub | Predict class (binary: 0 or 1) Returns 0 if prob < 0.5, else 1 | | ''LinearRegressionFitDataFrame(df: int64, xCol: int64, yCol: int64): void'' | pub | df: DataFrame pointer xCol: column name for feature (int64 pointer) yCol: column name for target (int64 pointer) | | ''LinearRegressionDataPointCount(): int64'' | pub | Get number of data points from last DataFrame fit | | ''LogisticRegressionFitDataFrame(df: int64, xCol: int64, yCol: int64, learningRate: f64, epochs: int64): void'' | pub | DataFrame-based Logistic Regression (arbitrary data points) Train Logistic Regression from DataFrame | | ''LinearRegressionFitArrays(xData: int64, yData: int64, n: int64): void'' | pub | xData: pointer to f64 array (x values) yData: pointer to f64 array (y values) n: number of data points | | ''LogisticRegressionFitArrays(xData: int64, yData: int64, n: int64, learningRate: f64, epochs: int64): void'' | pub | Array-based Logistic Regression (arbitrary data points) Train Logistic Regression from f64 arrays | | ''KNNInit(k: int64): void'' | pub | Initialize k-NN model k: number of neighbors (usually odd: 1, 3, 5, 7...) | | ''KNNGetK(): int64'' | pub | Get k value | | ''KNNGetNSamples(): int64'' | pub | Get number of training samples | | ''KNNFit(features: int64, labels: int64, n: int64, nFeatures: int64): void'' | pub | labels: pointer to labels array (n labels) n: number of training samples nFeatures: number of features per sample | | ''KNNDistance(a: int64, b: int64, n: int64): f64'' | pub | Euclidean distance between two feature vectors | | ''KNNDistanceSSE(a: int64, b: int64, n: int64): f64'' | pub | SSE-optimized Euclidean distance (future: uses AVX) | | ''KNNManhattanDistance(a: int64, b: int64, n: int64): f64'' | pub | Manhattan distance (L1) | | ''KNNFindNeighbors(query: int64, k: int64): int64'' | pub | Find k nearest neighbors (indices array) | | ''KNNMajorityVote(neighborIndices: int64, k: int64): int64'' | pub | Majority vote | | ''KNNWeightedVote(neighborIndices: int64, query: int64, k: int64): int64'' | pub | Weighted majority vote | | ''KNNPredict(query: int64): int64'' | pub | Predict class | | ''KNNPredictProba(query: int64, nClasses: int64): int64'' | pub | Predict probabilities | | ''KNNCrossValidation(features: int64, labels: int64, n: int64, nFeatures: int64, k: int64, folds: int64): f64'' | pub | Cross-validation | | ''KNNScore(features: int64, labels: int64, n: int64): f64'' | pub | Score on training set | | ''KMeansInit(k: int64): void'' | pub | Cluster centroid vector Note: stored as contiguous f64 array at km_centroids Initialize k-Means | | ''KMeansGetK(): int64'' | pub | Get number of clusters | | ''KMeansGetIter(): int64'' | pub | Get current iteration | | ''KMeansGetInertia(): f64'' | pub | Get inertia (sum of squared distances) | | ''KMeansInitCentroids(features: int64, n: int64, nFeatures: int64, k: int64): void'' | pub | Initialize centroids using k-means++ algorithm | | ''KMeansFit(features: int64, n: int64, nFeatures: int64, k: int64): void'' | pub | n: number of samples nFeatures: number of features k: number of clusters | | ''KMeansPredictCluster(point: int64): int64'' | pub | Get cluster assignment for a point | | ''KMeansGetAssignments(): int64'' | pub | Get all cluster assignments | | ''KMeansGetCentroids(): int64'' | pub | Get cluster centroids | | ''KMeansGetClusterSize(clusterIdx: int64): int64'' | pub | Get cluster size | | ''KMeansGetCentroid(idx: int64, featureIdx: int64): f64'' | pub | Get centroids as array (for visualization) | | ''KMeansSilhouette(features: int64, n: int64, nFeatures: int64): f64'' | pub | Calculate silhouette score (quality metric) | | ''KMeansElbow(features: int64, n: int64, nFeatures: int64, maxK: int64): int64'' | pub | Elbow method: calculate inertia for different k values | | ''KMeansMiniBatchInit(k: int64, batchSize: int64): void'' | pub | Initialize mini-batch k-means | | ''KMeansMiniBatchFit(features: int64, n: int64, nFeatures: int64, k: int64): void'' | pub | Fit mini-batch k-means (faster approximation) | | ''NaiveBayesInit(nClasses: int64, vocabSize: int64): void'' | pub | Initialize Naive Bayes | | ''NaiveBayesFit(documents: int64, docLengths: int64, labels: int64, n: int64): void'' | pub | docLengths: lengths of each document labels: class label for each document n: number of documents | | ''NBLog(x: f64): f64'' | pub | Log function approximation | | ''NaiveBayesPredict(docWords: int64, docLen: int64): int64'' | pub | Predict class for a document | | ''NaiveBayesPredictProba(docWords: int64, docLen: int64): int64'' | pub | Predict probabilities for all classes | | ''NaiveBayesGetWordCount(classIdx: int64, wordIdx: int64): f64'' | pub | Get word count for class | | ''NaiveBayesGetClassCount(classIdx: int64): int64'' | pub | Get class count | | ''NaiveBayesScore(documents: int64, docLengths: int64, labels: int64, n: int64): f64'' | pub | Score on training data | | ''NaiveBayesBernoulliInit(nClasses: int64, vocabSize: int64): void'' | pub | Initialize Bernoulli Naive Bayes | | ''NaiveBayesBernoulliFit(documents: int64, docLengths: int64, labels: int64, n: int64): void'' | pub | Bernoulli NB training | | ''NaiveBayesBernoulliPredict(docWords: int64, docLen: int64): int64'' | pub | Bernoulli NB prediction (with complement) | | ''DecisionTreeInit(maxDepth: int64, criterion: int64): void'' | pub | Initialize Decision Tree | | ''DTGiniImpurity(labels: int64, n: int64): f64'' | pub | Calculate Gini impurity | | ''DTEntropyImpurity(labels: int64, n: int64): f64'' | pub | Calculate Entropy impurity | | ''DTMSEImpurity(values: int64, n: int64): f64'' | pub | Calculate MSE impurity (for regression) | | ''DecisionTreePredict(featureVector: int64): int64'' | pub | Predict using Decision Tree | | ''DecisionTreePredictProba(featureVector: int64, nClasses: int64): int64'' | pub | Predict probabilities | | ''DecisionTreeScore(features: int64, labels: int64, n: int64): f64'' | pub | Score Decision Tree | | ''DecisionTreeGetDepth(): int64'' | pub | Get tree depth | | ''DecisionTreeGetNLeafs(): int64'' | pub | Get number of leaf nodes (approximation) | ---- //Signaturen automatisch aus ''std/ml_full.lyx'' erzeugt (Stand 2026-08-02, lyxc 1.0.21A). Beschreibungen stammen aus den Quellkommentaren und sind teilweise unvollständig.//