|
14 | 14 | from sklearn.impute import SimpleImputer
|
15 | 15 | from sklearn.metrics import log_loss, mean_squared_error
|
16 | 16 | from sklearn.model_selection import train_test_split
|
17 |
| -from sklearn.preprocessing import LabelEncoder, KBinsDiscretizer, OrdinalEncoder, StandardScaler, OneHotEncoder |
| 17 | +from sklearn.preprocessing import LabelEncoder, KBinsDiscretizer, OrdinalEncoder, StandardScaler, OneHotEncoder, \ |
| 18 | + MinMaxScaler |
18 | 19 | from sklearn.utils import column_or_1d
|
19 | 20 | from sklearn.utils.validation import check_is_fitted
|
20 | 21 |
|
@@ -374,6 +375,28 @@ def transform(self, X):
|
374 | 375 | return X
|
375 | 376 |
|
376 | 377 |
|
| 378 | +@tb_transformer(pd.DataFrame) |
| 379 | +class MinMaxScalerTransformer(BaseEstimator): |
| 380 | + def __init__(self, columns, copy=True): |
| 381 | + super(MinMaxScalerTransformer, self).__init__() |
| 382 | + |
| 383 | + self.scaler = MinMaxScaler(copy=copy) |
| 384 | + self.copy = copy |
| 385 | + self.columns = columns |
| 386 | + |
| 387 | + def fit(self, X, y=None): |
| 388 | + df_continuous = X[self.columns] |
| 389 | + self.scaler.fit(df_continuous.values) |
| 390 | + return self |
| 391 | + |
| 392 | + def transform(self, X): |
| 393 | + df_continuous = X[self.columns] |
| 394 | + np_continuous = self.scaler.transform(df_continuous.values) |
| 395 | + for i, v in enumerate(self.columns): |
| 396 | + X[v] = np_continuous[:, i] |
| 397 | + return X |
| 398 | + |
| 399 | + |
377 | 400 | @tb_transformer(pd.DataFrame)
|
378 | 401 | class SkewnessKurtosisTransformer(BaseEstimator):
|
379 | 402 | def __init__(self, transform_fn=None, skew_threshold=0.5, kurtosis_threshold=0.5):
|
|
0 commit comments