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, default5).
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";
}