Skip to content
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

Actualized the set of candidate models for composing #250

Closed
nicl-nno opened this issue Mar 15, 2021 · 7 comments
Closed

Actualized the set of candidate models for composing #250

nicl-nno opened this issue Mar 15, 2021 · 7 comments

Comments

@nicl-nno
Copy link
Collaborator

Some model (e.g. LDA/QDA, SVC, etc) looks redunant since they are rare candidates in optimizer chains.
The best practices should be derived from state-of-the-art frameworks (TPOT, etc) to remove non-effective and add new models.

The 'old' models can be saved as an alternative variant of repository.json

@nicl-nno
Copy link
Collaborator Author

The following list can be used as initial assumption:
https://github.com/Ennosigaeon/dswizard/blob/master/ida/appendix.pdf

@kasyanovse kasyanovse self-assigned this Sep 28, 2023
@kasyanovse
Copy link
Collaborator

kasyanovse commented Sep 28, 2023

Текущий список моделей (неполный):

Регрессия
  • XGBRegressor
  • AdaBoostRegressor
  • GradientBoostingRegressor
  • DecisionTreeRegressor
  • ExtraTreesRegressor
  • RandomForestRegressor
  • SklearnLinReg
  • SklearnRidgeReg
  • SklearnLassoReg
  • SklearnSVR
  • SklearnSGD
  • LGBMRegressor
  • CatBoostRegressor
  • LinearRegRANSACImplementation
  • NonLinearRegRANSACImplementation
  • LinearRegFSImplementation
  • NonLinearRegFSImplementation
  • DecomposerRegImplementation
  • IsolationForestRegImplementation
  • FedotKnnRegImplementation
Классификация
  • XGBClassifier
  • SklearnLogReg
  • SklearnBernoulliNB
  • SklearnMultinomialNB
  • DecisionTreeClassifier
  • RandomForestClassifier
  • MLPClassifier
  • LGBMClassifier
  • CatBoostClassifier
  • LDAImplementation
  • QDAImplementation
  • FedotSVCImplementation
  • FedotCNNImplementation
  • FedotKnnClassImplementation
Кластеризация
  • SklearnKmeans
Предобработка
  • ScalingImplementation
  • NormalizationImplementation
  • ImputationImplementation
  • PCAImplementation
  • KernelPCAImplementation
  • PolyFeaturesImplementation
  • OneHotEncodingImplementation
  • LabelEncodingImplementation
  • FastICAImplementation
Работа с текстом
  • TfidfVectorizer
  • CountVectorizer
  • TextCleanImplementation
  • PretrainedEmbeddingsImplementation
Работа с временными рядами
  • ARIMAImplementation
  • AutoRegImplementation
  • STLForecastARIMAImplementation
  • ExpSmoothingImplementation
  • CGRUImplementation
  • PolyfitImplementation
  • GLMImplementation
  • RepeatLastValueImplementation
  • NaiveAverageForecastImplementation
  • LaggedTransformationImplementation
  • SparseLaggedTransformationImplementation
  • TsSmoothingImplementation
  • ExogDataTransformationImplementation
  • GaussianFilterImplementation
  • NumericalDerivativeFilterImplementation
  • CutImplementation

@kasyanovse
Copy link
Collaborator

kasyanovse commented Sep 28, 2023

Предлагаю уменьшить количество моделей для композиции. Основная мотивация - сократить пространство поиска оптимального пайплайна. Логика устранения: тяжелые или дублирующие друг друга модели.

  1. Для регрессии:
    1. SklearnLinReg - отлично заменяется SklearnRidgeReg
    2. SklearnSVR - слишком задачезависимо
    3. CatBoostRegressor - уже отключен
    4. XGBRegressor - уже отключен
    5. ExtraTreesRegressor - по сути тот же RandomForestRegressor
    6. DecisionTreeRegressor - RandomForestRegressor более эффективен
    7. GradientBoostingRegressor - LGBM значительно быстрее, а реализует тот же принцип
    8. AdaBoostRegressor - еще один небыстрый бустинг на деревьях. Можно заменить на LGBM. (а точно ли?)
    9. NonLinearRegRANSACImplementation - небыстрый алгоритм.
  2. Для временных рядов:
    1. ARIMAImplementation - сложно настраивать, эффективна только для ограниченного круга рядов
    2. CGRUImplementation - ресурсозатратно при невысокой эффективности
    3. SparseLaggedTransformationImplementation - можно сделать частью LaggedImplementation
    4. CutImplementation - очень специфический инструмент, который лучше всего использовать при ручном конструировании пайплайнов
    5. TsSmoothingImplementation, GaussianFilterImplementation - лучше всего реализовать один класс фильтров с параметром, регулирующим тип фильтрации
    6. NumericalDerivativeFilterImplementation - медленный, редко бывает полезен

@kasyanovse
Copy link
Collaborator

The best practices should be derived from state-of-the-art frameworks (TPOT, etc) to remove non-effective and add new models.

Я глянул списки моделей в TPOT и AutoGluon. Там очень много моделей, однако не понятно, все ли из них используются при подборе решения.

@kasyanovse
Copy link
Collaborator

Наиболее оптимальный вариант, кмк, создать укрупненные operations, отвечающие за классы моделей. Например, operation, отвечающие за леса, за градиентные бустинги, за линейные модели, и т.д.. На этапе композиции использовать эти operations, а на этапе тюнинга выбирать конкретную модель. Так получится использовать большой пул моделей без излишнего раздувания пространства поиска оптимальной структуры пайплайна.

@kasyanovse kasyanovse removed their assignment Dec 25, 2023
@kasyanovse
Copy link
Collaborator

Linked: #1217

@nicl-nno
Copy link
Collaborator Author

Moved to #1339.

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

No branches or pull requests

2 participants