Я искал возможность добавить определяемые пользователем функции и настраиваемые преобразователи в свой проект машинного обучения, но я нашел только примеры того, как это сделать в среде Tensor-Flow.
Я создал собственный пакет, который можно установить с помощью pip, но я не знаю, как должен выглядеть файл setup.py в среде scikit-learn.
Буду рад, если вы мне подскажете.
Пайплайн, который я пытаюсь развернуть, приведен ниже:
from custscaler import StdScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import Pipeline
knn_pipe = Pipeline([
('my_std', StdScaler(5) ),
('my_knn',KNeighborsClassifier(n_neighbors=7))
])
model = knn_pipe.fit(X_train, Y_train)
Пользовательский преобразователь:
/custscaler/__init__.py
from .fct1 import StdScaler
/custscaler/fct1.py
from sklearn import base
class StdScaler(base.BaseEstimator, base.TransformerMixin):
def __init__(self, scaling_factor):
self.scaling_factor = scaling_factor
def fit(self, X, y=None):
return self
def transform(self, X):
data = [ [el*self.scaling_factor for el in row] for row in X ]
return data