Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A program that can be used to train machine learning models on a uploaded dataset.

License

Notifications You must be signed in to change notification settings

w0drs/TrainTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

19 Commits

Repository files navigation

🧠 TrainTool (ML Trainer)

flet_banner python_banner MIT_License contributions
Графическое приложение на Python для обучения ML-моделей без написания кода. Загружайте свои датасеты, выбирайте модель, обучайте и экспортируйте результаты — все в несколько кликов. Главная страница с блоками

✨ Возможности

  • 📊 Загрузка данных: Поддержка популярных форматов датасетов (CSV/TXT, Excel, JSON).
  • 🤖 Выбор модели: Интеграция нескольких моделей машинного обучения из библиотек scikit-learn, CatBoost.
  • ⚙️ Обучение: автоматический поиск лучших гиперпараметров и выбор лучшей модели. Присутствует функция автоматического преобразования числовых и категориальных колонок, заполнение пропусков в датасете.
  • 📈 Визуализация: Автоматическое построение графиков и метрик (Roc-Auc curve, Confusion Matrix и т.д.) для отчета.
  • 📄 Отчеты: Генерация отчетов об обучении в формате PDF с метриками и визуализацией.
  • 💾 Экспорт: Сохранение обученной модели в форматах pickle или joblib для последующего использования.

🖼️ Скриншоты

Процесс выбора датасета, модели и обучение выбранной модели

Загрузка датасета Редактирование датасета Выбор модели Выбор датасета Обучение модели
Загрузка датасета Редактирование датасета Выбор модели Выбор датасета Обучение модели

Экспортирование обученной модели и отчета

Экспортирование модели Пример pdf отчета (1) Пример pdf отчета (2) Пример pdf отчета (3)
Экспортирование модели Пример pdf отчета 1 Пример pdf отчета 2 Пример pdf отчета 3

🚀 Начало работы

Предварительные требования
Перед началом убедитесь, что у вас установлен Python 3.8 или новее.

Установка:

  1. Клонируйте репозиторий:
git clone https://github.com/w0drs/TrainTool.git
cd traintool
  1. Создайте и активируйте виртуальное окружение (рекомендуется):
# Для Linux/macOS
python3 -m venv venv
source venv/bin/activate
# Для Windows
python -m venv venv
.\venv\Scripts\activate
  1. Установите зависимости:
pip install -r requirements.txt

Запуск приложения Выполните команду в терминале из корневой директории проекта:

python main.py

Приложение запустится в отдельном окне.

📖 Как пользоваться

  1. Запустите приложение
  2. Нажмите на три полоски слева-сверху.
  3. На вкладке "Settings":
  • Нажмите "Import dataset"
  • В открывшемся окне выбирите датасет, который хотите загрузить (.csv / .txt / .xlsx / .json). Датасет загрузится и появится блок с ним.
  • Если в датасете разделитель не "запятая" или кодирование не "utf-8", то нажмите на блоке с датасетом иконку карандашика (редактирование датасета) и в открывшемся окне редактирования измените соответствущие параметры (иначе датасет не загрузится должным образом)
  • Если датасет загрузился хорошо, то при прокрутке вниз в окне редактирования появятся столбики "features" и "target", где перетаскиванием названий колонок датасета можно установить target значение для датасета, а также колонки с входными значениями (features). Не нужные колонки можно отключить.
  • Справа снизу нажмите на кнопку "Save" для сохранения настроект датасета.
  1. На вкладке "Models":
  • Нажмите на кнопку "Add model". Откроется окошко с добавлением блока. Тут можно изменить название и описание блока. После этого нажмите "Add".
  • Когда создастся блок, на нем нажмите на иконку шестерёнки (block settings).
  • В открывшемся окне редактирования блока в "Models" можно в выпадающем списке выбрать интересующую ML-модель.
  • Прокрутив ниже до "Dataset:", можно выбрать загруженный датасет, нажав на иконку с тремя точками. Вылезет окошко с загруженными датасетами, где его и можно будет выбрать.
  • Нажимаем "Save" для сохранения настроек блока.
  • Когда мы вернулись на вкладку "Models", то на созданном блоке нажимаем иконку ракеты (train model).
  • В открывшемся окне обучения модели нажимаем кнопку "train" справа снизу. Далее покажется текст прогресса обучения. Если модель обучилась успешно, то выведутся метрики выше текста с прогрессом.
  1. После обучения:
  • Нажмите "Export model" для экспортирования модели в формате pickle / joblib.
  • Нажмите "Export report" для создания отчета о модели.

Примечание по ошибкам:

  • При обучении модели текст прогресса может загореться красным (что означает ошибку обучения).
  • Если текст красный при загрузке датасета, то, возможно, дело в неправильных настройках датасета (разделитель, кодирование или не выбрана target колонка).
  • Если текст красный при обучении модели, то, возможно, не поставлена галочка в настройках датасета на автоматическом преобразовании датасета.
  • Если текст при обучении модели оранжевый, но окно с обучением можно закрыть, то произошла непредвиденная ошибка. Может, стоит выбрать другую модель или изменить настройки датасета.

🛠️ Технологии

Flet - Фреймворк для построения GUI на Python.
Pandas - Для обработки и анализа данных.
Scikit-learn - Основная библиотека для машинного обучения.
Matplotlib - Для визуализации данных и результатов.
CatBoost - Для использования градиентного бустинга.
fpdf - Для генерации PDF-отчетов.

📁 Структура проекта

TrainTool/
├── core/
| ├── datasets/
| | ├── dataset.py # Хранит в себе путь до датасета и его настройки
| | └── datasets_manager.py # Управляет всеми загруженными датасетами (Создает их, удаляет, возвращает датасет по его id)
| ├── metrics_visualization/
| | └── model_visualizer.py # Рисует графики для отчета
| ├── models/
| | ├── model.py # Сам 'блок' в котором содержится информация о выбранной ML-модели, id выбранного датасета, метриках обученной модели, имени, описании и цвете блока, настройках модели
| | └── models_manager.py # Управляет 'блоками' (Создает их, удаляет, возвращает блок по его id)
| ├── reports/
| | └── report_generator.py # Создает pdf отчет
| └── app_state.py # Меняет контент главного окна на контент с вкладки "Models" или с вкладки "Settings"
├── ui/
| ├── components/
| | ├── dataset_columns_widget.py # Виджет, позволяющий перетаскивать названия колонок датасета в столбик "features" или "target"
| | └── nav_drawer.py # Виджет, который появляется при нажатии иконки с тремя полосочками слева сверху. Он дает перейти во вкладки "Models" и "Settings"
| ├── dialogs/
| | ├── add_block_dialog.py # Окошко для добавления нового "блока" с моделью
| | ├── block_edit_dialog.py # Окошко для редактирования "блока" смоделью
| | ├── dataset_edit_dialog.py # Окошко для редактирования датасета
| | ├── dataset_info_dialog.py # Окошко, в котором содержится краткая информация о датасете
| | ├── export_model_dialog.py # Окно с экспортом модели
| | ├── information_windows.py # Окно для показа окон с информацией (ошибки там, удачные действия...)
| | └── train_model_dialog.py # Окно для обучения модели на выбранном датасете
| └── views/
| ├── grid_view.py # Виджет, в котором содержатся все блоки с моделями
| ├── main_view.py # Вкладка "Models"
| └── settings_view.py # Вкладка "Settings"
├── images/ # Папка со скриншотами для README
├── requirements.txt
├── README.md
└── main.py # Главный файл приложения

📜 Лицензия

Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE

📞 Контакты

Дмитрий – @w0drs (телеграм) Ссылка на проект: https://github.com/w0drs/TrainTool

About

A program that can be used to train machine learning models on a uploaded dataset.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /