Files
cicids2017-visualization/commands.txt
2025-07-28 22:40:31 -03:00

89 lines
5.1 KiB
Plaintext

(artigo_final) root@tiago:~/artigo_final# python3 preprocess_data_full.py
Carregando o dataset completo de: cicids2017.csv
Dataset completo carregado com 3056496 linhas e 79 colunas
Distribuição das classes antes da limpeza:
Label
BENIGN 2370815
DDoS 256054
DoS Hulk 231073
PortScan 158930
DoS GoldenEye 10293
FTP-Patator 7938
SSH-Patator 5897
DoS slowloris 5796
DoS Slowhttptest 5499
Bot 1966
Web Attack Brute Force 1507
Web Attack XSS 652
Infiltration 36
Web Attack Sql Injection 21
Heartbleed 11
Label 8
Name: count, dtype: int64
Convertendo 78 colunas para numérico...
Removidas 2909 linhas com valores NaN ou infinitos.
Removidas colunas com baixa variância: ['Bwd_PSH_Flags', 'Bwd_URG_Flags', 'Fwd_Avg_Bytes_Bulk', 'Fwd_Avg_Packets_Bulk', 'Fwd_Avg_Bulk_Rate', 'Bwd_Avg_Bytes_Bulk', 'Bw'Bwd_Avg_Bulk_Rate']
Características finais: 70 colunas
Amostras finais: 3053587 linhas
Distribuição das classes após limpeza:
Label
BENIGN 2369006
DDoS 256050
DoS Hulk 230124
PortScan 158804
DoS GoldenEye 10293
FTP-Patator 7935
SSH-Patator 5897
DoS slowloris 5796
DoS Slowhttptest 5499
Bot 1956
Web Attack Brute Force 1507
Web Attack XSS 652
Infiltration 36
Web Attack Sql Injection 21
Heartbleed 11
Name: count, dtype: int64
Aplicando normalização Min-Max...
Dataset pré-processado salvo em: cicids2017_preprocessed.csv
Formato final: (3053587, 71)
(artigo_final) root@tiago:~/artigo_final# python3 train_model.py
Carregando o dataset pré-processado de: cicids2017_preprocessed.csv
Treinando o modelo Random Forest...
Modelo salvo em: random_forest_model.joblib
Avaliando o modelo...
Acurácia: 0.9990
Precisão: 0.9979
Recall: 0.9978
F1-score: 0.9978
Matriz de confusão:
[[710271 431]
[ 455 204920]]
(artigo_final) root@tiago:~/artigo_final# python3 visualize_raw_data_optimized.py
Carregando o dataset completo de: cicids2017.csv
Dataset carregado com 3056496 linhas e 79 colunas.
✅ Coluna de rótulo detectada: 'Label'
📊 Coluna numérica selecionada para distribuição: 'Destination_Port'
✅ Gráfico de distribuição salvo: visualizations/raw_data_feature_distribution.png
✅ Gráfico de distribuição das classes salvo: visualizations/raw_data_label_distribution.png
(artigo_final) root@tiago:~/artigo_final# python3 visualize_processed_data.py
Carregando o dataset pré-processado de: cicids2017_preprocessed.csv
✅ Dataset carregado com 3053587 linhas e 71 colunas.
✅ Colunas no dataset: Destination_Port, Flow_Duration, Total_Fwd_Packets, Total_Backward_Packets, Total_Length_of_Fwd_Packets, Total_Length_of_Bwd_Packets, Fwd_Packet_Length_Max, Fwd_Packet_Length_Min, Fwd_Packet_Length_Mean, Fwd_Packet_Length_Std, Bwd_Packet_Length_Max, Bwd_Packet_Length_Min, Bwd_Packet_Length_Mean, Bwd_Packet_Length_Std, Flow_Bytes_s, Flow_Packets_s, Flow_IAT_Mean, Flow_IAT_Std, Flow_IAT_Max, Flow_IAT_Min, Fwd_IAT_Total, Fwd_IAT_Mean, Fwd_IAT_Std, Fwd_IAT_Max, Fwd_IAT_Min, Bwd_IAT_Total, Bwd_IAT_Mean, Bwd_IAT_Std, Bwd_IAT_Max, Bwd_IAT_Min, Fwd_PSH_Flags, Fwd_URG_Flags, Fwd_Header_Length, Bwd_Header_Length, Fwd_Packets_s, Bwd_Packets_s, Min_Packet_Length, Max_Packet_Length, Packet_Length_Mean, Packet_Length_Std, Packet_Length_Variance, FIN_Flag_Count, SYN_Flag_Count, RST_Flag_Count, PSH_Flag_Count, ACK_Flag_Count, URG_Flag_Count, CWE_Flag_Count, ECE_Flag_Count, Down_Up_Ratio, Average_Packet_Size, Avg_Fwd_Segment_Size, Avg_Bwd_Segment_Size, Fwd_Header_Length.1, Subflow_Fwd_Packets, Subflow_Fwd_Bytes, Subflow_Bwd_Packets, Subflow_Bwd_Bytes, Init_Win_bytes_forward, Init_Win_bytes_backward, act_data_pkt_fwd, min_seg_size_forward, Active_Mean, Active_Std, Active_Max, Active_Min, Idle_Mean, Idle_Std, Idle_Max, Idle_Min, Label
✅ Gráfico de distribuição das classes salvo como visualizations/processed_data_label_distribution.png
✅ Gráfico de distribuição da feature 'Destination_Port' salvo como visualizations/processed_data_feature_distribution.png
✅ Processamento completo!
✅ Gráficos salvos em: 'visualizations/'
✅ Total de linhas processadas: 3053587
✅ Total de colunas processadas: 71
(artigo_final) root@tiago:~/artigo_final# python3 interpret_model_with_shap.py
Carregando modelo de: random_forest_model.joblib
Carregando dados de: cicids2017_preprocessed.csv
Gerando explicações SHAP com 10000 amostras...
✅ Gráfico de importância (bar) salvo como shap_bar_plot.png
✅ Gráfico de importância (summary) salvo como shap_summary_plot.png
📌 Feature mais importante: Destination_Port
✅ Gráfico de dependência salvo como shap_dependence_plot.png