(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