mojolearn.KNeighborsRegressor#
- class mojolearn.KNeighborsRegressor(n_neighbors=5, query_tile=0, *, weights='uniform', metric='euclidean', algorithm='brute', p=2)[source]#
Bases:
NearestNeighborsRegressor that averages the targets of the k nearest training points.
Each prediction is the mean of the
n_neighborsnearest targets, or withweights='distance'the weighted meansum(w * y) / sum(w)withw = 1 / d. Neighbor search is exact brute force, as inNearestNeighbors. Targets are converted to float32.- Parameters:
n_neighbors (int, default 5) – Number of neighbors averaged. Must be between 1 and the number of training samples.
query_tile (int, default 0) – As in
NearestNeighbors: memory use only, never the answer.weights ({‘uniform’, ‘distance’} or None, default ‘uniform’) – ‘uniform’ (or
None) averages equally. ‘distance’ follows scikit-learn, including its rule for neighbors at distance exactly zero (they get weight 1, the rest of that row 0). A callable raisesValueError, as does ‘distance’ withmetric='inner_product'.metric (str, default ‘euclidean’) – As in
NearestNeighborswithalgorithm='brute'.algorithm ({‘brute’, ‘auto’}, default ‘brute’) – Exact brute force. ‘rbc’ raises
ValueErrorhere; useNearestNeighbors(algorithm='rbc').kneighborsinstead.p (float, default 2) – As in
NearestNeighbors.numeric_mode ({‘identical’, ‘deterministic’, ‘fast’}, optional) – As in
NearestNeighbors. ‘fast’ is available on Apple GPUs only.
- Variables:
Examples
>>> import numpy as np, mojolearn >>> rng = np.random.default_rng(0) >>> X = rng.random((1000, 8), dtype=np.float32) >>> y = X.sum(axis=1) >>> reg = mojolearn.KNeighborsRegressor(n_neighbors=5).fit(X, y) >>> pred = reg.predict(X[:10])
- __init__(n_neighbors=5, query_tile=0, *, weights='uniform', metric='euclidean', algorithm='brute', p=2)[source]#
Methods
fit(X, y)Store the training points and their targets.
get_params([deep])kneighbors(X[, n_neighbors, return_distance])Find the nearest fitted points to each query, nearest first.
load(path)Load a model written by
save.numeric_mode_used()The numeric mode this estimator runs in.
predict(X)Predict each query's target from its neighbors.
save(path)Save the fitted model to an
.npzfile.set_params(**params)Set constructor parameters.
vendor_used()The GPU backend this estimator runs on.
- save(path)[source]#
Save the fitted model to an
.npzfile.The file holds the training points, targets and parameters.
mojolearn.host_model(path)can predict from it on a CPU with no GPU.- Parameters:
path (str or path-like) – Destination file.
- Raises:
RuntimeError – If the model is not fitted.
- classmethod load(path)[source]#
Load a model written by
save.- Parameters:
path (str or path-like) – File written by
save.- Returns:
KNeighborsRegressor – A fitted model, ready for
predict.
- fit(X, y)[source]#
Store the training points and their targets.
- Parameters:
X (array-like of shape (n_samples, n_features)) – Training points; converted to float32.
y (array-like, shape (n_samples,) or (n_samples, n_outputs)) – Numeric targets; converted to float32. A 2-D
yis averaged column by column.
- Returns:
self
- predict(X)[source]#
Predict each query’s target from its neighbors.
- Parameters:
X (array-like of shape (n_queries, n_features)) – Query points; converted to float32.
- Returns:
Array of float32, shape (n_queries,) or (n_queries, n_outputs) – The (weighted) mean target; 2-D when
ywas 2-D.- Raises:
ValueError – If the model is not fitted,
Xhas the wrong number of features, orn_neighborsexceeds the number of training samples.