class KBinsDiscretizerImpl(): def __init__(self, n_bins=5, encode='onehot', strategy='quantile'): self._hyperparams = { 'n_bins': n_bins, 'encode': encode, 'strategy': strategy } self._wrapped_model = Op(**self._hyperparams) def fit(self, X, y=None): if (y is not None): self._wrapped_model.fit(X, y) else: self._wrapped_model.fit(X) return self def transform(self, X): return self._wrapped_model.transform(X)
class CreateKBinsDiscretizer(CreateModel): def fit(self, data, args): self.model = KBinsDiscretizer() with Timer() as t: self.model.fit(data.X_train, data.y_train) return t.interval def test(self, data): assert self.model is not None return self.model.transform(data.X_test) def predict(self, data): with Timer() as t: self.predictions = self.test(data) data.learning_task = LearningTask.REGRESSION return t.interval
from sklearn.preprocessing._discretization import KBinsDiscretizer import numpy as np bins = 10 d = KBinsDiscretizer(bins, encode='ordinal', strategy='uniform') X = np.array(['hello', 'test', 'hello', 'test', 'h', 'a']).reshape(1, -1) d.fit(X) print(d.transform(X))