-
Notifications
You must be signed in to change notification settings - Fork 170
Conversation
* Dynamic features * Smart features (minerva-ml#61) * Update README.md * Update README.md * Update * Smart features update * More descriptive transformer name * Reading all data in main * More application features * Transformer for cleaning * Multiinput data dictionary * Fix (minerva-ml#63) * fixed configs * dropped redundand steps, moved stuff to cleaning, refactored groupby (minerva-ml#64) * dropped redundand steps, moved stuff to cleanining, refactored groupby * restructured, added stacking + CV * Fix format string * Update pipeline_manager.py clipped prediction -> prediction * added stratified kfold option (minerva-ml#77) * Update config (minerva-ml#79) * dropped redundand steps, moved stuff to cleanining, refactored groupby * restructured, added stacking + CV * Update pipeline_config.py * Dev review (minerva-ml#81) * dropped feature by type split, refactored pipleine_config * dropped feature by type split method * explored application features * trash * reverted refactor of aggs * fixed/updated bureau features * cleared notebooks * agg features added to notebook bureau * credit card cleaned * added other feature notebooks * added rank mean * updated model arch * reverted to old params * fixed rank mean calculations * ApplicationCleaning update (minerva-ml#84) * Cleaning - application * Clear output in notebook * clenaed names in steps, refactored mergeaggregate transformer, changed caching/saving specs (minerva-ml#85) * local trash * External sources notebook (minerva-ml#86) * Update * External sources notebook * Dev lgbm params (minerva-ml#88) * local trash * updated configs * dropped comment * updated lgb params * Dev app agg fix (minerva-ml#90) * dropped app_aggs * app agg features fixed * cleaned leftovers * dropped fast read-in for debug * External_sources statistics (minerva-ml#89) * Speed-up ext_src notebook * exernal_sources statistics * Weighted mean and notebook fix * application notebook update * clear notebook output * Fix auto submission (minerva-ml#95) * CreditCardBalance monthly diff mean * POSCASH remaining installments * POSCASH completed_contracts * notebook update * Resolve conflicts * Fix * Update neptune.yaml * Update neptune_random_search.yaml * Split static and dynamic features - credit card balance
* added nan_count * added nan count with parameter
* added simple features, parallel groupby, last-installment features * refactored last_installment features * added features for the very last installment
* added dynamic-trend features * formated configs * added skew/iqr features
* added number of credit agreement change features * reverted sample size
* previous_application handcrafted features * previous application cleaning * Update neptune.yaml * code improvement * Update notebook
* refactored aggs to calculate only once per training, sped up installment and credit card (only single index groupby) * sped up all hand crafted * fixed bureau worker errors * fixed isntallment names * fixed isntallment names * fixed bureau and prev_app naming bugs * reverted to vectorized where possible * updated hyperparams * updated early stopping params to meet convergence * reverted to old fallback neptune file * updated paths * updated paths, explored prev-app features
* Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Features - family - test * Features - family - aggregate * Features - family - aggregate 2 * Features - family - aggregate 3 * Features - family - aggregate 4 * Update pipeline_config.py
…#129) * new previous application features * Data cleaning * update application notebook * credit card cleaning * Data cleaning - groupby agg * Include suggested changes
* new previous application features * Data cleaning * update application notebook * credit card cleaning * Data cleaning - groupby agg * Include suggested changes * Fix
* added fraction features to eda and feature extraction, updated configs * updated hyperparams
* age/employment dummies (minerva-ml#104) * added diff features * New handcrafted features (minerva-ml#102) * Dynamic features * Smart features (minerva-ml#61) * Update README.md * Update README.md * Update * Smart features update * More descriptive transformer name * Reading all data in main * More application features * Transformer for cleaning * Multiinput data dictionary * Fix (minerva-ml#63) * fixed configs * dropped redundand steps, moved stuff to cleaning, refactored groupby (minerva-ml#64) * dropped redundand steps, moved stuff to cleanining, refactored groupby * restructured, added stacking + CV * Fix format string * Update pipeline_manager.py clipped prediction -> prediction * added stratified kfold option (minerva-ml#77) * Update config (minerva-ml#79) * dropped redundand steps, moved stuff to cleanining, refactored groupby * restructured, added stacking + CV * Update pipeline_config.py * Dev review (minerva-ml#81) * dropped feature by type split, refactored pipleine_config * dropped feature by type split method * explored application features * trash * reverted refactor of aggs * fixed/updated bureau features * cleared notebooks * agg features added to notebook bureau * credit card cleaned * added other feature notebooks * added rank mean * updated model arch * reverted to old params * fixed rank mean calculations * ApplicationCleaning update (minerva-ml#84) * Cleaning - application * Clear output in notebook * clenaed names in steps, refactored mergeaggregate transformer, changed caching/saving specs (minerva-ml#85) * local trash * External sources notebook (minerva-ml#86) * Update * External sources notebook * Dev lgbm params (minerva-ml#88) * local trash * updated configs * dropped comment * updated lgb params * Dev app agg fix (minerva-ml#90) * dropped app_aggs * app agg features fixed * cleaned leftovers * dropped fast read-in for debug * External_sources statistics (minerva-ml#89) * Speed-up ext_src notebook * exernal_sources statistics * Weighted mean and notebook fix * application notebook update * clear notebook output * Fix auto submission (minerva-ml#95) * CreditCardBalance monthly diff mean * POSCASH remaining installments * POSCASH completed_contracts * notebook update * Resolve conflicts * Fix * Update neptune.yaml * Update neptune_random_search.yaml * Split static and dynamic features - credit card balance * Dev nan count (minerva-ml#105) * added nan_count * added nan count with parameter * Dev fe installments (minerva-ml#106) * added simple features, parallel groupby, last-installment features * refactored last_installment features * added features for the very last installment * Dev fe instalments dynamic (minerva-ml#107) * added dynamic-trend features * formated configs * added skew/iqr features * added number of credit agreement change features (minerva-ml#109) * added number of credit agreement change features * reverted sample size * Dynamic features - previous application (minerva-ml#108) * previous_application handcrafted features * previous application cleaning * Update neptune.yaml * code improvement * Update notebook * Notebook - feature importance (minerva-ml#112) * Dev speed up (minerva-ml#111) * refactored aggs to calculate only once per training, sped up installment and credit card (only single index groupby) * sped up all hand crafted * fixed bureau worker errors * fixed isntallment names * fixed isntallment names * fixed bureau and prev_app naming bugs * reverted to vectorized where possible * updated hyperparams * updated early stopping params to meet convergence * reverted to old fallback neptune file * updated paths * updated paths, explored prev-app features * dropped duplicated agg * POS_CASH added features * POS CASH features added * POS_CASH_balance feature cleaning * Yaml adjustment * Path change
'<' instead of '>'
'<' instead of '>'
* application agg cleaning * update neptune.yaml
**kwargs): | ||
config, model_params, rs_config = full_config | ||
model_name = '{}{}'.format(clf_name, suffix) | ||
model_params = getattr(config, clf_name) |
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.
@kstrzala Why not simply go with config[clf_name] and config.random_search[clf_name] ?
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.
Because then you loose AttrDict behaviour (sad but true) and code fixing it would probably be similarly complex.
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.
ok, fair
src/pipeline_blocks.py
Outdated
PersistResults(**rs_config.callbacks.persist_results)] | ||
) | ||
features_train, features_valid = features | ||
if getattr(config.random_search, clf_name).n_runs: |
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.
@kstrzala since we have already fetched the random_search_params
lets just use random_search_params.n_runs
experiment_directory=config.pipeline.experiment_directory, | ||
**kwargs | ||
) | ||
return sklearn_preprocess, sklearn_preprocess_valid |
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.
@kstrzala I believe it is cleaner to have if else rather just if here.
@@ -470,6 +532,51 @@ def stacking_features(config, train_mode, suffix, **kwargs): | |||
return feature_combiner | |||
|
|||
|
|||
def stacking_normalization(features, config, train_mode, suffix, **kwargs): |
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.
@kstrzala Since we are working on predictions at this point I am wondering which (if any) normalization strategy should one choose. I guess for our problem normalized rank could be a better choice than normalizing the predictions. What do you think?
src/pipeline_manager.py
Outdated
@@ -410,6 +410,7 @@ def _read_data(dev_mode, read_train=True, read_test=False): | |||
on='SK_ID_BUREAU', how='right') | |||
if dev_mode: |
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.
@kstrzala I don't understand what it does since we've loaded only nrows from bureau anyways via .read_csv(...nrows)
src/pipelines.py
Outdated
@@ -99,9 +106,6 @@ def xgboost(config, train_mode, suffix=''): | |||
|
|||
|
|||
def sklearn_main(config, ClassifierClass, clf_name, train_mode, suffix='', normalize=False): |
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.
@kstrzala let's just call it sklearn_pipeline
or sklearn_classifier
or something along those lines. sklearn_main
could mean a lot of things
Major issues
-cleaning in sklearn models: move normalization/fillna/one_hot into sklearn_preprocess block
-stacking_normalization block for log_reg stacking
Minor issues
-parameter udpate