Skip to main content

KNeighborsClassifier

#include <Skigen/Neighbors>

template <typename Scalar = double>
class Skigen::KNeighborsClassifier(n_neighbors=5)

Classifier implementing the k-nearest neighbors vote.

Uses brute-force computation of squared Euclidean distances. For each query point, finds the n_neighbors closest training points and predicts by majority vote.

Mirrors sklearn.neighbors.KNeighborsClassifier.


Parameters:

  • n_neighbors : int, default=5 Number of neighbors to use (int, default 5).

Attributes:

  • n_neighbors : int Number of neighbors.

Methods

fit(X, y)

Fit the k-nearest neighbors classifier from the training set.


predict(X)

Predict class labels for the provided data.


Example

// Compare different k values
std::cout << "=== KNN: varying k ===\n";
for (int k : {1, 3, 5, 7, 11}) {
Skigen::KNeighborsClassifier<double> knn(k);
knn.fit(split.X_train, split.y_train);
auto pred = knn.predict(split.X_test);
std::cout << " k=" << std::setw(2) << k
<< " accuracy=" << Skigen::Metrics::accuracy_score(split.y_test, pred)
<< " F1=" << Skigen::Metrics::f1_score(split.y_test, pred) << "\n";
}