Beispiel #1
0
    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]
Beispiel #2
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]
Beispiel #3
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)
Beispiel #4
0
    def test_sklearn_check():
        from sklearn.utils.estimator_checks import check_estimator

        base_model = sklearn_adapter(WeibullAFTFitter, event_col="E")
        check_estimator(base_model())
Beispiel #5
0
# -*- 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)
Beispiel #6
0
    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]