Neste trabalho apresentamos a MH-AutoML, uma ferramenta de AutoML especializada para o domínio de detecção de malware Android. Diferentemente de outras ferramentas de AutoML, a MH-AutoML incorpora recursos importantes de transparência e interpretabilidade em todos os estágios do pipeline. A ferramenta incorpora também métodos de seleção de características específicos ao domínio em questão, bem como otimizações de hiperparâmetros que levam a resultados muitos bons, como modelos preditivos com 95% de recall, a um custo computacional relativamente baixo.
- Python 3.8.10 Ubuntu 20.04.04
- Python 3.9.13 Windows 10
- pandas==1.3.3
- numpy==1.20.1
- scipy==1.7.1
- scikit-learn==1.1.1
- lightgbm==4.0.6
- catboost==1.0.1
- optuna==2.10.1
- plotly==5.3.1
- shap==0.39.0
- lime==0.2.0.1
- mlflow==2.11.3
Clone o repositório:
git clone https://github.com/SBSegSF24/MH-AutoML.git Teste funcional rápido utilizando o dataset dataset_sujo.csv, com 15000 amostras e 51 características, o dataset tem valores ausentes, strings, NaN gerado aleatoriamente. O teste mínimo leva 5 minutos num computador Core i7 com 32GB RAM. Para executar a ferramenta você deve chamar a classe principal ./run_demo.sh.
- 1 Prepare seu ambiente executando ./config.sh Caso tenha problema de permissão negada utilize o comando:
chmod +x config.sh
chmod +x run_demo.sh
chmod +x run_reproducao_mh_automl.shO comando config.sh vai BAIXAR E INSTALAR o python3.8.10 em seu ambiente para que a ferramenta execute sem algum problema de compatibilidade.
./config.sh- 2 Carrege as dependencias e execute a ferramenta com ./run_demo.sh
./run_demo.sh- 1 Gerando a imagem docker.
sudo docker build -t mhautoml:latest .- 2 Executando a imagem docker.
sudo docker run --network host -v $(readlink -f . ):/MH-AutoML -it mhautoml - -d Dataset a ser utilizado
- -l Nome da coluna de classificação
- CPU: 4+ cores
- RAM: 16GB+
- Storage: 2GB+ de expaço disponivel
- MS-Windows 10 ou 11 64 bit ou Ubuntu 20.04.
- Python 3.8.10
Hardware: Intel(R) Core(TM) i7-1185G7, 32GB RAM. Software: Ubuntu 22.04.4 LTS, Linux version 5.15.153.1-microsoft-standard-WSL2, Docker version 24.0.7 (build ced0996), Python 3.8.10
Hardware: Intel Core i7-10700, 8 cores, 16 GB RAM. Software: Ubuntu 24.02 LTS, Python 3.12.3,Docker 26.1.4
Hardware: Intel(R) Core(TM) i7-1185G7, 32GB RAM. Software: Windows 11 Pro compilação 22631.3880, Python 3.9.13
Para executar os experimento com a ferramenta MH-AutoML basta executar o script run_experimento.sh, esse script executa a ferramenta para cada dataset utilizado no experimento. Abaixo está o comando de execução: Para execução completa pode levar mais de 2 horas nas segintes configurações: Hardware: Intel(R) Core(TM) i7-1185G7, 32GB RAM. Software: Ubuntu 22.04.4 LTS, Linux version 5.15.153.1-microsoft-standard-WSL2, Docker version 24.0.7 (build ced0996), Python 3.8.10
./run_reproducao_mh_automl.shPara executar os experimentos com AutoGluon, AutoPytorch, Auto-Sklearn, TPOT, MLJAR, HyperGBM e LightAutoML em todos os datasets, use o script run_tools_docker.sh, o script irá fazer a instalação e execução de todas ferramentas necessárias no Docker.
sudo ./run_tools_docker.sh <output_directory>Para uma demonstração no dataset Adroit, use o script run_tools_docker.sh com o argumento "--d":
sudo ./run_tools_docker.sh <output_directory> --d Para execução completa pode levar aproximadamente 28 horas e para a demonstração aproximadamente 3 horas nas segintes configurações: Hardware: Intel(R) Core(TM) i7-1185G7, 32GB RAM. Software: Ubuntu 22.04.4 LTS, Docker version 24.0.7 (build ced0996), Python 3.10.12
Embora não seja recomendado devido a possíveis conflitos de dependências, você pode instalar e executar cada ferramenta manualmente seguindo as instruções abaixo:
Para instalar e executar a reprodução para o autoPyTorch:
pip install autoPyTorch
python3 autopytorch_test.py -i ./Datasets -o <output_directory>Para instalar e executar a reprodução para o auto-sklearn:
pip install auto-sklearn
python3 autosklearn_test.py -i ./Datasets -o <output_directory>Para instalar e executar a reprodução para o hypergbm:
pip install hypergbm
python3 hypergbm_test.py -i ./Datasets -o <output_directory>Para instalar e executar a reprodução para o lightautoml:
pip install lightautoml
python3 lightautoml_test.py -i ./Datasets -o <output_directory>Para instalar e executar a reprodução para o mljar-supervised:
pip install mljar-supervised
python3 mljar_test.py -i ./Datasets -o <output_directory>Para instalar e executar a reprodução para o autogluon:
pip install autogluon
python3 autogluon_test.py -i ./Datasets -o <output_directory>Para instalar e executar a reprodução para o tpot:
pip install tpot
python3 tpot_test.py -i ./Datasets -o <output_directory>- Angelo Gaspar Diniz Nogueira pela revisão e contribuição no repositório da ferramenta.
- Paulo pela contribuição no desenvolvimento da ferramenta.
