Я новичок в python. Я пытаюсь предсказать «time_to_failure» для данного «oustic_data »в тестовом CSV-файле, используя алгоритм catboost.
def catbostregtest(X_train, y_train):
# submission format
submission = pd.read_csv('sample_submission.csv', index_col='seg_id')
X_test = pd.DataFrame()
# prepare test data
for seg_id in submission.index:
seg = pd.read_csv('test/' + seg_id + '.csv')
ch = gen_features(seg['acoustic_data'])
X_test = X_test.append(ch, ignore_index=True)
# model of choice here
model = CatBoostRegressor(iterations=10000, loss_function='MAE', boosting_type='Ordered')
model.fit(X_train, y_train) #error line
y_hat = model.predict(X_test) #error line
# write submission file LSTM
submission['time_to_failure'] = y_hat
submission.to_csv('submissionCAT.csv')
print(model.best_score_)
Эта функция« catbostregtest »выдает мне ошибку с ошибкой loglog
Трассировка (последний последний вызов):
Файл "E: \ dir \ question.py", строка 68, в main ()
Файл "E: \ dir \ question .py ", строка 65, в главном catbostregtest (X_train, y_train)
Файл" E: \ dir \ question.py ", строка 50, в catbostregtest model.fit (X_train, y_train)
Файл "C: \ Users \ xyz \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ catboost \ core.py", строка 4330, вписывается в файл save_snapshot, snapshot_file, snapshot_interval, init_model)
Файл "C: \ Users \ xyz \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ catboost \ core.py", строка 1690, в _fit train_params ["init_model"]
Файл "C: \ Users \ xyz \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ catboost \ core.py", строка 1225, в _train self._object._train (train_pool, test_pool, params, allow_clear_pool, init_model._object, если init_model else None)
Файл "_catboost.pyx", строка 3870, в _catboost._CatBoost._train
Файл "_catboost.pyx", строка 3916, в _catboost._CatBoost._train
CatBoostError: c: / goagent / pipelines / buildmaster / catboost.git / catboost / libs / data / quantification. cpp: 2424: все функции являются постоянными или игнорируется.
Это функция gen_features
def gen_features(X):
strain = []
strain.append(X.mean())
strain.append(X.std())
strain.append(X.min())
strain.append(X.max())
strain.append(X.kurtosis())
strain.append(X.skew())
strain.append(np.quantile(X,0.01))
strain.append(np.quantile(X,0.05))
strain.append(np.quantile(X,0.95))
strain.append(np.quantile(X,0.99))
strain.append(np.abs(X).max())
strain.append(np.abs(X).mean())
strain.append(np.abs(X).std())
return pd.Series(strain)
Эта функция вызывается из основной функции
def main():
train1 = pd.read_csv('train.csv', iterator=True, chunksize=150_000, dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})
X_train = pd.DataFrame()
y_train = pd.Series()
for df in train1:
ch = gen_features(df['acoustic_data'])
X_train = X_train.append(ch, ignore_index=True)
y_train = y_train.append(pd.Series(df['time_to_failure'].values[-1]))
catbostregtest(X_train, y_train)
Вот структура поезда. CSV-файл. Вот структура файла sample_submission.csv. Вот структура одного из тестовых (csv) файлов.
Как устранить ошибку, возникающую во время прогнозирования из модели catboost? Как я могу удалить эту ошибку, пожалуйста, помогите. Вы можете скачать и запустить проект в spyder ide по этой ссылке https://drive.google.com/file/d/1JFsNfE22ef82e-dS0zsZHDE3zGJxnJ_J/view?usp=sharing или https://github.com/princit/catboostAlgorithm