是我的输入数据有问题吗?
initial training of underlying models...
CV.. 1/10
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-21-86f90af274db> in <module>()
1 model_sq = SurvivalQuilts()
----> 2 model_sq.train(tr_X, tr_T, tr_Y)
D:\survivalquilts\class_SurvivalQuilts.py in train(self, X, T, Y)
55 for cv_idx in range(self.num_cv):
56 print('CV.. {}/{}'.format(cv_idx+1, self.num_cv))
---> 57 pulled_models, tmp_CINDEX, tmp_BRIER = self._get_models_pulled_CV(X, T, Y, seed=cv_idx)
58
59 metric_CINDEX[cv_idx,:,:] = tmp_CINDEX
D:\survivalquilts\class_SurvivalQuilts.py in _get_models_pulled_CV(self, X, T, Y, seed)
282 X_tr, X_va, T_tr, T_va, Y_tr, Y_va = train_test_split(X, T, Y, test_size=0.20, random_state=seed+self.SEED)
283
--> 284 pulled_models = self._get_trained_models(X_tr, T_tr, Y_tr)
285
286 metric_CINDEX, metric_BRIER = np.zeros([self.M, self.K]), np.zeros([self.M, self.K])
D:\survivalquilts\class_SurvivalQuilts.py in _get_trained_models(self, X, T, Y)
300 models = self._make_ModelList()
301 for m in range(self.M):
--> 302 models[m].fit(X, T, Y)
303 return models
304
D:\survivalquilts\class_UnderlyingModels.py in fit(self, X, T, Y)
159 df.columns = [x for x in X.columns] + ['time', 'label']
160
--> 161 self.model.fit(df, duration_col='time', event_col='label')
162
163 def predict(self, X, time_horizons):
~\AppData\Roaming\Python\Python37\site-packages\lifelines\utils\__init__.py in f(model, *args, **kwargs)
54 def f(model, *args, **kwargs):
55 cls.set_censoring_type(model, cls.RIGHT)
---> 56 return function(model, *args, **kwargs)
57
58 return f
~\AppData\Roaming\Python\Python37\site-packages\lifelines\fitters\__init__.py in fit(self, df, duration_col, event_col, ancillary, fit_intercept, show_progress, timeline, weights_col, robust, initial_point, entry_col, formula)
2830 robust=robust,
2831 initial_point=initial_point,
-> 2832 entry_col=entry_col,
2833 )
2834 return self
~\AppData\Roaming\Python\Python37\site-packages\lifelines\fitters\__init__.py in _fit(self, log_likelihood_function, df, Ts, regressors, event_col, show_progress, timeline, weights_col, robust, initial_point, entry_col)
1783 Xs = self.regressors.transform_df(df)
1784
-> 1785 self._check_values_pre_fitting(Xs, utils.coalesce(Ts[1], Ts[0]), E, weights, entries)
1786
1787 _norm_std = Xs.std(0)
~\AppData\Roaming\Python\Python37\site-packages\lifelines\fitters\__init__.py in _check_values_pre_fitting(self, df, T, E, weights, entries)
1349 utils.check_nans_or_infs(T)
1350 utils.check_nans_or_infs(E)
-> 1351 utils.check_positivity(T)
1352
1353 if self.weights_col:
~\AppData\Roaming\Python\Python37\site-packages\lifelines\utils\__init__.py in check_positivity(array)
1083 if np.any(array <= 0):
1084 raise ValueError(
-> 1085 "This model does not allow for non-positive durations. Suggestion: add a small positive value to zero elements."
1086 )
1087
ValueError: This model does not allow for non-positive durations. Suggestion: add a small positive value to zero elements.