Почему мой подклассовый оценщик не возвращает параметры? - PullRequest
0 голосов
/ 11 июля 2020

Меня интересует создание подкласса NearestNeighbors sklearn, чтобы возвращать метки наблюдений, а не индикаторы из обучающего набора. Вот мой подкласс оценщика NNBR.

from sklearn.neighbors import NearestNeighbors
import numpy as np


class NNBR(NearestNeighbors):

    def __init__(self,**kwargs):
        super().__init__(**kwargs)

    def fit(self, X, y):
        super().fit(X)
        if isinstance(y,np.ndarray):
            self.y = y
        else:
            self.y = np.array(y)
        return self

    def predict(self, X):

        results = self.kneighbors(X)

        dist, ids = [j.ravel() for j in results]

        return self.y[ids]

Я могу создать экземпляр и использовать оценщик, как я намереваюсь, но когда я вызываю get_params(), мне возвращается пустой словарь

X = np.random.normal(size = (25,3))
y = [f'x_{j}' for j in range(25)]

myclf = NNBR(n_neighbors = 3).fit(X,y)
clf = NearestNeighbors(n_neighbors=3).fit(X)


myclf.get_params() # {}
clf.get_params() # Returns dictionary of params

Почему мой подкласс возвращает пустой словарь, когда я использую метод get_params? Как я могу изменить свой код, чтобы myclf.get_params() возвращал то же, что clf.get_params()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...