logml.models.registry.survival

Survival models with sklearn api.

Classes

CoxLassoModel([params, logger])

Wrapper for sksurv.linear_model.CoxnetSurvivalAnalysis - Lasso.

CoxNetModel([params, logger])

Wrapper for sksurv.linear_model.CoxnetSurvivalAnalysis - Elastic.

CoxRidgeModel([params, logger])

Wrapper for sksurv.linear_model.CoxPHSurvivalAnalysis - Ridge.

GradientBoostingSAModel([params, logger])

Wrapper for sksurv.ensemble.GradientBoostingSurvivalAnalysis

IPCRidgeModel([params, logger])

Wrapper for sksurv.linear_model.IPCRidge

RandomSurvivalForestModel([params, logger])

Wrapper for sksurv.ensemble.RandomSurvivalForest

SurvivalHingeLossSVMModel([params, logger])

Wrapper for sksurv.svm.HingeLossSurvivalSVM

SurvivalKernelSVMModel([params, logger])

Wrapper for sksurv.svm.FastKernelSurvivalSVM Note on usage: When rank_ratio parameter is 1, only ranking is performed.

SurvivalMinlipSVMModel([params, logger])

Wrapper for sksurv.svm.MinlipSurvivalAnalysis

SurvivalNaiveSVMModel([params, logger])

Wrapper for sksurv.svm.NaiveSurvivalSVM

SurvivalSVMModel([params, logger])

Wrapper for sksurv.svm.FastSurvivalSVM Note on usage: When rank_ratio parameter is 1, only ranking is performed.

class logml.models.registry.survival.RandomSurvivalForestModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel, logml.model_search.shap.ShapExplainable

Wrapper for sksurv.ensemble.RandomSurvivalForest

TASK = 'survival'
TAGS = ['tree', <ModelingTask.SURV: 'survival'>]
F_MODEL

alias of sksurv.ensemble.forest.RandomSurvivalForest

FE_MODEL_ATTRIBUTE = None
DEFAULT_PARAMS = {'n_jobs': -1}
PARAMS_SPACE = {'max_depth': [None, 3, 5, 10], 'max_features': [1.0], 'n_estimators': [25, 50, 100, 200, 300]}
get_feature_importance(dataset: logml.data.datasets.survival_dataset.SurvivalDataset, **_kwargs)

Get median FIs per feature across CV folds.

get_shap_init_params(ctx: Optional[logml.model_search.shap.ShapExplainerContext] = None) dict

Define shap explainer initialization parameters

Returns

Dictionary to be passed to estimator constructor. use_predict_method: if true, then estimator.predict method is passed to explainer.

class logml.models.registry.survival.CoxNetModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel, logml.model_search.shap.ShapExplainable

Wrapper for sksurv.linear_model.CoxnetSurvivalAnalysis - Elastic.

TASK = 'survival'
TAGS = ['linear', <ModelingTask.SURV: 'survival'>, 'regularization']
F_MODEL

alias of sksurv.linear_model.coxnet.CoxnetSurvivalAnalysis

FE_MODEL_ATTRIBUTE = 'coef_'
DEFAULT_PARAMS = {'alpha_min_ratio': 0.01, 'l1_ratio': 0.5, 'n_alphas': 100}
PARAMS_SPACE = {'alpha_min_ratio': [0.001, 0.01, 0.1], 'l1_ratio': {'distribution': 'uniform', 'params': [0.2, 0.8]}, 'n_alphas': [200, 100, 50, 10]}
predict_fold(estimator, x_features: numpy.ndarray, **kwargs)

Predict for single fold.

get_shap_init_params(ctx: Optional[logml.model_search.shap.ShapExplainerContext] = None) dict

Define shap explainer initialization parameters

Returns

Dictionary to be passed to estimator constructor. use_predict_method: if true, then estimator.predict method is passed to explainer.

class logml.models.registry.survival.CoxLassoModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.registry.survival.CoxNetModel

Wrapper for sksurv.linear_model.CoxnetSurvivalAnalysis - Lasso.

DEFAULT_PARAMS = {'alpha_min_ratio': 0.01, 'l1_ratio': 1.0, 'n_alphas': 100}
PARAMS_SPACE = {'alpha_min_ratio': [0.001, 0.01, 0.1], 'l1_ratio': [1.0], 'n_alphas': [200, 100, 50, 10]}
class logml.models.registry.survival.CoxRidgeModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.registry.survival.CoxNetModel

Wrapper for sksurv.linear_model.CoxPHSurvivalAnalysis - Ridge.

DEFAULT_PARAMS = {'alpha_min_ratio': 0.01, 'l1_ratio': 1e-08, 'n_alphas': 100}
PARAMS_SPACE = {'alpha_min_ratio': [0.001, 0.01, 0.1], 'l1_ratio': [1e-08], 'n_alphas': [200, 100, 50, 10]}
class logml.models.registry.survival.IPCRidgeModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel

Wrapper for sksurv.linear_model.IPCRidge

TASK = 'survival'
TAGS = ['linear', <ModelingTask.SURV: 'survival'>, 'regularization']
F_MODEL

alias of sksurv.linear_model.aft.IPCRidge

FE_MODEL_ATTRIBUTE = 'coef_'
DEFAULT_PARAMS = {'alpha': 0.001}
PARAMS_SPACE = {'alpha': {'distribution': 'loguniform', 'params': [-12, -5]}}
class logml.models.registry.survival.GradientBoostingSAModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel, logml.model_search.shap.ShapExplainable

Wrapper for sksurv.ensemble.GradientBoostingSurvivalAnalysis

TASK = 'survival'
TAGS = ['ensemble', <ModelingTask.SURV: 'survival'>, 'tree']
F_MODEL

alias of sksurv.ensemble.boosting.GradientBoostingSurvivalAnalysis

FE_MODEL_ATTRIBUTE = 'feature_importances_'
DEFAULT_PARAMS = {'criterion': 'friedman_mse', 'dropout_rate': 0.1, 'learning_rate': 0.01, 'loss': 'coxph', 'max_depth': 3, 'max_features': 'auto', 'min_samples_leaf': 1, 'n_estimators': 100, 'random_state': None, 'subsample': 0.8}
PARAMS_SPACE = {'criterion': ['friedman_mse'], 'dropout_rate': [0.0, 0.1, 0.2], 'learning_rate': {'distribution': 'uniform', 'params': [0.0001, 0.1]}, 'loss': ['coxph'], 'max_depth': [2, 3, 4], 'max_features': [1.0], 'min_samples_leaf': [1, 3], 'n_estimators': [25, 50, 100, 150], 'subsample': [0.8, 0.9]}
get_shap_init_params(ctx: Optional[logml.model_search.shap.ShapExplainerContext] = None) dict

Define shap explainer initialization parameters

Returns

Dictionary to be passed to estimator constructor. use_predict_method: if true, then estimator.predict method is passed to explainer.

class logml.models.registry.survival.SurvivalSVMModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel

Wrapper for sksurv.svm.FastSurvivalSVM Note on usage: When rank_ratio parameter is 1, only ranking is performed. When it is zero, objective is regression, so the whole semantics gets reversed. With ranking prediction is risk (the lower the better), with regression preidction is survival time (the higher the better). In this particular model rank_ratio is (ans should be) fixed to 1.

TASK = 'survival'
TAGS = ['svm', <ModelingTask.SURV: 'survival'>, 'exclude']
F_MODEL

alias of sksurv.svm.survival_svm.FastSurvivalSVM

FE_MODEL_ATTRIBUTE = 'coef_'
DEFAULT_PARAMS = {'alpha': 1.0, 'random_state': None, 'rank_ratio': 1.0}
PARAMS_SPACE = {'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'max_iter': [20, 50, 100, 200], 'optimizer': ['avltree', 'direct-count', 'PRSVM', 'rbtree'], 'rank_ratio': 1.0}
class logml.models.registry.survival.SurvivalKernelSVMModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel

Wrapper for sksurv.svm.FastKernelSurvivalSVM Note on usage: When rank_ratio parameter is 1, only ranking is performed. When it is zero, objective is regression, so the whole semantics gets reversed. With ranking prediction is risk (the lower the better), with regression preidction is survival time (the higher the better). In this particular model rank_ratio is (ans should be) fixed to 1.

TASK = 'survival'
TAGS = ['svm', <ModelingTask.SURV: 'survival'>]
F_MODEL

alias of sksurv.svm.survival_svm.FastKernelSurvivalSVM

FE_MODEL_ATTRIBUTE = None
DEFAULT_PARAMS = {'alpha': 1.0, 'random_state': None, 'rank_ratio': 1.0}
PARAMS_SPACE = [{'kernel': ['poly', 'sigmoid'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'rank_ratio': 1.0, 'max_iter': [20, 50, 100, 200], 'degree': [2, 3, 4, 5], 'coef0': [0, 0.5, 1]}, {'kernel': ['linear', 'cosine'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'rank_ratio': 1.0, 'max_iter': [20, 50, 100, 200]}, {'kernel': ['rbf'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'rank_ratio': 1.0, 'max_iter': [20, 50, 100, 200], 'gamma': [None, {'distribution': 'loguniform', 'params': [-5, 1]}]}]
class logml.models.registry.survival.SurvivalHingeLossSVMModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel

Wrapper for sksurv.svm.HingeLossSurvivalSVM

TASK = 'survival'
TAGS = ['svm', <ModelingTask.SURV: 'survival'>]
F_MODEL

alias of sksurv.svm.minlip.HingeLossSurvivalSVM

FE_MODEL_ATTRIBUTE = None
DEFAULT_PARAMS = {'alpha': 1.0, 'pairs': 'nearest'}
PARAMS_SPACE = [{'solver': ['ecos', 'osqp'], 'kernel': ['poly', 'rbf', 'sigmoid'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'gamma': [None, {'distribution': 'loguniform', 'params': [-5, 1]}], 'degree': [2, 3, 4, 5], 'coef0': [0, 0.5, 1], 'max_iter': [20, 50, 100, 200], 'pairs': 'nearest'}, {'solver': ['ecos', 'osqp'], 'kernel': ['linear', 'cosine'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'max_iter': [20, 50, 100, 200], 'pairs': 'nearest'}]
class logml.models.registry.survival.SurvivalMinlipSVMModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel

Wrapper for sksurv.svm.MinlipSurvivalAnalysis

TASK = 'survival'
TAGS = ['svm', <ModelingTask.SURV: 'survival'>]
F_MODEL

alias of sksurv.svm.minlip.MinlipSurvivalAnalysis

FE_MODEL_ATTRIBUTE = None
DEFAULT_PARAMS = {'alpha': 1.0}
PARAMS_SPACE = [{'solver': ['ecos', 'osqp'], 'kernel': ['poly', 'rbf', 'sigmoid'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'gamma': [None, {'distribution': 'loguniform', 'params': [-5, 1]}], 'degree': [2, 3, 4, 5], 'coef0': [0, 0.5, 1], 'max_iter': [20, 50, 100, 200]}, {'solver': ['ecos', 'osqp'], 'kernel': ['linear', 'cosine'], 'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'max_iter': [20, 50, 100, 200]}]
class logml.models.registry.survival.SurvivalNaiveSVMModel(params: Optional[dict] = None, logger=None)

Bases: logml.models.base.BaseModel

Wrapper for sksurv.svm.NaiveSurvivalSVM

TASK = 'survival'
TAGS = ['svm', <ModelingTask.SURV: 'survival'>]
F_MODEL

alias of sksurv.svm.naive_survival_svm.NaiveSurvivalSVM

FE_MODEL_ATTRIBUTE = None
DEFAULT_PARAMS = {'alpha': 1.0, 'random_state': None}
PARAMS_SPACE = {'alpha': {'distribution': 'loguniform', 'params': [-12, 10]}, 'dual': [True, False], 'loss': ['squared_hinge', 'hinge'], 'max_iter': [100, 500, 1000, 2000], 'penalty': ['l2', 'l1']}