89 lines
5.1 KiB
Plaintext
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 |