Articolo metodologico

Classificazione dello spam con macchine a vettori di supporto che utilizzano il punteggio di rango di Van der Waerden Attenzione

DOI:

10.3791/69082

31 ottobre 2025

* These authors contributed equally

In questo articolo

Sommario

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Questo studio propone un approccio innovativo basato su Support Vector Machine integrato con un meccanismo di attenzione delle caratteristiche potenziato dal punteggio di Van der Waerden, con l'obiettivo di affrontare le sfide dei dati di spam sparsi ad alta dimensione e migliorare le prestazioni di classificazione del rilevamento dello spam.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Con l'espansione dell'utilizzo della posta elettronica, lo spam è diventato una sfida critica, minacciando la sicurezza della rete e riducendo l'efficienza della comunicazione. I metodi di rilevamento convenzionali devono affrontare limitazioni persistenti: i modelli tradizionali di machine learning spesso hanno difficoltà con dati sparsi ad alta dimensione, mentre il deep learning richiede notevoli risorse computazionali.

Questo studio introduce una macchina vettoriale di supporto con maggiore attenzione (VWR-Attn-SVM) per risolvere questi problemi. Il metodo applica la trasformazione del rango di Van der Waerden per normalizzare le funzionalità del testo, migliorando la robustezza rispetto ai valori anomali e preservando le relazioni ordinali. Un meccanismo di attenzione migliorato ottimizza ulteriormente la selezione delle funzionalità attraverso l'elaborazione non lineare con regolarizzazione, evidenziando le funzionalità più rilevanti per il rilevamento dello spam.

Gli esperimenti sui set di dati UCI Spambase e Indonesian Spam mostrano che VWR-Attn-SVM supera i classificatori tradizionali in termini di accuratezza, precisione, richiamo, punteggio F1 e AUC. Combinando prestazioni elevate con costi computazionali ridotti, il metodo fornisce una soluzione efficiente e interpretabile per la classificazione dello spam, con potenziale estensione ad altre piattaforme basate su testo come la messaggistica e i social media.

Introduzione

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Nell'era digitale contemporanea, caratterizzata dalla rapida evoluzione di Internet e delle tecnologie digitali, l'e-mail è rimasta un pilastro indispensabile nell'ambito delle transazioni elettroniche e della comunicazione aziendale, nonostante la continua nascita e innovazione delle piattaforme di messaggistica istantanea e dei social media1. La sua capacità di trascendere i confini temporali e spaziali gli conferisce vantaggi unici, consentendo una comunicazione senza interruzioni in tutto il mondo in qualsiasi momento. Tuttavia, questa ampia adozione ha dato origine a un problema urgente e dannoso: la dilagante diffusione dello spam. I malintenzionati hanno sfruttato i sistemi di posta elettronica come veicoli per distribuire grandi quantità di pubblicità commerciali non richieste, software dannosi e contenuti illegali. Secondo una ricerca, dal 2012 al 2023 la percentuale di spam globale sul traffico e-mail totale è salita alle stelle del 7700%2,3. Questa inondazione di spam non solo interrompe gravemente le normali operazioni di posta elettronica degli utenti, ma pone anche minacce multiformi. Mina la privacy personale esponendo potenzialmente informazioni sensibili, mette a rischio la sicurezza aziendale attraverso il rischio di violazioni dei dati e infezioni da malware e persino destabilizza l'ordine economico facilitando attività fraudolente 4,5. Un'efficace classificazione dello spam riduce le perdite finanziarie legate al phishing del 40-60%6, evidenziando il valore pratico di metodi di filtraggio efficienti e accurati. Di conseguenza, lo sviluppo di un modello di rilevamento dello spam efficiente e accurato è emerso come un'area di ricerca cruciale per garantire la sicurezza della rete e migliorare l'efficienza.

Una parte sostanziale della ricerca esistente sul rilevamento dello spam si è concentrata sulle metodologie di apprendimento automatico e di apprendimento profondo. Nel campo dell'apprendimento automatico tradizionale, è stata esplorata e applicata una vasta gamma di tecniche. I metodi basati su regole, come gli alberi decisionali7, sono stati utilizzati per prendere decisioni di classificazione basate su regole predefinite derivate dalle caratteristiche dei dati. Anche i metodi di potenziamento 8,9,10, che aggregano più studenti deboli in uno forte, e la teoria degli insiemi approssimativi11, che si occupa dell'incertezza e dell'imprecisione nei dati, hanno mostrato potenziale. Inoltre, sono stati ampiamente impiegati metodi statistici tra cui la regressione logistica, i vicini K-nearest (KNN)12,13, Naive Bayes 14,15,16 e SVM 17,18,19. Questi approcci si basano in genere su metodi tradizionali di estrazione delle funzionalità come TF-IDF. Sebbene TF-IDF sia efficace nel quantificare l'importanza delle parole in un documento, fatica a catturare le intricate relazioni semantiche e le sfumature contestuali insite nei testi delle e-mail. Inoltre, quando si confrontano con dati ad alta dimensione e sparsi, tipici negli spazi di funzionalità di posta elettronica, questi metodi incontrano spesso colli di bottiglia computazionali. La loro limitata robustezza può portare a rimanere intrappolati in soluzioni ottimali locali durante il processo di addestramento, limitando così gravemente l'accuratezza della classificazione e la capacità di generalizzazione dei modelli.

Il deep learning, con la sua notevole capacità di estrazione automatica delle funzionalità, è emerso come una potente alternativa nel rilevamento dello spam. Algoritmi, come le reti neurali convoluzionali (CNN)20,21,22, le reti neurali ricorrenti (RNN)23 e le reti di memoria a breve termine (LSTM)24,25, così come i modelli più recenti basati su trasformatori come Word2vec e BERT26,27, hanno fatto passi da gigante nel migliorare le prestazioni di classificazione. Le CNN sono abili nell'estrarre caratteristiche locali dai dati, le RNN e le LSTM possono gestire bene i dati sequenziali, catturando le dipendenze temporali nel testo, e i modelli basati su Transformer eccellono nell'estrazione di relazioni semantiche complesse e informazioni contestuali. I recenti metodi di NLP efficienti, come i classificatori di testo basati su TinyML28, offrono solide linee di base per la classificazione dello spam. I modelli TinyML sono ottimizzati per dispositivi edge con memoria limitata. Confrontiamo il nostro metodo con questi approcci nella sezione Risultati, evidenziando i compromessi tra precisione, efficienza computazionale e flessibilità di implementazione. Tuttavia, questi modelli di deep learning presentano una serie di limitazioni. In genere richiedono un gran numero di parametri di addestramento, con conseguente elevata richiesta di risorse computazionali e tempi di addestramento prolungati. I modelli di deep learning come BERT richiedono una quantità di memoria 3-5 volte superiore e tempi di addestramento 10 volte più lunghi rispetto alle SVM tradizionali29, il che li rende meno adatti ad ambienti con risorse limitate. Ciò li rende meno pratici per l'implementazione in ambienti con risorse limitate, come dispositivi mobili o server di fascia bassa. Inoltre, le loro architetture complesse spesso le rendono meno interpretabili, il che può rappresentare uno svantaggio significativo nelle applicazioni in cui la comprensione del processo decisionale del modello è fondamentale.

In questo contesto, l'obiettivo generale di questo studio è quello di sviluppare un approccio innovativo in grado di superare i limiti dei metodi esistenti e affrontare efficacemente le sfide poste dalla natura altamente dimensionale e rada dei dati di spam. La proposta di Van der Waerden Rank Score Feature Attention-Enhanced SVM (VWR-Attn-SVM) rappresenta una nuova integrazione di tecniche volte a migliorare le prestazioni di rilevamento dello spam (Figura 1). Il principio fondamentale alla base del VWR-Attn-SVM risiede nel suo design unico che combina i punti di forza di più componenti.

figure-introduction-1
Figura 1: Diagramma di flusso generale della ricerca sulla classificazione dello spam con VWR-Attn-SVM. Questo diagramma di flusso illustra il flusso di lavoro della classificazione dello spam in base al punteggio di Van der Waerden e alla SVM con maggiore attenzione delle funzionalità, coprendo la preparazione dei dati (caricamento, suddivisione, pre-elaborazione), la preparazione sperimentale, la verifica delle correlazioni statistiche tra le caratteristiche TF-IDF e l'etichetta delle caratteristiche, il rilevamento dello spam basato su SVM con maggiore attenzione e il confronto tra più classificatori. Clicca qui per visualizzare una versione più grande di questa figura.

Il meccanismo di attenzione delle funzionalità avanzate di base elabora singoli campioni di posta elettronica con una dimensionalità specifica. Applicando la trasformazione del rango di Van der Waerden, normalizza le caratteristiche del testo dell'e-mail distorte da frequenze di parole anomale in una forma standard simile a una distribuzione normale. Questa trasformazione migliora significativamente la robustezza del modello, consentendogli di gestire meglio la variabilità dei dati di posta elettronica. I punteggi di rango di Van der Waerden sono stati preferiti al log-scaling e alle trasformate quantiliche per tre motivi: (1) Robusto per spammare i valori anomali delle caratteristiche (ad esempio, frequenze estreme delle parole), a differenza del log-scaling che amplifica il rumore a bassa frequenza; (2) Preserva le relazioni ordinali delle caratteristiche (fondamentale per la gerarchia degli indicatori di spam come "free" vs. "win"), mentre le trasformazioni quantiliche appiattiscono le distribuzioni; (3) Normalizzare a [0,1], facilitando l'integrazione del meccanismo di attenzione e garantendo una ponderazione coerente (Figura 2).

figure-introduction-2
Figura 2: Diagramma di flusso sperimentale. (A-C) Flussi di lavoro per la classificazione dello spam, che coprono la gestione dei dati, la selezione delle funzionalità, l'addestramento del modello, la valutazione e il confronto con/senza la trasformazione del punteggio di rango di Van der Waerden. Clicca qui per visualizzare una versione più grande di questa figura.

Strutturalmente, il meccanismo è dotato di una rete a due livelli completamente connessa per la trasformazione non lineare delle caratteristiche (Figura 2). Il primo strato, dotato di una funzione di attivazione LeakyReLU, riduce le dimensioni di ingresso introducendo la non linearità e incorpora uno strato di Dropout per mitigare l'overfitting. Il secondo livello, utilizzando una funzione Sigmoide, produce pesi di attenzione in grado di quantificare con precisione l'importanza di ciascuna caratteristica. Una strategia di regolarizzazione L1/L2 è integrata nel modello per ottimizzare la selezione delle caratteristiche, dove la regolarizzazione L1 promuove la sparsità, escludendo efficacemente le caratteristiche meno rilevanti, e la regolarizzazione L2 previene l'overfitting limitando l'entità dei pesi. Durante la fase di addestramento, viene adottato un framework di apprendimento multi-task, che combina la perdita di ricostruzione delle caratteristiche e la perdita di classificazione per ottimizzare i parametri del modello. Ciò consente al VWR-Attn-SVM di adattarsi con precisione alle funzioni TF-IDF ad alta dimensionalità e sparse dei testi delle e-mail, che sono caratteristiche della natura complessa del contenuto delle e-mail.

Il nostro metodo è ottimizzato per set di dati di spam basati su testo che vanno da diverse migliaia a diecimila (ad esempio, Spambase, set di dati di spam indonesiano (file supplementare 1)) e richiede risorse computazionali standard (processore Intel Core i7, 16 GB di RAM) per l'addestramento; l'inferenza può essere eseguita su un laptop standard (Intel Core i5, 8 GB di RAM) con latenza inferiore al secondo. I vincoli principali includono prestazioni limitate sullo spam non testuale (ad esempio, spam incorporato in immagini) e la dipendenza dalle funzionalità di testo strutturato. Rispetto alle tecnologie alternative esistenti, VWR-Attn-SVM presenta diversi vantaggi notevoli. A differenza dei tradizionali metodi di apprendimento automatico, non si basa esclusivamente sull'estrazione delle funzionalità di base, ma impara attivamente a ponderare le funzionalità in base alla loro importanza attraverso il meccanismo di attenzione avanzata, per acquisire meglio le caratteristiche più rilevanti per la classificazione dello spam. A differenza dei modelli di deep learning, raggiunge un equilibrio favorevole tra prestazioni ed efficienza computazionale. Richiede meno risorse computazionali e tempi di addestramento più brevi, il che lo rende più adatto a un'ampia gamma di applicazioni, in particolare quelle con risorse limitate. Questo approccio innovativo è applicabile non solo all'attività specifica di rilevamento dello spam nei sistemi di posta elettronica, ma ha anche il potenziale per l'estensione ad altri canali di comunicazione basati su testo, come le app di messaggistica istantanea, le piattaforme di social media e i servizi SMS, dove esistono problemi simili di diffusione di contenuti indesiderati e dannosi. Nel complesso, il VWR-Attn-SVM rappresenta un progresso significativo nel campo del rilevamento dello spam, offrendo una soluzione più pratica, efficiente e versatile per combattere il problema persistente dello spam nel panorama della comunicazione digitale.

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Protocollo

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1. Preparazione sperimentale (File Supplementare 2 e File Supplementare 3)

  1. Descrizione dei dati: caricare il set di dati di spam open source dall'UCI Machine Learning Repository per il rilevamento delle e-mail di spam30. Documentare che il set di dati contiene 4.601 istanze con 57 funzionalità continue e 1 etichetta di classe, inclusi 1.813 campioni di spam (39,4%) e 2.788 campioni non spam (60,6%) (Tabella 1).
  2. Importazione della libreria
    1. Importa le librerie essenziali (vedi la Tabella dei Materiali).
    2. Imposta un seme casuale globale su 42 per garantire la riproducibilità dei risultati.
  3. Configura le impostazioni di stampa: utilizza Times New Roman per il testo in inglese, risolvi i problemi di visualizzazione del segno meno e imposta la dimensione del carattere su 16 per una migliore leggibilità.

Tabella 1: Riepilogo delle statistiche del set di dati e delle definizioni delle funzionalità. Questa tabella presenta le variabili per la classificazione dello spam, tra cui la frequenza delle parole (word_freq_WORD), la frequenza dei caratteri (char_freq_CHAR), le metriche di lunghezza della corsa maiuscola e la variabile della classe di destinazione, con le descrizioni di ogni tipo di variabile e significato. Clicca qui per scaricare questa tabella.

2. Esperimento per verificare l'associazione statistica tra le caratteristiche TF-IDF e le etichette (File Supplementare 2 e File Supplementare 3)

  1. Pre-elaborazione dei dati
    1. Caricare i dataset (File Supplementare 1): primo dataset: spambase.csv; Secondo set di dati: spam_indonesian.csv.
    2. Esamina la distribuzione delle etichette e-mail spam e non spam e calcola la proporzione di ciascuna categoria.
    3. Binarizza queste caratteristiche usando la media come soglia per il prossimo test del chi-quadrato.
      NOTA: Assicurarsi che il file spam si trovi nella directory di lavoro corretta o fornire il percorso completo del file quando si utilizza il comando read.
  2. Pre-elaborazione dei test dei dati (file supplementare 2 e file supplementare 3)
    1. Utilizzare sklearn.feature_selection.chi2 per il test chi-quadrato sulle funzionalità binarie di TF-IDF:
      Chiamata in codice:
      Da sklearn.feature_selection importazione Chi2
      chi2_values, p_values = chi2(df_binary, df['spam'])
      significant_features_chi2 = [feature_cols[i] per i in np.dove(p_values < 0.05)[0]]
      print(f"Numero di caratteristiche significative: {len(significant_features_chi2)}")
      Output previsto: un sottoinsieme di funzionalità (ad esempio, 35 su 57) con associazione statistica alle etichette di spam, incluse parole chiave come "gratuito" o "rimuovi".
    2. Eseguire un'implementazione utilizzando sklearn.feature_selection.f_classif:
      Chiamata in codice:
      da sklearn.feature_selection importazione f_classif
      f_values, f_p_values = f_classif(df[feature_cols], df['spam'])
      significant_features_f = [feature_cols[i] per i in np.where(f_p_values < 0.05)[0]]
      print(f"Funzioni mantenute: {len(significant_features_f)}")
      NOTA: Questo in genere mantiene 40-50 funzioni (dipende dal set di dati), sovrapponendosi parzialmente ai risultati chi-quadrato.
      Prima di eseguire test statistici, verificare il formato e i parametri dei dati per garantire risultati accurati.
  3. Visualizzazione
    1. Seleziona le prime 20 funzioni con i valori p più piccoli dai risultati del test del chi-quadrato.
    2. Genera utilizzando seaborn.heatmap:
      Chiamata in codice:
      Importa Seaborn come SNS
      top_indices = np.argsort(p_values)[:20]
      top_features = [feature_cols[i] per i in top$\_$indices]
      corr_matrix = df[top_features + ['spam']].corr()
      plt.figure(figsize=(12, 10))
      sns.heatmap(corr_matrix, annot=Vero, cmap='coolwarm')
      plt.show()
      NOTA: Modello previsto: cluster di funzionalità correlate allo spam con l'etichetta spam in rosso (correlazione positiva).

3. Classificazione SVM con maggiore attenzione per il rilevamento dello spam (File supplementare 2 e File supplementare 3)

  1. Pre-elaborazione dei dati
    1. Caricamento dei dati: Dividi i dati utilizzando sklearn.model selection.train test split con seme fisso:
      Chiamata in codice:
      Da sklearn.model selection import train test split
      Treno X, test X, treno y, test y = suddivisione test (X, y, dimensione test=0,3, stato casuale=42)
    2. Standardizzazione e bilanciamento delle classi: Implementa tramite il campionamento imblearn.over. SMOTE (Tecnica di sovracampionamento sintetico delle minoranze (SMOTE)31):
      Chiamata in codice:
      da imblearn.over importazione di campionamento SMOTE
      # Predefinito: sampling strategy='auto', k neighbors=5
      smote=SMOTE(stato casuale=42)
      X treno colpito, y treno colpito = smote.fit ricampionamento(X treno, y treno)
      Bilancia la distribuzione delle classi (ad esempio, da 85:15 a 50:50).
  2. Architettura avanzata del modello di attenzione alle funzionalità: progetta un meccanismo che apprende i pesi di importanza delle funzionalità tramite trasformazioni non lineari multilivello. Assegna pesi di attenzione più elevati alle funzioni critiche per migliorarne l'impatto.
    1. Pre-elaborazione delle funzionalità (opzionale)
      1. Applicare la normale trasformazione del rango di Van der Waerden alle funzionalità di input. Converti le funzionalità non elaborate in una distribuzione normale approssimativa per migliorare la robustezza del modello. Usa la formula:
        figure-protocol-1
        Dove x rappresenta il vettore della caratteristica TF-IDF di un campione, R(x) è il rango del valore della caratteristica, d è la lunghezza del vettore (d=57) e φ-1 è la funzione di distribuzione cumulativa inversa della distribuzione normale standard.
        NOTA: utilizzare il parametro use_rank_transform (booleano) per controllare l'abilitazione della normale trasformazione del rango per l'elaborazione delle funzionalità.
    2. Trasformazione non lineare multistrato: apprendere una rappresentazione non lineare delle caratteristiche attraverso una rete a due livelli completamente connessa.
      1. Trasformazione del primo livello: utilizzare la formula:
        figure-protocol-2
        Dove W1 figure-protocol-3 Rk×d e k=64 (neuroni nascosti).
        Implementato in Keras con LeakyReLU:
        Chiamata in codice:
        da tensorflow.keras.layers importa Denso
        self.dense1=Dense(units=64, # 256 per VWR-Attn-SVM
        activation='leaky relu', # Pendenza negativa predefinita=0.01
        Regolarizzatore del kernel=Regolarizzatori.l1 L2(L1=0.0002, L2=0.0002))
        NOTA: Aggiungere uno strato di dropout con un tasso di dropout di 0,2 per evitare l'overfitting.
      2. Trasformazione del secondo livello: Applica la trasformazione del secondo livello utilizzando Sigmoid per generare pesi di attenzione nell'intervallo [0,1]. Usa la formula:
        figure-protocol-4
        Dove W2 figure-protocol-5 Rd×k e a figure-protocol-6 Rk sono i pesi di attenzione per ciascuna caratteristica. Seleziona Sigmoid invece di SoftMax per mantenere l'indipendenza dall'importanza di più funzionalità.
        Applicare l'attivazione del sigma Keras per i pesi dell'attenzione:
        Chiamata in codice:
        self.dense2 = Dense(input forma[-1], attivazione='sigmoide',
        Regolarizzatore del kernel=Regolarizzatori.l1 L2(L1=0.0002, L2=0.0002))
    3. Ponderazione delle caratteristiche: migliora le caratteristiche importanti eseguendo la moltiplicazione per elemento con i pesi di attenzione. Usa la formula:
      figure-protocol-7
      Dove figure-protocol-8 denota la moltiplicazione per elemento.
  3. Training del modello di attenzione alle funzionalità avanzate
    1. Ottimizzazione dell'obiettivo multi-task: minimizza una funzione di perdita ponderata che combina la perdita di ricostruzione e la perdita di entropia incrociata per addestrare il modello. Assicurarsi che il meccanismo di attenzione conservi le informazioni critiche concentrandosi sulle caratteristiche rilevanti per la classificazione. Usa la formula:
      figure-protocol-9
      Utilizza la perdita di errore quadratica media figure-protocol-10
      per ricostruire le caratteristiche di input e applicare la perdita di entropia incrociata figure-protocol-11
      all'attività di classificazione.
      Implementa la perdita multi-task personalizzata in PyTorch: Perdita personalizzata in Keras con alpha=0.5:
      Chiamata in codice:
      model.compile(optimizer='Adam',perdita={
      «enhanced_feature_attention»:«mse»,«classificazione»:
      'binary_crossentropy'},loss_weights={
      'enhanced_feature_attention': 0.5, 'classificazione': 0.5})
      Le bilance alfa=0,5 presentano la ricostruzione (MSE) e la classificazione (cross-entropia), portando a una convergenza stabile entro 50-100 epoche.
      NOTA: Applicare la regolarizzazione mista L1/L2 (rete elastica, resistenza predefinita 0,001) a entrambi i livelli completamente connessi per migliorare la selezione e la generalizzazione delle funzionalità.
    2. Impostazioni dei parametri: Impostare il coefficiente di peso α per controllare l'importanza relativa delle due perdite e utilizzare α = 0,5 nel codice. Configura la dimensione del batch su 64, imposta il numero di epoche su 200 e alloca il 10% dei dati per il set di convalida.
    3. Aggiungere funzioni di callback.
      Callback Keras con parametri predefiniti:
      Chiamata in codice:
      da tensorflow.keras.callbacks importa EarlyStopping, ReduceLROnPlateau
      callbacks = [EarlyStopping(monitor='val_loss', patience=5, mode='min', restore_best_weights
      =Vero), ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=5, min_lr=0.0005, verbose=1)]
      1. Incorporare il callback EarlyStopping per arrestare il processo di training quando la perdita di convalida non migliora per 5 epoche consecutive.
      2. Aggiungere il callback ReduceLROnPlateau per regolare in modo adattivo la velocità di apprendimento. Impostare il fattore di decadimento su 0,5 e la velocità di apprendimento minima su 0,0002.
    4. Generazione di funzioni di controllo dell'attenzione: dopo l'allenamento, estrarre i pesi dell'attenzione dal livello di attenzione della funzione migliorata. Genera funzionalità ponderate sia per il set di training che per quello di test. Inserire queste funzionalità nel classificatore SVM.
  4. Valutazione del modello
    NOTA: Un test di formazione 70-30 bilancia la formazione e la valutazione. SMOTE risolve lo squilibrio di classe, migliorando le prestazioni su dati di testo sbilanciati. MinMaxScaler stabilizza i modelli basati sulla distanza. Unità: 64 (Attn-SVM) e 128 (VWR-Attn-SVM) di capacità di bilanciamento; 128 ospita la complessità della trasformazione dei ranghi di Van-der-Waerden. L'esclusione (0,2) impedisce l'overfitting, standard per set di dati di piccole e medie dimensioni. Regolarizzazione L1/L2 (0,0002-0,002): L1 induce sparsità; L2 limita l'entità del peso. Pesi uguali per la perdita (MSE: 0,5, entropia incrociata: 0,5) Apprendimento della ricostruzione e della classificazione dell'equilibrio. Epoche: 200 (Attn-SVM), 300 (VWR-Attn-SVM) con arresto anticipato (pazienza=5) per evitare l'overfitting. La dimensione del lotto 64 bilancia efficienza e stabilità. ReduceLROnPlateau (fattore = 0,5, pazienza = 5-10) regola i tassi di apprendimento (min 0,0001-0,0005) per una migliore convergenza.
    1. Disegno e confronti dello studio di ablazione: Definire i seguenti modelli per il confronto: SVM di base: SVM tradizionale con kernel RBF (Radial Basis Function); Attn-SVM: SVM con meccanismo di attenzione delle funzioni migliorato; VWR-Attn-SVM: SVM che combina la trasformazione di Van der Waerden e una maggiore attenzione alle funzionalità.
    2. Metriche di valutazione (tabella 2): valutare le prestazioni del modello usando accuratezza, precisione, richiamo, punteggio F1 e AUC.
  5. Visualizzazione dell'attenzione e interpretazione del modello
    1. Visualizzazione dei pesi di attenzione delle funzioni chiave
      Grafico a barre Matplotlib per le prime 15 funzionalità:
      Chiamata in codice:
      Importa Matplotlib.pyplot come PLT
      top_indices = np.argsort(-avg_weights)[:15]
      top_features = [feature_names[i] per i in top_indices]
      top_weights = avg_weights[top_indices]
      plt.figure(figsize=(12, 8))
      plt.barh(top_features, top_weights, color='azzurro')
      plt.xlabel('Peso attenzione')
      plt.title('Pesi di attenzione delle funzioni principali')
      plt.show()
    2. Confronto dell'impatto della normale trasformazione della classificazione: confrontare le prestazioni del modello (accuratezza, precisione, richiamo, punteggio F1, AUC) con e senza use_rank_transform abilitato. Evidenzia le principali differenze metriche in una tabella formattata.
    3. Confronto dell'importanza delle caratteristiche: analizzare la coerenza tra le caratteristiche importanti identificate dai test statistici (ad esempio, il chi-quadrato) e il meccanismo di attenzione.
      NOTA: Se le risorse computazionali sono limitate, ridurre il numero di unità (ad esempio, a 32) o epoche (ad esempio, a 100). Regolare l1_reg/l2_reg per bilanciare la complessità del modello (valori più alti migliorano la regolarizzazione).

4. Confronto di più classificatori (File supplementare 2 e File supplementare 3)

  1. Definisci il dizionario del classificatore. Creare un dizionario di classificatori per il confronto, tra cui KNN, Regressione logistica, AdaBoost, Naive Bayes e SVM con kernel RBF (parametri predefiniti).
  2. Inizializza i DataFrame dei risultati. Crea quattro DataFrame per archiviare le metriche di valutazione, con colonne: Classificatore, Accuratezza, Precisione, Richiamo, Punteggio F1 e AUC.
  3. Formare e valutare i classificatori. Per ogni classificatore, eseguire i passaggi seguenti.
    Esempi di classificatori con parametri e seed:
    Chiamata in codice:
    da sklearn.linear_model import LogisticRegression
    da sklearn.svm importa SVC
    lr = LogisticRegression(random_state=RANDOM_SEED, max_iter=1000)
    svm = GridSearchCV(SVC(random_state=RANDOM_SEED, probability=True),
    param_grid={'C': [0.001,0.01 1, 10,100,1000], 'gamma': [0.001,0.01 1, 10,100,1000],
    kernel': ['rbf', 'lineare']}, cv=5, punteggio='f1')
    NOTA: Tutti i modelli utilizzano random_state=42 per la riproducibilità.
    1. Eseguire il training del classificatore sui dati di training in scala.
    2. Prevedere e calcolare le probabilità sia nei set di training che in quelli di test.
    3. Genera report di classificazione e memorizza le metriche nei DataFrame corrispondenti.
  4. Integra i risultati SVM con maggiore attenzione alle funzionalità. Incorporare le metriche delle prestazioni di Attn-SVM e VWR-Attn-SVM (dall'Esperimento 3) nei DataFrame esistenti.
  5. Stampa i risultati comparativi. Visualizza le tabelle di valutazione per le e-mail non spam e spam sia nei set di training che in quelli di test.
  6. Visualizza i risultati. Utilizza sns.barplot per tracciare le metriche delle prestazioni del classificatore. Ruota le etichette dell'asse x di 45° per una maggiore leggibilità. Ottimizzate il layout e visualizzate la stampa utilizzando plt.show().
    Interpretazione degli output di sns.barplot:
    Chiamata in codice:
    Importa Seaborn come SNS
    sns.barplot(x='Classificatore', y='Punteggio F1', dati=risultati)

5. Tabella di confronto delle prestazioni multimetriche di diversi classificatori in termini di tempo di addestramento/test e memoria (File supplementare 4)

  1. Pre-elaborazione dei dati: Carica spambase.csv o spam_indonesian.csv; Suddivise in 70% set di allenamento/30% di test; standardizzare le funzionalità con MinMaxScaler.
  2. Addestramento del modello: Train KNN, Regressione logistica, AdaBoost, Naive Bayes, SVM (con ricerca su griglia), Attn-SVM e VWR-Attn-SVM.
  3. Valutazione delle prestazioni: Calcola accuratezza, precisione, richiamo, punteggio F1 e AUC.
  4. Analisi delle risorse: registra il tempo di addestramento, il tempo di test e l'utilizzo della memoria.
  5. Visualizzazione: genera grafici delle prestazioni multimetrici e grafici del consumo di risorse.
    Parametri chiave: Seme casuale=42; Griglia SVM (C:[0.01,0.1,1,1,10,100]; gamma:[0.01,0.1,1,10,100]; kernel:['rbf','linear']); i modelli di attenzione utilizzano reti completamente connesse a 2 livelli, regolarizzazione L1/L2 e Dropout.
    Output: tabelle delle prestazioni, tabelle delle risorse, grafici multimetrici, grafici tempo/memoria, visualizzazioni del peso dell'attenzione.

6. Risultati sperimentali di CNN, RNN, LSTM o trasformatori (file supplementare 5)

  1. Pre-elaborazione: caricare spambase.csv o spam_indonesian.csv, applicare SMOTE per lo squilibrio di classe se necessario, suddividere in treno/test (70/30).
  2. Formazione: Costruisci CNN, RNN, LSTM, Transformer; Adam(0,001), entropia incrociata binaria, batch_size=32, epoche=10, arresto anticipato (pazienza=5) e programmazione del tasso di apprendimento.
  3. Valutazione: accuratezza di calcolo, precisione, richiamo, F1, AUC; Registra il tempo di allenamento/test e l'utilizzo della memoria.
  4. Visualizzazione: genera grafici di confronto delle prestazioni e delle risorse; salvare i risultati CSV.
  5. Output: tabella delle metriche delle prestazioni, tabella del consumo di risorse, grafici di confronto, file CSV.

7. Istruzioni per il codice supplementare

  1. Per eseguire il codice e replicare le figure: Inserire spam.csv o spam_indonesian.csv nella stessa directory. Installa le dipendenze tramite pip install numpy pandas matplotlib seaborn scikit-learn tensorflow imbalanced-learn psutil. Eseguire lo script; Elaborerà automaticamente i dati, addestrerà i modelli e genererà/visualizzerà tutte le figure (mappe di calore, grafici delle prestazioni) durante l'esecuzione.

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Risultati

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Per iniziare, secondo il protocollo sperimentale stabilito, la Figura 1 fornisce una panoramica del diagramma di flusso complessivo di questo studio. La Figura 2, illustra in sequenza i diagrammi di flusso delle operazioni degli esperimenti 2. Inoltre, la Tabella 1 presenta principalmente le frequenze di parole e caratteri all'interno del set di dati di posta indesiderata, spam.csv.

Per quanto riguarda la valutazione ...

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Discussione

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Questo studio ha verificato l'efficacia di VWR-Attn-SVM sulla base del set di dati Spambase, fornendo informazioni per affrontare la natura altamente dimensionale e sparsa dei dati di spam. Gli esperimenti hanno rivelato che solo alcune caratteristiche nei dati di spam hanno una forte correlazione con le etichette; I modelli tradizionali trattano tutte le funzionalità allo stesso modo, portando a prestazioni scadenti, mentre il meccanismo di attenzione di questo modello può pesare dinami...

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Dichiarazioni

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Gli autori non hanno conflitti di interesse da rivelare.

Ringraziamenti

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Ringraziamo la Fujian Alliance of Mathematics (sovvenzione n. 2023SXLMMS10) e la Natural Science Foundation della provincia del Fujian (2023J05083, 2022J011396, 2023J011434) per aver finanziato questo lavoro.

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Materiali

Elenco dei materiali utilizzati in questo articolo
NomeAziendaNumero di catalogoCommenti
File Supplementare 2: code_new.py; File supplementare 3: code_indonesian.py.
numpySviluppatori NumPyLibreria per il calcolo numerico in Python
PandaTeam di sviluppo pandasLibreria per la manipolazione e l'analisi dei dati
matplotlibMatplotlib Developers Libreria per creare visualizzazioni statiche, animate e interattive
SeabornMichael Waskom et al.Libreria di visualizzazione statistica dei dati basata su matplotlib
scikit-learnTeam di sviluppatori scikit-learnLibreria di machine learning che presenta vari algoritmi di classificazione, regressione e clustering
TensorflowGoogleFramework open source di machine learning, inclusa l'API Keras per la costruzione di reti neurali
imblearnSviluppatori con apprendimento sbilanciatoLibreria per la gestione di dataset sbilanciati, incluso SMOTE per il sovracampionamento
AvvertenzeLibreria Standard PythonModulo per l'emissione di messaggi di avvertimento
File Supplementare 4: code_compute_time.py
numpySviluppatori NumPyLibreria di calcolo numerico per Python
PandaTeam di sviluppo pandasLibreria di manipolazione e analisi dei dati
matplotlibSviluppatori MatplotlibLibreria di visualizzazione per creare grafici e figure
SeabornMichael Waskom et al.Libreria di visualizzazione statistica dei dati costruita su matplotlib
scikit-learnTeam di sviluppatori scikit-learnLibreria di machine learning con strumenti di classificazione, regressione e preprocessing
TensorflowGoogleFramework di machine learning open-source con API Keras per reti neurali
imblearnTeam sviluppatori di imparaggio sbilanciatoLibreria per la gestione di dataset squilibrati (include SMOTE)
AvvertenzeLibreria Standard PythonModulo per l'emissione di messaggi di avvertimento
OreLibreria Standard PythonModulo per funzioni legate al tempo
psutilGiampaolo RodolaLibreria per recuperare informazioni di sistema e monitorare l'utilizzo delle risorse
sistema operativoLibreria Standard PythonModulo per interagire con il sistema operativo
Fascicolo Supplementare 5: DNN.py.
PandaTeam di sviluppo pandasLibreria di manipolazione e analisi dei dati
numpySviluppatori NumPyLibreria di calcolo numerico per Python
OreLibreria Standard PythonModulo per funzioni legate al tempo
psutilGiampaolo RodolaLibreria per il recupero delle informazioni di sistema e il monitoraggio delle risorse
matplotlibSviluppatori MatplotlibLibreria di visualizzazione per creare grafici e figure
scikit-learnTeam di sviluppatori scikit-learnLibreria di machine learning con preprocessing dati, selezione dei modelli e strumenti per le metriche
imblearnTeam sviluppatori di imparaggio sbilanciatoLibreria per la gestione di dataset squilibrati (include SMOTE)
TensorflowGoogleFramework di machine learning open-source con API Keras per la costruzione di reti neurali

Riferimenti

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Ayo, F. E., Ogundele, L. A., Olakunle, S., Awotunde, J. B., Kasali, F. A. A hybrid correlation-based deep learning model for email spam classification using fuzzy inference system. Decis Anal J. 10, 100390(2024).
  2. Douzi, S., AlShahwan, F. A., Lemoudden, M., Ouahidi, B. Hybrid email spam detection model using artificial intelligence. Int J Mach Learn Comput. 10 (2), 316-322 (2020).
  3. Maqsood, U., et al. An intelligent framework based on deep learning for SMS and e-mail spam detection. Appl Comput Intell Soft Comput. 2023, 6648970(2023).
  4. Yang, Z., Nie, X., Xu, W., Guo, J. An approach to spam detection by naive Bayes ensemble based on decision induction. Proc IEEE Comput Soc. , 861-866 (2006).
  5. Nazirova, S., Alguliyev, R. Two approaches on implementation of CBR and CRM technologies to the spam filtering problem. J Inf Secur. 3 (1), 11-17 (2012).
  6. Consumer Sentinel Network Data Book. , Federal Trade Commission. (2022).
  7. DeSouza, M., Fitzgerald, J., Kemp, C., Truong, G. A decision tree-based spam filtering agent. , Available at: http://www.cs.mu.oz.au/481/2001_projects/gntr/index.html (2001).
  8. Boosting trees for anti-spam email filtering. Carreras, X., Marque, L. Proc RANLP-01, 4th Int Conf Recent Adv Nat Lang Process, , INCOMA Ltd. (2001).
  9. Androutsopoulos, I. Learning to filter unsolicited commercial e-mail. Int Proc Comput Sci Inf Tech. , (2025).
  10. XGBoost: a scalable tree boosting system. Chen, T., Guestrin, C. Proc 22nd ACM SIGKDD Int Conf Knowl Discov Data Min, , ACM. 785-794 (2016).
  11. Intelligent analysis, filtering, and rough set discussions of spam. Liu, Y., et al. Proc 12th Annu Conf Comput Netw Data Commun China Comput Fed, , (2002).
  12. Androutsopoulos, I., et al. Learning to filter spam e-mail: a comparison of a naive Bayesian and memory-based approach. Comput Sci. 97 (2), 1-13 (2000).
  13. Cai, J., et al. Fibrosis and inflammatory activity diagnosis of chronic hepatitis C based on extreme learning machine. Sci Rep. 15 (1), 11(2025).
  14. Zhou, Y., Li, Y., Xia, S. An improved KNN text classification algorithm based on clustering. J Comput. 4 (3), 230-237 (2009).
  15. Rapacz, S., Cholda, P., Natkaniec, M. A. Method for fast selection of machine-learning classifiers for spam filtering. Electronics. 10 (17), 2083(2021).
  16. Fu, S., Nizar, B. A. Soft computing model based on asymmetric Gaussian mixtures and Bayesian inference. Soft Comput. 24 (1), 4841-4853 (2020).
  17. Text categorization with support vector machines: learning with many relevant features. Joachims, T. Proc Eur Conf Mach Learn, , Springer. 137-142 (1998).
  18. Drucker, H., Wu, D., Vapnik, V. N. Support vector machines for spam categorization. IEEE Trans Neural Netw. 10 (5), 1048-1054 (2002).
  19. Yuan, Y., Fan, W., Pu, D. Spline function smooth support vector machine for classification. J Ind Manag Optim. 3 (3), 529-542 (2017).
  20. Cai, J., et al. A residual joint antenna network for joint transmit-receive antenna subset selection in MIMO systems. IEEE Trans Antennas Propag. , (2025).
  21. Zhu, S., et al. Singular pooling: a spectral pooling paradigm for second-trimester prenatal level II ultrasound standard fetal plane identification. IEEE Trans Circuits Syst Video Technol. , (2025).
  22. Zhu, S., et al. Contrast and gain-aware attention: a plug-and-play feature fusion attention module for torso region fetal plane identification. Ultrasound Med Biol. , (2025).
  23. Mikolov, T., Karafiat, M., Burget, L., Cernock, J., Khudanpur, S. Recurrent neural network based language model. Proc Interspeech, Int Speech Commun Assoc. , (2015).
  24. Hochreiter, S., Schmidhuber, J. Long short-term memory. Neural Comput. 9 (8), 1735-1780 (1997).
  25. Cai, J., et al. Developing deep LSTMs with later temporal attention for predicting COVID-19 severity, clinical outcome, and antibody level by screening serological indicators over time. IEEE J Biomed Health Inform. 28 (7), 4204-4215 (2024).
  26. Vaswani, A., et al. Attention is all you need. Adv Neural Inf Process Syst. , (2017).
  27. Xian, L. Application of an improved TF-IDF method in literary text classification. Adv Multimed. 2022, 9285324(2022).
  28. Alajlan, N., Ibrahim, D. M. TinyML: enabling inference of deep learning models on ultra-low-power IoT edge devices for AI applications. Micromachines. 13 (6), 851(2022).
  29. Devlin, J., Chang, M. W., Lee, K., Toutanova, K. BERT: pre-training of deep bidirectional transformers for language understanding. Proc North Am Chapter Assoc Comput Linguist. , (2019).
  30. Hopkins, M., Reeber, E., Forman, G., Suermondt, J. Spambase dataset. UCI Mach Learn Repos. , (1999).
  31. Chawla, N. V., Bowyer, K. W., Hall, L. O., Kegelmeyer, W. P. SMOTE: synthetic minority over-sampling technique. J Artif Intell Res. 16, 321-357 (2002).
  32. Cuk, A., et al. Tuning attention-based long short-term memory neural networks for Parkinson's disease detection using modified metaheuristics. Sci Rep. 14, 4309(2024).
  33. Mizdrakovic, V., et al. Forecasting bitcoin: decomposition-aided long short-term memory-based time series modeling and its explanation with Shapley values. Knowl Based Syst. 299 (5), 112026(2024).

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Ristampe e permessi

Richiedi il permesso di riutilizzare il testo o le figure di questo articolo JoVE

Richiedi permesso

Tag

Selezione delle caratteristicheNormalizzazione del testoRobustezza agli outlierMeccanismo di attenzioneDati ad alta dimensionalitPiattaforme basate su testo

Articoli correlati