-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Boosting method implementation (XGBoost) #1209
Conversation
Hello @RomanKharkovskoy! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found: There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻 Comment last updated at 2024-07-24 17:08:37 UTC |
Выставлять на ревью PR-ы без описания и с PEP8-дефектами - плохая практика. Изменения не покрыты тестами (нужны в случае если поведение чем-то отличается от предыдущей реализации xgb). |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1209 +/- ##
==========================================
+ Coverage 79.96% 80.10% +0.14%
==========================================
Files 146 146
Lines 10100 10190 +90
==========================================
+ Hits 8076 8163 +87
- Misses 2024 2027 +3 ☔ View full report in Codecov by Sentry. |
11a5395
to
a9bd634
Compare
All PEP8 errors has been fixed, thanks ❤️ Comment last updated at |
37d7326
to
f0c4098
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не совсем понял, как идёт сравнение с Федотом?
Берутся xgboost из коробки и федот с 1 моделью (xgboost)?
Тогда перед имплементацией стоит взять больше датасетов (хотя бы 10), запустить их минимум по 5 раз и усреднить
Возможно, @nicl-nno знаешь более оптимальные цифры или датасеты подскажешь?
fedot/core/operations/evaluation/operation_implementations/models/boostings_implementations.py
Show resolved
Hide resolved
fedot/core/operations/evaluation/operation_implementations/models/boostings_implementations.py
Show resolved
Hide resolved
e770fc1
to
dacd08e
Compare
Взял по 10 датасетов для классификации (заменил таблицу в шапке PR'а). XGBoost берётся из коробки + заполняются пропуски с помощью sklearn.SimpleInputer и кодируются категориальные признаки с помощью sklearn.OneHotEncoder. А для сравнения с FEDOT берётся predefined_model='xgboost' |
А усреднение по скольки запускам считаешь? |
…eta for xgboost and xgbreg in model_repository.json
/fix-pep8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-- wip --
План
Реализовать convert_to_dmatrix()Как работает
Реализован интерфейс fit/predict в родительском классе FedotXGBoostImplementation
Код
Интерфейс fit/predict не поддерживает работу с внутренним типом данных
xgboost.DMatrix
, поэтому необходимо было найти обходной путь. В данном случае был использован тип данныхpandas.DataFrame
.Внутри интерфейса идёт преобразование
InputData
вpandas.DataFrame
(categorical_idx
становятсяcategory
, аnumerical_idx
становятсяfloat
Код
Таблица сравнения метрик из Fedot'а и из без AutoML (inputer+кодирование категориальных данных)
Метрики из коробки оказались лучше, чем метрики из Fedot'а, что может быть связано с внутренним препроцессингом внутри Fedot'а.