Как предсказать с помощью алгоритма cat-boost
Я новичок в python. Я пытаюсь предсказать "time_to_failure" для данного "acoustic_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) 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" выдает мне ошибку с errorlog
Traceback (most recent call last):<br /> <br /> File "E:\dir\code.py", line 290, in main()<br /> <br /> File "E:\dir\code.py", line 230, in main catbostregtest(X_train, y_train)<br /> <br /> File "E:\dir\code.py", line 175, in catbostregtest y_hat = model.predict(X_test)<br /> <br /> File "C:\Users\xyz\AppData\Local\Continuum\anaconda3\lib\site-packages\catboost\core.py", line 4365, in predict return self._predict(data, "RawFormulaVal", ntree_start, ntree_end, thread_count, verbose, 'predict')<br /> <br /> File "C:\Users\xyz\AppData\Local\Continuum\anaconda3\lib\site-packages\catboost\core.py", line 1854, in _predict predictions = self._base_predict(data, prediction_type, ntree_start, ntree_end, thread_count, verbose)<br /> <br /> File "C:\Users\xyz\AppData\Local\Continuum\anaconda3\lib\site-packages\catboost\core.py", line 1271, in _base_predict return self._object._base_predict(pool, prediction_type, ntree_start, ntree_end, thread_count, verbose)<br /> <br /> File "_catboost.pyx", line 4015, in _catboost._CatBoost._base_predict<br /> <br /> File "_catboost.pyx", line 4020, in _catboost._CatBoost._base_predict<br /> <br /> CatBoostError: c:/goagent/pipelines/buildmaster/catboost.git/catboost/libs/data/model_dataset_compatibility.cpp:236: Feature 0 from pool must be mean.
Это функция 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)
Вот структура файла train.csv
поезд — ImgBB[^]
Вот структура файла sample_submission.csv
подача заявки — ImgBB[^]
Вот структура одного из тестовых файлов(csv).
тест — ImgBB[^]
Как я могу устранить ошибку, возникающую при создании прогноза из модели catboost?
Как я могу удалить эту ошибку, пожалуйста, помогите. Вы можете скачать и запустить проект в spyder ide по этой ссылке Ссылка
Что я уже пробовал:
Я перепробовал все процедуры по этим ссылкам
Примеры использования - CatBoost. Документация[^]
регрессия python - Catboost. Экстраполяция Функций - Переполнение Стека[^]
Richard MacCutchan
"CatBoostError: c:/goagent/pipelines/buildmaster/catboost.git/catboost/libs/data/model_dataset_compatibility.cpp:236: характеристика 0 от бассейна, должно быть, имеете в виду."
Это ключевое сообщение об ошибке.
Member 8840306
Что такое строка ошибки в коде? Что показывает это "ключевое сообщение об ошибке"?
Richard MacCutchan
Посмотрите на сообщения об ошибках, они дают номер файла и строки.