Source code for gridds.methods.KNN
from sklearn.neighbors import KNeighborsRegressor
from sklearn.impute import KNNImputer
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
from .base_model import BaseModel
import numpy as np
[docs]class KNN(BaseModel):
def __init__(self, name, n_neighbors=10): # , full_name):
"""
Class initialization.
Args
:attr:`name` (string):
the name attribute of the method.
TODO: add more generic args?
"""
self.name = name
super(KNN, self).__init__(name)
'''
3 options below for self.model
'''
#self.model = KNeighborsRegressor()
self.model = KNeighborsRegressor()
# self.model = KNNImputer(n_neighbors=n_neighbors)
[docs] def fit(self,X, **kwargs):
self.model.fit(X)
[docs] def predict(self,X, **kwargs):
return self.model.predict(X)
# def fit_transform(self,X):
# return self.model.fit_transform(X)
def impute(self,X, **kwargs):
self.model = KNNImputer(n_neighbors=n_neighbors)
return self.model.fit_transform(X)
def transform(self,X, **kwargs):
return self.model.transform(X)