square / pysurvival

Open source package for Survival Analysis modeling
https://www.pysurvival.io/
Apache License 2.0
347 stars 107 forks source link

auto_scaler=False error #44

Open zys133 opened 2 years ago

zys133 commented 2 years ago

Hi, there is a bug when we turn off the auto_scaler.

Sample code: coxph = NonLinearCoxPHModel(auto_scaler=False) coxph.fit(feature_train, time_train, event_train)

Error:

UnboundLocalError Traceback (most recent call last)

in 1 coxph = NonLinearCoxPHModel(auto_scaler=False) ----> 2 coxph.fit(feature_train, time_train, event_train) /opt/conda/lib/python3.7/site-packages/pysurvival/models/semi_parametric.py in fit(self, X, T, E, init_method, optimizer, lr, num_epochs, dropout, batch_normalization, bn_and_dropout, l2_reg, verbose) 608 T = T[order] 609 E = E[order] --> 610 X_original = X_original[order, :] 611 self.times = np.unique(T[E.astype(bool)]) 612 self.nb_times = len(self.times) UnboundLocalError: local variable 'X_original' referenced before assignment --------- https://github.com/square/pysurvival/blob/841b9bc6ce700ba8898d2a1488aa9cd25ee7a8e6/pysurvival/models/semi_parametric.py#L367 fix suggestion (starting from line 602): # Scaling data if self.auto_scaler: X_original = self.scaler.fit_transform( X ) else: X_original = X