def test_sklearn_GridSearchCV_accept_model(self, X, Y): from sklearn.model_selection import cross_val_score from sklearn.model_selection import GridSearchCV base_model = sklearn_adapter(WeibullAFTFitter, event_col="E") grid_params = {"penalizer": 10.0 ** np.arange(-2, 3), "model_ancillary": [True, False]} clf = GridSearchCV(base_model(), grid_params, cv=4) clf.fit(X, Y) assert clf.best_params_ == {"model_ancillary": True, "penalizer": 100.0} assert clf.predict(X).shape[0] == X.shape[0]
def test_sklearn_GridSearchCV_accept_model_with_parallelization(self, X, Y): from sklearn.model_selection import cross_val_score from sklearn.model_selection import GridSearchCV base_model = sklearn_adapter(WeibullAFTFitter, event_col="E") grid_params = {"penalizer": 10.0 ** np.arange(-2, 3), "l1_ratio": [0.05, 0.5, 0.95], "model_ancillary": [True, False]} # note the n_jobs clf = GridSearchCV(base_model(), grid_params, cv=4, n_jobs=-1) clf.fit(X, Y) assert clf.best_params_ == {"l1_ratio": 0.5, "model_ancillary": False, "penalizer": 0.01} assert clf.predict(X).shape[0] == X.shape[0]
def test_model_can_accept_things_like_strata(self, X, Y): X["strata"] = np.random.randint(0, 2, size=X.shape[0]) base_model = sklearn_adapter(CoxPHFitter, event_col="E") cph = base_model(strata="strata") cph.fit(X, Y)
def test_sklearn_check(): from sklearn.utils.estimator_checks import check_estimator base_model = sklearn_adapter(WeibullAFTFitter, event_col="E") check_estimator(base_model())
# -*- coding: utf-8 -*- from sklearn.model_selection import cross_val_score from sklearn.model_selection import GridSearchCV from lifelines.utils.sklearn_adapter import sklearn_adapter from lifelines import CoxPHFitter, WeibullAFTFitter from lifelines.datasets import load_rossi rossi = load_rossi() Y = rossi.pop("week").values X = rossi base_class = sklearn_adapter(CoxPHFitter, event_col="arrest") cph = base_class(penalizer=1.0) cph.fit(X, Y) scores = cross_val_score(cph, X, Y, cv=5) print(scores) base_model = sklearn_adapter(WeibullAFTFitter, event_col="arrest") clf = GridSearchCV(base_model(), { "penalizer": [0, 1, 10], "model_ancillary": [True, False] }, cv=5) clf.fit(X, Y) print(clf)
def test_we_can_user_other_prediction_methods(self, X, Y): base_model = sklearn_adapter(WeibullAFTFitter, event_col="E", predict_method="predict_median") wf = base_model(strata="strata") wf.fit(X, Y) assert wf.predict(X).shape[0] == X.shape[0]