Если вы обучили модель, получили предсказания и хотите записать результаты в файл (или загрузить готовые прогнозы куда-то ещё), эта статья поможет быстро сделать всё правильно. Мы рассмотрим самые популярные способы сохранения: CSV, JSON, Pickle, JobLib, ONNX, HDF5/Parquet и даже таблиц Excel & Google-Sheets. Везде будут примеры «готового» кода, а также адреса и контакты, где можно получить консультацию круглосуточно, бесплатно и без регистрации.
Оглавление
- Зачем вообще сохранять предсказания
- Подготовка данных: рекомендация «ДО» и «ПОСЛЕ» прогноза
- Часть 1: быстрый и простой CSV → открыть в Excel
- Часть 2: Pickle/Joblib → сериализуем скрипт и прогноз
- Часть 3: JSON → для API и веб-приложений
- Часть 4: ONNX, Parquet, HDF5 → серьёзные объёмы и производительность
- Часть 5: автоматическая выгрузка в Google-Sheets без ключа
- Контакты и помощь онлайн: куда написать или позвонить
- Частые ошибки и FAQ
Зачем нужно сохранять прогнозы?
- Вы завершили предсказание и хотите «закрыть ноутбук» без потери данных.
- Результаты нужны другим людям: бухгалтерии, менеджменту, заказчику.
- Точки прогноза впоследствии пойдут в вашу LSTM/ARIMA-модель, и её не нужно будет переобучать заново.
- HCA Healthcare использует подобный процесс для обработки 2 400 точек данных в день и публикации внутри системы — удобно сравнить с тем, что делает ваш проект.
Подготовка: проверьте данные ДО прогноза
Почти все ошибки «ничего не сохраняет» случаются из-за пропущенных значений, неправильных типов данных или дублирующихся строк. Перед самым прогнозом:
df.isna.sum— убедитесь, что NaN’ов нет.X_test.shape, y_pred.shape— проверьте форматы.- Если используете TensorFlow / Keras LSTM:
model.save_weights('lstm.h5')и предсказания в.npy.
Часть 1: Сохранение в CSV — бесплатно и без регистрации
Самый быстрый способ при работе на любом сервере.
import pandas as pd
y_pred = model.predict(X_test)
out = pd.DataFrame({'id': ids, 'target': y_pred.flatten})
out.to_csv('predictions_03_02_2026.csv', index=False)
Как открыть: просто два клика — колонка Excel готова. Часто команды «посчитать лучшую модель без предоплаты» именно так и передают отчёт клиенту.
Часть 2: Pickle / Joblib, полное «замораживание» скрипта
- Pickle = стандарт Python;
- Joblib = аналог, но быстрее для массивов numpy.
import joblib
joblib.dump(model, 'lin_reg.pkl') # саму модель
joblib.dump(y_pred, 'predictions.pkl') # прогнозы
reg = joblib.load('lin_reg.pkl')
pred = joblib.load('predictions.pkl')
Глубокие специалисты почти всегда делают backup и кладут .pkl-файлы в архив — никаких конфликтов версий не возникнет, если использовать ту же Python-дистрибуцию (poetry/venv).
Часть 3: JSON для API и «прямого» сайта
JSON удобен, если нужно показать прогноз сразу на сайте или отправить в Telegram-бота.
import json
data = {str(id_): float(val) for id_, val in zip(ids, y_pred)}
with open('pred.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
Получается «легкая» карта: {«client42″: 21.031,»client43»: 11.777,…}. У к-либо открытого сервера можно развернуть быстро без предоплаты.
Часть 4: ONNX, Parquet, HDF5 — для больших объёмов
6.1 ONNX Export (TensorFlow → любой язык)
import tf2onnx
spec = (tf.TensorSpec((None, 30), tf.float32, name='input'),)
output_path = "model.onnx"
tf2onnx.convert.from_keras(model, input_signature=spec, opset=13).save(output_path)
6.2 Parquet (Pandas)
out.to_parquet('pred.parquet.gz', compression='gzip')
6.3 HDF5 (h5py, hdf5-python)
df.to_hdf('predictions.h5', key='pred', mode='w')
Parquet лучше всего брать, когда величины с плавающей точкой более 5 Гб — файл в нагрузку уменьшается в 3–5 раз без потери точности.
Часть 5: Автоматически выгрузить в Google-Sheets без ключа
- Установите
gspread→pip install gspread oauth2client. - Создайте пустую таблицу, откройте общий доступ.
- Добавьте менеджеру-консультанту e-mail (ниже в блоке контактов) → он мгновенно закачает.
import gspread
from google.oauth2.service_account import Credentials
sc = ['https://www.googleapis.com/auth/spreadsheets','https://www.googleapis.com/auth/drive']
creds = Credentials.from_service_account_file('creds.json', scopes=sc)
gc = gspread.authorize(creds)
gc.open_by_key('YOUR_SHEET_ID').worksheet('result').update([out.columns.values.tolist] + out.values.tolist)
Всё бесплатно и онлайн — никакой кредитной карты не требуется. Нужна помощь? Напишите нам в ВК или Ватсап (см. ниже).
Контакты и помощь — бесплатные консультации
Все специалисты ниже отвечают круглосуточно, не требуют предоплаты и гарантируют результат.
- Телефон: +7 (987) -23-45-67 — WhatsApp и голос 24/7;
- Telegram: @rune_helper — личный приём онлайн, задайте любой вопрос по мантрам, рунам или сохранению модели;
- ВКонтакте: vk.com/rune_mage — чат до 500 человек, консультация без регистрации;
- Сайт-портал: magicdata.run — пишите форму, получите ответ за 5 минут (без предоплаты, гарантия результата);
- Онлайн прямо сейчас: живая чат-ряд (после загрузки страницы в браузере доступна мини-помощь).
Если вам нужно найти номер телефона мастера или по отзывам — поиск-блок на главной странице настроен на «без предоплаты».
Частые вопросы
- Q1: «Прогноз сохранился в файл, но при загрузке форма ломается»
- A1: Убедитесь, что колонки в
DataFrameи сайт-API совпадают по типу (float32 vs float64). - Q2: «Как открыть .pkl в другом файле без лишнего импорта?»
- A2: Используйте
jdupes lin_reg.pkl— проверьте результирующий дайджест на повторение значений. - Q3: «Удобнее ли сохранять модель YOLO в .onnx для Kaggle-конкурса?»
- A3: Да, формат ONNX (opset 12+) позволяет загрузить чужой файл на Kaggle «без решистрации».
08:14 — последний build: Python 3.12, TensorFlow 2.16, joblib 1.4.2, Pandas 2.2.1