Open source machine learning library for performance of a weighted average and linear transformations over stacked predictions
pip install waveml
waveml features four models:
WaveStackingTransformer
WaveRegressor
WaveTransformer
WaveEncoder
Performs Classical Stacking
Can be used for following objectives:
Regression
Classification
Probability Prediction
from waveml import WaveStackingTransformer
from catboost import CatBoostRegressor
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor
wst = WaveStackingTransformer(
models=[
("CBR", CatBoostRegressor()),
("XGBR", XGBRegressor()),
("LGBMR", LGBMRegressor())
],
n_folds=5,
verbose=True,
regression=True,
random_state=42,
shuffle=True
)
from sklearn.datasets import load_boston
form sklearn.model_selection import train_test_split
X, y = load_boston(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42, shuffle=True)
SX_train = wst.fit_transform(X_train, y_train, prettified=True)
SX_test = wst.transform(X_test, prettified=True)
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(SX_train, y_train)
lr.predict(SX_test)
from sklearn.pipeline import Pipeline
pipeline = Pipeline(
steps=[
("Stack_L1", wst),
("Final Estimator", lr)
]
)
pipeline.fit(X_train, y_train)
pipeline.predict(X_test)
Performs weighted average over stacked predictions
Analogue of Linear Regression without intercept
Linear Regression: y = b0 + b1x1 + b2x2 + ... + bnxn
Weihghted Average: y = b1x1 + b2x2 + ... + bnxn
from waveml import WaveRegressor
wr = WaveRegressor()
wr.fit(SX_train, y_train)
wr.predict(SX_test)
from sklearn.pipeline import Pipeline
pipeline = Pipeline(
steps=[
("Stack_L1", wst),
("Final Estimator", WaveRegressor())
]
)
pipeline.fit(X_train, y_train)
pipeline.predict(X_test)
Performs cross validated linear transformations over stacked predictions
from waveml import WaveTransformer
wt = WaveTransformer()
wt.fit(X_train, y_train)
wt.transform(X_test)
pipeline = Pipeline(
steps=[
("Stack_L1", wst),
("LinearTransformations", WaveTransformer()),
("Final Estimator", WaveRegressor())
]
)
Performs encoding of categorical features in the initial dataset
from waveml import WaveEncoder
we = WaveEncoder(encodeing_type="label")
X_train = we.fit_transform(X_train)
X_test = we.transform(X_test)