CoolFace
Apppublic

lyzq/malicious-url-app

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
reporting.cpython-314.pyc42 linesDownload Raw Back to __pycache__
1+
2m6�i�����^RIHt^RIt^RIHt^RIHt^RIt	^RI3t^RIt
^RIHtHtHtHtHtHtHtHtHtHtRRRlltRRltR	R4ltRRltR
RltRRltRRltRRlt R#)�)�annotationsN)�Path)5�ConfusionMatrixDisplay�average_precision_score�balanced_accuracy_score�classification_report�confusion_matrix�f1_score�precision_recall_curve�precision_score�recall_score�
roc_auc_scorec6�,�V^8�dQhRRRRRRRRRR	/#)7��y_true�	pd.Series�dataset_name�str�8model_name�	threshold�float�return�dict�)�formats"�src\reporting.py�__annotate__rs<���������	�9��10�
�c��W8�P\4pRVRVRVR\\W^R74R\\	W^R74R\\W^R74R\\
W44R\\W44R	\\W44R11\W4P4R\WR^R
7/#)�dataset�modelr�	precision)�
zero_division�recall�f1�balanced_accuracy�roc_auc�average_precisionr	rT)�output_dictr#)�astype�intrrr
r12rrrr	�tolistr)r�y_scorerrr�y_preds&&&&& r�evaluate_predictionsr/s����"�
*�
*�3�
/�F��<����Y��U�?�6��K�L��%��V�1�E�F��e�H�V�1�=�>��U�#:�6�#J�K��5��v�7�8��U�#:�6�#K�L��,�V�<�C�C�E��!6�v�SW�gh�!i��rc�$�V^8�dQhRRRRRR/#)r�metrics�13list[dict]�pathrr�Noner)rs"rrr/s&��E�E�*�E�D�E�T�Erc�X�VP\P!V^R7RR7R#)r)�indentzutf-8)�encodingN)�14write_text�json�dumps)r1r3s&&r�save_metricsr;/s���O�O�D�J�J�w�q�1�G�O�Drc�$�V^8�dQhRRRRRR/#)rrr�target_precisionrrr)rs"rrr3s#����)��PU��Z_�rc��\W4wr4pRpRp\VRRVRRV4F,wr�p15W�8�gKW�8�gK\V164p\V	4pK.	V#)��?Ng������)r�zipr)rr-r=r"r$�17thresholds�selected�best_recall�prec�recrs&&&        r�select_threshold_by_precisionrG3se��$:�6�$K�!�I�z��H��K� #�I�c�r�N�F�3�B�K�� L���9��#��(9��Y�'�H���*�K�!M��Orc�$�V^8�dQhRRRRRR/#)rr1r2r3rr�pd.DataFramer)rs"rrr>s!����18��$��<�rc��\P!V4p.ROpW#,PRR.RR.R7pVPVRR7V#)r r%TF��by�	ascending)�index)r r!r"r$r%r&r'r()�pd�	DataFrame�sort_values�to_csv)r1r3�frame�columns�summarys&&   r�save_summary_tablerV>sO���L�L��!�E�	�G��n�(�(�Y��,=�$�PU��(�W�G��N�N�4�u�N�%��Nrc�$�V^8�dQhRRRRRR/#)rrUrI�output_pathrrr4r)rs"rrrOs!����l����$�rc���\P!RR7VPRR..RORRR7p\P!VRRRRR7\P19!^R	4\P!R204\P!R4\P!R4\P!4\P!V^�R
7\P!4R#)�21��figsizer r!�metric�score)�id_vars�22value_vars�var_name�23value_name�Set2)�data�x�y�hue�paletteg�������?z$Model Comparison Across Core Metrics�Score���dpiN)rZ�)r%r'r()�plt�figure�melt�sns�barplot�ylim�title�ylabel�xlabel�tight_layout�savefig�close)rUrX�melteds&& r�plot_metric_barsr{Os����J�J�w��
�\�\��G�$�9���	��F��K�K�V�x�7���P��H�H�Q����I�I�4�5��J�J�w���J�J�r�N������K�K���%��I�I�Krc�$�V^8�dQhRRRRRR/#)rr1r2rXrrr4r)rs"rrras!��24�25�Z�26�d�27�t�28rc���\P!^^R
R7wr#VP4p\W04FhwrE\P29!VR,4p\
VRR.R7pVPVRR7VPVR,R	VR30,24Kj	\P!4\P!V^�R7\P!4R#)rr[r	�Benign�	Malicious)r	�display_labelsF)�ax�colorbarr!z | r rkN)rZ�)rn�subplots�flattenrA�np�arrayr�plot�	set_titlerwrxry)r1rX�fig�axesr�r]�matrix�displays&&      r�plot_confusion_matricesr�as������Q��7�3�I�C��<�<�>�D��$�(�31�����&�!3�4�5��(�&�RZ�\g�Qh�i������U��+�32����w��(��F�9�,=�+>�?�@�	)�33�����K�K���%��I�I�Krc�$�V^8�dQhRRRRRR/#)r�top_featuresrrXrrr4r)rs"rrrns!����t��$��4�rc��\P!VR,4PRRR7p\P!RR7\P34!VR,VR,RR7\P!R4\P!R	4\P!4\P!V^�R357\P!4R#)
�	malicious�weightTrKr[�feature�#2457a5)�colorz4Top Character n-grams Associated with Malicious URLszCoefficient WeightrkN)r�rm)rOrPrQrnro�barhrtrvrwrxry)r�rXrSs&& r�plot_logistic_ngramsr�ns����L�L��k�2�3�?�?�8�W[�?�\�E��J�J�v���H�H�U�9�
�u�X��i�@��I�I�D�E��J�J�#�$������K�K���%��I�I�Krc�$�V^8�dQhRRRRRR/#)r�historyr2rXrrr4r)rs"rrrys!����:��D��T�rc�p�\P!V4p\P!RR7\P!VR,VR,RRRR7\P!VR,VR,RR	R36R7\P37!R4\P!R4\P!R
4\P!VR,4\P!4\P!4\P!V^�R7\P!4R#)r�r[�epoch�38train_loss�oz39Train lossr�)�marker�labelr��val_losszValidation lossz#d26a2ezCharacter CNN Training Curve�Epoch�LossrkN)r��)
rOrPrnror�rtrvru�xticks�legendrwrxry)r�rXrSs&& r�plot_training_historyr�ys����L�L��!�E��J�J�v���H�H�U�7�^�U�<�0��L�Xa�b��H�H�U�7�^�U�:�.�s�BS�[d�e��I�I�,�-��J�J�w���J�J�v���J�J�u�W�~���J�J�L������K�K���%��I�I�Kr)r?)!�40__future__rr9�pathlibr�matplotlib.pyplot�pyplotrn�numpyr��pandasrO�seabornrq�sklearn.metricsrrrrr	r41rrr
rr/r;rGrVr{r�r�r�rrr�<module>r�sR��"�����������.E���"�$42��r