Skip to content

Conversation

@dmitryglhf
Copy link
Collaborator

@dmitryglhf dmitryglhf commented Jan 23, 2025

This is a 🔨 code refactoring.

Summary

  • New Initial Assumptions: Updated initial assumptions by adding boosting-based solutions (CatBoost, XGBoost, LightGBM).

    Comparison table between old and new assumptions (validated on automlbenchmark small dataset 1h8c):

    Metric (mean) main (Random Forest first) new (GBM joined with Linear model)
    0 auc 0.869263 0.879746
    1 acc 0.84667 0.852339
    2 balacc 0.805336 0.822745
    3 logloss 0.449189 0.377827
    4 training_duration, s 242.554 251.445

Context

Closes #1341

@pep8speaks
Copy link

pep8speaks commented Jan 23, 2025

Hello @dmitryglhf! 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 2025-01-23 15:41:19 UTC

@dmitryglhf
Copy link
Collaborator Author

/fix-pep8

@github-actions
Copy link
Contributor

github-actions bot commented Jan 23, 2025

All PEP8 errors has been fixed, thanks ❤️

Comment last updated at Tue, 18 Feb 2025 16:48:09

@dmitryglhf
Copy link
Collaborator Author

dmitryglhf commented Jan 23, 2025

Discovered three most useful assumptions.

Metric (mean) main (Random Forest first) gbm_linear xgb_lgbm_linear rf_in_fork
0 auc 0.869263 0.879746 0.877597 0.878225
1 acc 0.84667 0.852339 0.848727 0.85005
2 balacc 0.805336 0.822745 0.818386 0.819006
3 logloss 0.449189 0.377827 0.392734 0.396282
4 training_duration 242.554 251.445 213.057 246.447
Pipelines and full comparison table
  1. GBM_Linear
    image

  2. XGB_LGBM_Linear
    image

  3. RF_in_Fork
    image

Full comparison table: full_comparison.xlsx

Full tables for each pipeline:
gbm_catboost_new_params.csv
main_rf.csv
rf_in_fork.csv

@codecov
Copy link

codecov bot commented Jan 23, 2025

Codecov Report

Attention: Patch coverage is 0% with 1 line in your changes missing coverage. Please review.

Project coverage is 80.58%. Comparing base (4df6afe) to head (80d8f48).
Report is 13 commits behind head on master.

Files with missing lines Patch % Lines
...mplementations/models/boostings_implementations.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1359      +/-   ##
==========================================
+ Coverage   80.15%   80.58%   +0.43%     
==========================================
  Files         146      146              
  Lines       10515    10515              
==========================================
+ Hits         8428     8474      +46     
+ Misses       2087     2041      -46     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dmitryglhf
Copy link
Collaborator Author

dmitryglhf commented Jan 23, 2025

@nicl-nno Среди трех начальных приближений стоит оставить все или же только то, которое улучшает метрики больше остальных?

@nicl-nno
Copy link
Collaborator

Среди трех начальных приближений стоит оставить все или же только то, которое улучшает метрики больше остальных?

Зависит от того, меняется ли лидер при смене группы датасетов. Если везде +-один вариант доминирует - то можно его иоставить.

@dmitryglhf
Copy link
Collaborator Author

Looks like FEDOT mostly choosing and modifyinggbm_linear assumption.

Details

Binary classification:

binary_class_datasets = [
    'blood-transf.arff.csv', 'christine.arff.csv', 'jasmine.arff.csv',
    'phoneme.arff.csv', 'sylvine.arff.csv',
]

image

Multiclass classification:

multi_class_datasets = [
    'car.arff.csv', 'cnae-9.arff.csv', 'dilbert.arff.csv', 'fabert.arff.csv',
    'mfeat-factors.arff.csv', 'segment.arff.csv', 'vehicle.arff.csv'
]

image

Regression:

regression_datasets = [
    'analcatdata_negotiation.arff.csv', 'bodyfat.arff.csv', 'cleveland.arff.csv', 
    'cloud.arff.csv', 'kin8nm.arff.csv', 'liver-disorders.arff.csv'
]

image

Logs:
class_compare_datasets.log
regr_compare_datasets.log

@nicl-nno
Copy link
Collaborator

nicl-nno commented Feb 1, 2025

Looks like FEDOT mostly choosing and modifyinggbm_linear assumption

А это хорошо или плохо?

@dmitryglhf
Copy link
Collaborator Author

Looks like FEDOT mostly choosing and modifyinggbm_linear assumption

А это хорошо или плохо?

Это промежуточное сообщение, чтобы не потерять результаты, хотел по нему задать вопрос.
В нем сравнение какое начальное приближение доминирует. В задачах классификации преимущественно выбирается за основу или как итоговое решение первый пайплайн gbm_linear.
В случае с регрессией похоже за основу берется тот же пайплайн, но при этом он сильно меняется. Может быть стоит оставить текущее приближение rfr?

Regression:

regression_datasets = [
    'analcatdata_negotiation.arff.csv', 'bodyfat.arff.csv', 'cleveland.arff.csv', 
    'cloud.arff.csv', 'kin8nm.arff.csv', 'liver-disorders.arff.csv'
]

image

Logs: regr_compare_datasets.log

@dmitryglhf dmitryglhf requested a review from nicl-nno February 18, 2025 15:40
@dmitryglhf dmitryglhf merged commit 3b61d42 into master Feb 18, 2025
10 checks passed
@dmitryglhf dmitryglhf deleted the new-initial-assumptions branch February 18, 2025 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

enh: Design effective initial assumption

4 participants