Diplomová práca - Vysvetliteľná Detekcia Malware
Používané modely na klasifikáciu v rámci práce:
- Random Forest
- Extra Trees Classifier (ETC)
- Bagging Classifier (BC)
- XGBoost (XGB)
- AdaBoost (ABC)
- Light Gradient Boosting Machine (LGBM)
Používané metódy vysvetliteľnosti v rámci práce:
- SHAP
- LIME
Aktuálna verzia konzolovej aplikácie sa nachádza v priečinku Final Solution
.
- Aktuálna verzia Python 3
- Inštalácia knižníc pomocou správcu balíkov
pip
pip install -r requirements.txt
python3 main_console.py
Po spustení aplikácie main_console.py
sa používateľovi zobrazí interaktívne CLI menu s dvoma hlavnými možnosťami:
- Tréning klasifikačného modelu
- Vysvetlenie modelu (XAI metódy)
Používateľ má možnosť vybrať si jeden z podporovaných modelov:
- AdaBoost Classifier
- Bagging Classifier
- ExtraTrees Classifier
- LGBM Classifier
- Random Forest Classifier
- XGBoost Classifier
- Cesta k CSV súboru s dátami (optimalizované pre dataset použitý v práci)
- Cesta k JSON súboru s parametrami modelu (dostupné v priečinku
Configs
) - Potvrdenie, či sa má spustiť evaluácia modelu po trénovaní
model.joblib
– uložený modelX_train.csv
,X_test.csv
,y_train.csv
,y_test.csv
xgboost_label_classes.npy
– len pri XGBoost modeli- (voliteľne pri zapnutej evaluácii):
classification report
confusion matrix
learning curve
Používateľ má možnosť zvoliť jednu z dvoch vysvetliteľných metód:
- SHAP (Global & Local Explainer)
- LIME (Local Explainer)
model.joblib
– natrénovaný klasifikátorX_train.csv
,X_test.csv
– vstupné atribútyy_test.csv
– cieľové hodnoty pre testovaciu množinumodel_name
– používateľský názov modelu (použije sa pre výstupné priečinky)xgboost_label_classes.npy
– súbor pre XGBoost model na zobrazovanie označení klasifikovaných tried
Aplikácia interaktívne ponúkne výber typov vizualizácií, ktoré sa majú vygenerovať:
- Beeswarm
- Barplot
- Heatmap
- Waterfall
- Decision
<model_name>_SHAP_globalne_vizualizacie/
<model_name>_SHAP_lokalne_vizualizacie/
Používateľ zadá počet vzoriek, ktoré sa majú analyzovať. Pre každú vzorku sa vytvoria:
- HTML vizualizácia vysvetlenia (
.html
) - Grafické zobrazenie pre každú triedu (
.png
)
<model_name>_LIME_lokalne_vizualizacie/