我正在寻找在我的机器学习项目中添加自定义函数和自定义转换器的可能性,但我只找到了在Tensor-Flow框架中如何实现这一点的示例。
我创建了一个可以使用pip安装的自定义包,但我不知道在scikit-learn框架中setup.py文件应该是怎样的。
如果您能给我一些提示,我会很高兴的。
我想要部署的流程如下:
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