From 1e882df7584c5c4cb65ea56fbe1827bc8382e4fd Mon Sep 17 00:00:00 2001 From: Andrea Gobbi Date: Fri, 23 Feb 2024 15:25:41 +0100 Subject: [PATCH] ag added conda env --- README.md | 5 +- environment.yml | 154 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 environment.yml diff --git a/README.md b/README.md index 1bd9ef4..c07926d 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,14 @@ Questo serve per splittare il dataset (small o normale) in train, validation e t Questo e' il core del programma: ho messo una griglia di iperparametri con dei range di solito utilizzati. Si allena un xgboost a massimizzare MCC (non accuracy che non e' indicato in caso di classi sbilanciate). Si imposta il numero di trial (suggerisco almeno 1000) e un timeout (in caso di risorse limitate). `num_boost` e' il numero massimo di step, c'e' un sistema di overfitting detection per fermarlo prima. ## gain_accuracy_train -Si puo' usare come no ma l'idea e' che, una volta trovato il set di parametri posso giocare con le variabili di input. Esse vengono ordinate utilizzando lo score (`best_model.get_fscore())`). +L'idea e' che, una volta trovato il set di parametri ottimale, posso giocare con le variabili di input. A farla bene si dovrebbe rilanciare l'ottimizzazione per ogni scelta delle variabili, ma costerebbe molto piu' tempo. +Le features vengono ordinate per importanza utilizzando lo score (`best_model.get_fscore())`). ![Feature importance](img/FI.png) A questo punto, partendo dalla piu' importante si allena il modello con N features e si confrontano i valori. ![Risultati per numero di features](img/FS.png) - Questo puo' essere utilizzato anche per dire: per avere il x% di accuracy devo utilizzare almeno queste variabili. Mi viene in mente ad esempio i campi obbligatori del form da compilare... + Questo puo' essere utilizzato anche per dire: per avere il x% di accuracy devo utilizzare almeno queste variabili. Mi viene in mente ad esempio 'questi sono i campi obbligatori del form da compilare'. ## Notebooks diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..d25ed59 --- /dev/null +++ b/environment.yml @@ -0,0 +1,154 @@ +name: pid +channels: + - defaults +dependencies: + - _libgcc_mutex=0.1=main + - _openmp_mutex=5.1=1_gnu + - bzip2=1.0.8=h7b6447c_0 + - ca-certificates=2023.12.12=h06a4308_0 + - expat=2.5.0=h6a678d5_0 + - ld_impl_linux-64=2.38=h1181459_1 + - libffi=3.4.4=h6a678d5_0 + - libgcc-ng=11.2.0=h1234567_1 + - libgomp=11.2.0=h1234567_1 + - libstdcxx-ng=11.2.0=h1234567_1 + - libuuid=1.41.5=h5eee18b_0 + - ncurses=6.4=h6a678d5_0 + - openssl=1.1.1w=h7f8727e_0 + - pip=23.3.1=py311h06a4308_0 + - python=3.11.0=h7a1cb2a_3 + - readline=8.2=h5eee18b_0 + - setuptools=68.2.2=py311h06a4308_0 + - sqlite=3.41.2=h5eee18b_0 + - tk=8.6.12=h1ccaba5_0 + - wheel=0.41.2=py311h06a4308_0 + - xz=5.4.5=h5eee18b_0 + - zlib=1.2.13=h5eee18b_0 + - pip: + - alembic==1.13.1 + - anyio==4.2.0 + - argon2-cffi==23.1.0 + - argon2-cffi-bindings==21.2.0 + - arrow==1.3.0 + - asttokens==2.4.1 + - async-lru==2.0.4 + - attrs==23.2.0 + - babel==2.14.0 + - beautifulsoup4==4.12.3 + - bleach==6.1.0 + - catboost==1.2.2 + - certifi==2024.2.2 + - cffi==1.16.0 + - charset-normalizer==3.3.2 + - cloudpickle==3.0.0 + - colorlog==6.8.2 + - comm==0.2.1 + - contourpy==1.2.0 + - cycler==0.12.1 + - debugpy==1.8.0 + - decorator==5.1.1 + - defusedxml==0.7.1 + - executing==2.0.1 + - fastjsonschema==2.19.1 + - fonttools==4.47.2 + - fqdn==1.5.1 + - greenlet==3.0.3 + - idna==3.6 + - imageio==2.33.1 + - imbalanced-learn==0.12.0 + - imblearn==0.0 + - ipykernel==6.29.0 + - ipython==8.21.0 + - isoduration==20.11.0 + - jedi==0.19.1 + - jinja2==3.1.3 + - joblib==1.3.2 + - json5==0.9.14 + - jsonpointer==2.4 + - jsonschema==4.21.1 + - jsonschema-specifications==2023.12.1 + - jupyter-client==8.6.0 + - jupyter-core==5.7.1 + - jupyter-events==0.9.0 + - jupyter-lsp==2.2.2 + - jupyter-server==2.12.5 + - jupyter-server-terminals==0.5.2 + - jupyterlab==4.0.12 + - jupyterlab-pygments==0.3.0 + - jupyterlab-server==2.25.2 + - kiwisolver==1.4.5 + - lazy-loader==0.3 + - lime==0.2.0.1 + - llvmlite==0.42.0 + - mako==1.3.2 + - markupsafe==2.1.4 + - matplotlib==3.8.2 + - matplotlib-inline==0.1.6 + - mistune==3.0.2 + - nbclient==0.9.0 + - nbconvert==7.14.2 + - nbformat==5.9.2 + - nest-asyncio==1.6.0 + - networkx==3.2.1 + - notebook-shim==0.2.3 + - numba==0.59.0 + - numpy==1.26.3 + - optuna==3.5.0 + - overrides==7.7.0 + - packaging==23.2 + - pandas==2.2.0 + - pandocfilters==1.5.1 + - parso==0.8.3 + - pexpect==4.9.0 + - pillow==10.2.0 + - platformdirs==4.2.0 + - plotly==5.18.0 + - prometheus-client==0.19.0 + - prompt-toolkit==3.0.43 + - psutil==5.9.8 + - psycopg2-binary==2.9.9 + - ptyprocess==0.7.0 + - pure-eval==0.2.2 + - pycparser==2.21 + - pygments==2.17.2 + - pyparsing==3.1.1 + - python-dateutil==2.8.2 + - python-graphviz==0.20.1 + - python-json-logger==2.0.7 + - pytz==2024.1 + - pyyaml==6.0.1 + - pyzmq==25.1.2 + - referencing==0.33.0 + - requests==2.31.0 + - rfc3339-validator==0.1.4 + - rfc3986-validator==0.1.1 + - rpds-py==0.17.1 + - scikit-image==0.22.0 + - scikit-learn==1.4.0 + - scipy==1.12.0 + - send2trash==1.8.2 + - shap==0.44.1 + - six==1.16.0 + - slicer==0.0.7 + - sniffio==1.3.0 + - soupsieve==2.5 + - sqlalchemy==2.0.25 + - stack-data==0.6.3 + - tenacity==8.2.3 + - terminado==0.18.0 + - threadpoolctl==3.2.0 + - tifffile==2024.1.30 + - tinycss2==1.2.1 + - tornado==6.4 + - tqdm==4.66.1 + - traitlets==5.14.1 + - types-python-dateutil==2.8.19.20240106 + - typing-extensions==4.9.0 + - tzdata==2023.4 + - uri-template==1.3.0 + - urllib3==2.2.0 + - wcwidth==0.2.13 + - webcolors==1.13 + - webencodings==0.5.1 + - websocket-client==1.7.0 + - xgboost==2.0.3