Код: Выделить всё
target = 'churn'
tranOH = ColumnTransformer([ ('one', OneHotEncoder(drop='first', dtype='int'),
make_column_selector(dtype_include='category', pattern=f"^(?!{target}).*")
) ], remainder='passthrough')
dftrain2 = tranOH.fit_transform(dftrain)
cph = CoxPHFitter(penalizer=0.1)
cph.fit(dftrain2, 'months', 'churn')
Код: Выделить всё
mcox = Pipeline(steps=[
("onehot", tranOH),
('modelo', CoxPHFitter(penalizer=0.1))
])
mcox.fit(dftrain, modelo__duration_col="months", modelo__event_col='churn')
Код: Выделить всё
TypeError Traceback (most recent call last)
Cell In[88], line 6
1 mcox = Pipeline(steps=[
2 ("onehot", tranOH),
3 ('modelo', CoxPHFitter(penalizer=0.1))
4 ])
----> 6 mcox.fit(dftrain, modelo__duration_col="months", modelo__event_col=target)
File ~\AppData\Roaming\Python\Python310\site-packages\sklearn\base.py:1473, in _fit_context..decorator..wrapper(estimator, *args, **kwargs)
1466 estimator._validate_params()
1468 with config_context(
1469 skip_parameter_validation=(
1470 prefer_skip_nested_validation or global_skip_validation
1471 )
1472 ):
-> 1473 return fit_method(estimator, *args, **kwargs)
File ~\AppData\Roaming\Python\Python310\site-packages\sklearn\pipeline.py:473, in Pipeline.fit(self, X, y, **params)
471 if self._final_estimator != "passthrough":
472 last_step_params = routed_params[self.steps[-1][0]]
--> 473 self._final_estimator.fit(Xt, y, **last_step_params["fit"])
475 return self
File ~\AppData\Roaming\Python\Python310\site-packages\lifelines\utils\__init__.py:56, in CensoringType.right_censoring..f(model, *args, **kwargs)
53 @wraps(function)
54 def f(model, *args, **kwargs):
55 cls.set_censoring_type(model, cls.RIGHT)
---> 56 return function(model, *args, **kwargs)
TypeError: CoxPHFitter.fit() got multiple values for argument 'duration_col'
Я также пробовал использовать col="months" и event_col=target непосредственно внутри CoxPHitter(), но я получаю ту же ошибку.
Позже я хочу использовать его для выполнения GridSearchCV для точной настройки пенализатора параметр, оптимизирующий показатель точности для прогнозирования оттока в заданное время = "месяцы".
У меня нет такой же проблемы с другими моделями, например, если я заменю CoxPHFitter на LogisticRegrade. работает хорошо.
Подробнее здесь: https://stackoverflow.com/questions/790 ... a-pipeline