From e1d9dc2594047b0d59221a59027da24b3fb34fe9 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 8 Jun 2025 00:42:54 +0000 Subject: [PATCH] Translated ['src/AI/AI-Unsupervised-Learning-algorithms.md'] to it --- src/AI/AI-Unsupervised-Learning-algorithms.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/AI/AI-Unsupervised-Learning-algorithms.md b/src/AI/AI-Unsupervised-Learning-algorithms.md index fbd88ff54..6d875b434 100644 --- a/src/AI/AI-Unsupervised-Learning-algorithms.md +++ b/src/AI/AI-Unsupervised-Learning-algorithms.md @@ -10,7 +10,7 @@ L'apprendimento non supervisionato è spesso utilizzato per compiti come cluster ### Clustering K-Means K-Means è un algoritmo di clustering basato su centroidi che partiziona i dati in K cluster assegnando ogni punto al centroide del cluster più vicino. L'algoritmo funziona come segue: -1. **Inizializzazione**: Scegliere K centri di cluster iniziali (centroidi), spesso casualmente o tramite metodi più intelligenti come k-means++ +1. **Inizializzazione**: Scegliere K centri di cluster iniziali (centroidi), spesso casualmente o tramite metodi più intelligenti come k-means++. 2. **Assegnazione**: Assegnare ogni punto dati al centroide più vicino in base a una metrica di distanza (ad es., distanza euclidea). 3. **Aggiornamento**: Ricalcolare i centroidi prendendo la media di tutti i punti dati assegnati a ciascun cluster. 4. **Ripetere**: I passaggi 2–3 vengono ripetuti fino a quando le assegnazioni dei cluster si stabilizzano (i centroidi non si muovono più significativamente). @@ -71,11 +71,11 @@ Il clustering agglomerativo richiede una definizione della distanza inter-cluste Il clustering gerarchico produce un dendrogramma, una struttura ad albero che mostra le relazioni tra i cluster a diversi livelli di granularità. Il dendrogramma può essere tagliato a un livello desiderato per ottenere un numero specifico di cluster. > [!TIP] -> *Casi d'uso nella cybersecurity:* Il clustering gerarchico può organizzare eventi o entità in un albero per individuare relazioni. Ad esempio, nell'analisi del malware, il clustering agglomerativo potrebbe raggruppare i campioni per somiglianza comportamentale, rivelando una gerarchia di famiglie e varianti di malware. Nella sicurezza di rete, si potrebbe raggruppare i flussi di traffico IP e utilizzare il dendrogramma per vedere i sottogruppi di traffico (ad esempio, per protocollo, poi per comportamento). Poiché non è necessario scegliere K in anticipo, è utile quando si esplorano nuovi dati per i quali il numero di categorie di attacco è sconosciuto. +> *Casi d'uso nella cybersecurity:* Il clustering gerarchico può organizzare eventi o entità in un albero per individuare relazioni. Ad esempio, nell'analisi del malware, il clustering agglomerativo potrebbe raggruppare i campioni per somiglianza comportamentale, rivelando una gerarchia di famiglie e varianti di malware. Nella sicurezza di rete, si potrebbero raggruppare i flussi di traffico IP e utilizzare il dendrogramma per vedere i sottogruppi di traffico (ad esempio, per protocollo, poi per comportamento). Poiché non è necessario scegliere K in anticipo, è utile quando si esplorano nuovi dati per i quali il numero di categorie di attacco è sconosciuto. #### Assunzioni e Limitazioni -Il clustering gerarchico non assume una forma particolare del cluster e può catturare cluster annidati. È utile per scoprire tassonomie o relazioni tra gruppi (ad esempio, raggruppare il malware per sottogruppi familiari). È deterministico (nessun problema di inizializzazione casuale). Un vantaggio chiave è il dendrogramma, che fornisce informazioni sulla struttura di clustering dei dati a tutte le scale – gli analisti della sicurezza possono decidere un taglio appropriato per identificare cluster significativi. Tuttavia, è computazionalmente costoso (tipicamente $O(n^2)$ tempo o peggio per implementazioni naive) e non fattibile per dataset molto grandi. È anche una procedura avido – una volta che una fusione o una divisione è stata effettuata, non può essere annullata, il che può portare a cluster subottimali se si verifica un errore all'inizio. Gli outlier possono anche influenzare alcune strategie di collegamento (il collegamento singolo può causare l'effetto "chaining" dove i cluster si collegano tramite outlier). +Il clustering gerarchico non assume una forma particolare del cluster e può catturare cluster annidati. È utile per scoprire tassonomie o relazioni tra gruppi (ad esempio, raggruppare il malware per sottogruppi familiari). È deterministico (nessun problema di inizializzazione casuale). Un vantaggio chiave è il dendrogramma, che fornisce informazioni sulla struttura di clustering dei dati a tutte le scale – gli analisti della sicurezza possono decidere un taglio appropriato per identificare cluster significativi. Tuttavia, è computazionalmente costoso (tipicamente $O(n^2)$ tempo o peggio per implementazioni naive) e non fattibile per dataset molto grandi. È anche una procedura avido – una volta che una fusione o una divisione è stata effettuata, non può essere annullata, il che può portare a cluster subottimali se si verifica un errore all'inizio. Gli outlier possono anche influenzare alcune strategie di collegamento (il collegamento singolo può causare l'effetto "chaining" in cui i cluster si collegano tramite outlier).
Esempio -- Clustering Agglomerativo di Eventi @@ -110,18 +110,18 @@ DBSCAN funziona definendo due parametri: - **MinPts**: Il numero minimo di punti richiesti per formare una regione densa (punto centrale). DBSCAN identifica punti centrali, punti di confine e punti di rumore: -- **Punto Centrale**: Un punto con almeno MinPts vicini entro una distanza ε. -- **Punto di Confine**: Un punto che si trova entro una distanza ε da un punto centrale ma ha meno di MinPts vicini. +- **Punto Centrale**: Un punto con almeno MinPts vicini entro una distanza di ε. +- **Punto di Confine**: Un punto che si trova entro una distanza di ε da un punto centrale ma ha meno di MinPts vicini. - **Punto di Rumore**: Un punto che non è né un punto centrale né un punto di confine. Il clustering procede scegliendo un punto centrale non visitato, contrassegnandolo come un nuovo cluster, quindi aggiungendo ricorsivamente tutti i punti raggiungibili per densità da esso (punti centrali e i loro vicini, ecc.). I punti di confine vengono aggiunti al cluster di un punto centrale vicino. Dopo aver espanso tutti i punti raggiungibili, DBSCAN passa a un altro punto centrale non visitato per avviare un nuovo cluster. I punti non raggiunti da alcun punto centrale rimangono etichettati come rumore. > [!TIP] -> *Casi d'uso nella cybersecurity:* DBSCAN è utile per la rilevazione di anomalie nel traffico di rete. Ad esempio, l'attività normale degli utenti potrebbe formare uno o più cluster densi nello spazio delle caratteristiche, mentre i comportamenti di attacco nuovi appaiono come punti sparsi che DBSCAN etichetta come rumore (outlier). È stato utilizzato per raggruppare registri di flusso di rete, dove può rilevare scansioni di porte o traffico di denial-of-service come regioni sparse di punti. Un'altra applicazione è il raggruppamento di varianti di malware: se la maggior parte dei campioni si raggruppa per famiglie ma alcuni non si adattano da nessuna parte, quei pochi potrebbero essere malware zero-day. La capacità di segnalare il rumore significa che i team di sicurezza possono concentrarsi sull'indagine di quegli outlier. +> *Casi d'uso nella cybersecurity:* DBSCAN è utile per la rilevazione di anomalie nel traffico di rete. Ad esempio, l'attività normale degli utenti potrebbe formare uno o più cluster densi nello spazio delle caratteristiche, mentre i comportamenti di attacco nuovi appaiono come punti sparsi che DBSCAN etichetterà come rumore (outlier). È stato utilizzato per raggruppare registri di flusso di rete, dove può rilevare scansioni di porte o traffico di denial-of-service come regioni sparse di punti. Un'altra applicazione è il raggruppamento di varianti di malware: se la maggior parte dei campioni si raggruppa per famiglie ma alcuni non si adattano da nessuna parte, quei pochi potrebbero essere malware zero-day. La capacità di segnalare il rumore significa che i team di sicurezza possono concentrarsi sull'indagine di quegli outlier. #### Assunzioni e Limitazioni -**Assunzioni e Punti di Forza:**: DBSCAN non assume cluster sferici – può trovare cluster di forma arbitraria (anche cluster a catena o adiacenti). Determina automaticamente il numero di cluster in base alla densità dei dati e può identificare efficacemente gli outlier come rumore. Questo lo rende potente per dati del mondo reale con forme irregolari e rumore. È robusto agli outlier (a differenza di K-Means, che li costringe nei cluster). Funziona bene quando i cluster hanno densità approssimativamente uniforme. +**Assunzioni e Punti di Forza:**: DBSCAN non assume cluster sferici – può trovare cluster di forma arbitraria (anche cluster a catena o adiacenti). Determina automaticamente il numero di cluster in base alla densità dei dati e può identificare efficacemente gli outlier come rumore. Questo lo rende potente per dati reali con forme irregolari e rumore. È robusto agli outlier (a differenza di K-Means, che li costringe nei cluster). Funziona bene quando i cluster hanno densità approssimativamente uniforme. **Limitazioni**: Le prestazioni di DBSCAN dipendono dalla scelta di valori appropriati per ε e MinPts. Potrebbe avere difficoltà con dati che presentano densità variabili – un singolo ε non può adattarsi sia a cluster densi che sparsi. Se ε è troppo piccolo, etichetta la maggior parte dei punti come rumore; se è troppo grande, i cluster potrebbero fondersi in modo errato. Inoltre, DBSCAN può essere inefficiente su dataset molto grandi (naivamente $O(n^2)$, anche se l'indicizzazione spaziale può aiutare). Negli spazi delle caratteristiche ad alta dimensione, il concetto di "distanza entro ε" potrebbe diventare meno significativo (la maledizione della dimensionalità), e DBSCAN potrebbe necessitare di una sintonizzazione attenta dei parametri o potrebbe non riuscire a trovare cluster intuitivi. Nonostante ciò, estensioni come HDBSCAN affrontano alcuni problemi (come la densità variabile). @@ -155,7 +155,7 @@ In questo frammento, abbiamo sintonizzato `eps` e `min_samples` per adattarli al ### Analisi delle Componenti Principali (PCA) -La PCA è una tecnica per la **riduzione della dimensionalità** che trova un nuovo insieme di assi ortogonali (componenti principali) che catturano la massima varianza nei dati. In termini semplici, la PCA ruota e proietta i dati su un nuovo sistema di coordinate in modo che la prima componente principale (PC1) spieghi la massima varianza possibile, la seconda PC (PC2) spieghi la massima varianza ortogonale a PC1, e così via. Matematicamente, la PCA calcola gli autovettori della matrice di covarianza dei dati – questi autovettori sono le direzioni delle componenti principali, e i corrispondenti autovalori indicano la quantità di varianza spiegata da ciascuno. È spesso utilizzata per l'estrazione delle caratteristiche, la visualizzazione e la riduzione del rumore. +La PCA è una tecnica per la **riduzione della dimensionalità** che trova un nuovo insieme di assi ortogonali (componenti principali) che catturano la massima varianza nei dati. In termini semplici, la PCA ruota e proietta i dati su un nuovo sistema di coordinate in modo tale che la prima componente principale (PC1) spieghi la massima varianza possibile, la seconda PC (PC2) spieghi la massima varianza ortogonale a PC1, e così via. Matematicamente, la PCA calcola gli autovettori della matrice di covarianza dei dati – questi autovettori sono le direzioni delle componenti principali, e i corrispondenti autovalori indicano la quantità di varianza spiegata da ciascuno. È spesso utilizzata per l'estrazione delle caratteristiche, la visualizzazione e la riduzione del rumore. Nota che questo è utile se le dimensioni del dataset contengono **dipendenze o correlazioni lineari significative**. @@ -186,10 +186,10 @@ Spieghiamo questo con un esempio. Immagina di avere un dataset con molte immagin 2. **Matrice di Covarianza**: Calcolare la matrice di covarianza dei dati standardizzati, che cattura come le caratteristiche (pixel) variano insieme. - Nota che la covarianza tra due variabili (pixel in questo caso) indica quanto cambiano insieme, quindi l'idea qui è scoprire quali pixel tendono ad aumentare o diminuire insieme con una relazione lineare. - Ad esempio, se il pixel 1 e il pixel 2 tendono ad aumentare insieme, la covarianza tra di loro sarà positiva. -- La matrice di covarianza sarà una matrice 10.000x10.000 in cui ogni voce rappresenta la covarianza tra due pixel. +- La matrice di covarianza sarà una matrice 10.000x10.000 dove ogni voce rappresenta la covarianza tra due pixel. 3. **Risolvi l'equazione degli autovalori**: L'equazione degli autovalori da risolvere è `C * v = λ * v` dove C è la matrice di covarianza, v è l'autovettore e λ è l'autovalore. Può essere risolta utilizzando metodi come: - **Decomposizione degli Autovalori**: Eseguire la decomposizione degli autovalori sulla matrice di covarianza per ottenere gli autovalori e gli autovettori. -- **Decomposizione ai Valori Singolari (SVD)**: In alternativa, puoi utilizzare la SVD per decomporre la matrice dei dati in valori e vettori singolari, che possono anche fornire le componenti principali. +- **Decomposizione ai Valori Singolari (SVD)**: In alternativa, puoi utilizzare SVD per decomporre la matrice dei dati in valori e vettori singolari, che possono anche fornire le componenti principali. 4. **Selezionare le Componenti Principali**: Ordinare gli autovalori in ordine decrescente e selezionare i primi K autovettori corrispondenti ai più grandi autovalori. Questi autovettori rappresentano le direzioni di massima varianza nei dati. > [!TIP] @@ -232,11 +232,11 @@ Qui abbiamo preso i cluster di traffico normale precedenti e abbiamo esteso ogni Un Modello di Miscele Gaussiane assume che i dati siano generati da una miscela di **diverse distribuzioni gaussiane (normali) con parametri sconosciuti**. In sostanza, è un modello di clustering probabilistico: cerca di assegnare dolcemente ogni punto a uno dei K componenti gaussiani. Ogni componente gaussiano k ha un vettore medio (μ_k), una matrice di covarianza (Σ_k) e un peso di miscelazione (π_k) che rappresenta quanto è prevalente quel cluster. A differenza di K-Means che fa assegnazioni "dure", GMM dà a ogni punto una probabilità di appartenere a ciascun cluster. -L'adattamento di GMM viene tipicamente eseguito tramite l'algoritmo di Massimizzazione dell'aspettativa (EM): +L'adattamento di GMM viene tipicamente effettuato tramite l'algoritmo di Massimizzazione delle Aspettative (EM): - **Inizializzazione**: Iniziare con stime iniziali per le medie, le covarianze e i coefficienti di miscelazione (o utilizzare i risultati di K-Means come punto di partenza). -- **E-step (Aspettativa)**: Dati i parametri attuali, calcolare la responsabilità di ciascun cluster per ciascun punto: essenzialmente `r_nk = P(z_k | x_n)` dove z_k è la variabile latente che indica l'appartenenza al cluster per il punto x_n. Questo viene fatto usando il teorema di Bayes, dove calcoliamo la probabilità posteriore di ciascun punto appartenente a ciascun cluster in base ai parametri attuali. Le responsabilità sono calcolate come: +- **E-step (Aspettativa)**: Dati i parametri attuali, calcolare la responsabilità di ciascun cluster per ogni punto: essenzialmente `r_nk = P(z_k | x_n)` dove z_k è la variabile latente che indica l'appartenenza al cluster per il punto x_n. Questo viene fatto usando il teorema di Bayes, dove calcoliamo la probabilità posteriore di ciascun punto appartenente a ciascun cluster in base ai parametri attuali. Le responsabilità vengono calcolate come: ```math r_{nk} = \frac{\pi_k \mathcal{N}(x_n | \mu_k, \Sigma_k)}{\sum_{j=1}^{K} \pi_j \mathcal{N}(x_n | \mu_j, \Sigma_j)} ``` @@ -254,7 +254,7 @@ dove: Il risultato è un insieme di distribuzioni gaussiane che modellano collettivamente la distribuzione complessiva dei dati. Possiamo utilizzare il GMM adattato per raggruppare assegnando a ciascun punto la gaussiana con la probabilità più alta, o mantenere le probabilità per l'incertezza. Si può anche valutare la verosimiglianza di nuovi punti per vedere se si adattano al modello (utile per il rilevamento delle anomalie). > [!TIP] -> *Casi d'uso nella cybersecurity:* GMM può essere utilizzato per il rilevamento delle anomalie modellando la distribuzione dei dati normali: qualsiasi punto con probabilità molto bassa sotto la miscela appresa è contrassegnato come anomalia. Ad esempio, si potrebbe addestrare un GMM su caratteristiche di traffico di rete legittimo; una connessione di attacco che non somiglia a nessun cluster appreso avrebbe una bassa probabilità. I GMM vengono anche utilizzati per raggruppare attività in cui i cluster potrebbero avere forme diverse – ad esempio, raggruppare gli utenti per profili comportamentali, dove le caratteristiche di ciascun profilo potrebbero essere simili a gaussiane ma con la propria struttura di varianza. Un altro scenario: nel rilevamento di phishing, le caratteristiche delle email legittime potrebbero formare un cluster gaussiano, il phishing noto un altro, e le nuove campagne di phishing potrebbero apparire come una gaussiana separata o come punti a bassa probabilità rispetto alla miscela esistente. +> *Casi d'uso nella cybersecurity:* GMM può essere utilizzato per il rilevamento delle anomalie modellando la distribuzione dei dati normali: qualsiasi punto con probabilità molto bassa sotto la miscela appresa è contrassegnato come anomalia. Ad esempio, si potrebbe addestrare un GMM sulle caratteristiche del traffico di rete legittimo; una connessione di attacco che non somiglia a nessun cluster appreso avrebbe una bassa probabilità. I GMM vengono anche utilizzati per raggruppare attività in cui i cluster potrebbero avere forme diverse – ad esempio, raggruppare gli utenti per profili comportamentali, dove le caratteristiche di ciascun profilo potrebbero essere simili a gaussiane ma con la propria struttura di varianza. Un altro scenario: nel rilevamento di phishing, le caratteristiche delle email legittime potrebbero formare un cluster gaussiano, il phishing noto un altro, e le nuove campagne di phishing potrebbero apparire come una gaussiana separata o come punti a bassa probabilità rispetto alla miscela esistente. #### Assunzioni e Limitazioni @@ -297,7 +297,7 @@ Il rilevamento delle anomalie viene eseguito osservando la lunghezza del percors #### Assunzioni e Limitazioni -**Vantaggi**: L'Isolation Forest non richiede un'assunzione di distribuzione; mira direttamente all'isolamento. È efficiente su dati ad alta dimensione e grandi dataset (complessità lineare $O(n\log n)$ per costruire la foresta) poiché ogni albero isola i punti utilizzando solo un sottoinsieme di caratteristiche e divisioni. Tende a gestire bene le caratteristiche numeriche e può essere più veloce rispetto ai metodi basati sulla distanza che potrebbero essere $O(n^2)$. Fornisce anche automaticamente un punteggio di anomalia, quindi puoi impostare una soglia per gli avvisi (o utilizzare un parametro di contaminazione per decidere automaticamente un cutoff basato su una frazione di anomalia attesa). +**Vantaggi**: L'Isolation Forest non richiede un'assunzione di distribuzione; mira direttamente all'isolamento. È efficiente su dati ad alta dimensione e set di dati grandi (complessità lineare $O(n\log n)$ per costruire la foresta) poiché ogni albero isola i punti utilizzando solo un sottoinsieme di caratteristiche e divisioni. Tende a gestire bene le caratteristiche numeriche e può essere più veloce dei metodi basati sulla distanza che potrebbero essere $O(n^2)$. Fornisce anche automaticamente un punteggio di anomalia, quindi puoi impostare una soglia per gli avvisi (o utilizzare un parametro di contaminazione per decidere automaticamente un cutoff basato su una frazione di anomalia attesa). **Limitazioni**: A causa della sua natura casuale, i risultati possono variare leggermente tra le esecuzioni (anche se con un numero sufficiente di alberi questo è minore). Se i dati hanno molte caratteristiche irrilevanti o se le anomalie non si differenziano fortemente in alcuna caratteristica, l'isolamento potrebbe non essere efficace (le divisioni casuali potrebbero isolare punti normali per caso – tuttavia, la media di molti alberi mitiga questo). Inoltre, l'Isolation Forest generalmente assume che le anomalie siano una piccola minoranza (cosa che è solitamente vera negli scenari di cybersecurity). @@ -305,7 +305,7 @@ Il rilevamento delle anomalie viene eseguito osservando la lunghezza del percors Esempio -- Rilevamento di Outlier nei Log di Rete -Utilizzeremo il precedente dataset di test (che contiene punti normali e alcuni punti di attacco) e eseguiremo un Isolation Forest per vedere se può separare gli attacchi. Assumeremo di aspettarci che ~15% dei dati siano anomali (per dimostrazione). +Utilizzeremo il precedente set di dati di test (che contiene punti normali e alcuni punti di attacco) e eseguiremo un Isolation Forest per vedere se può separare gli attacchi. Assumeremo di aspettarci che ~15% dei dati siano anomali (per dimostrazione). ```python from sklearn.ensemble import IsolationForest @@ -321,9 +321,9 @@ print("Isolation Forest predicted labels (first 20):", preds[:20]) print("Number of anomalies detected:", np.sum(preds == -1)) print("Example anomaly scores (lower means more anomalous):", anomaly_scores[:5]) ``` -In questo codice, istanziamo `IsolationForest` con 100 alberi e impostiamo `contamination=0.15` (il che significa che ci aspettiamo circa il 15% di anomalie; il modello imposterà la sua soglia di punteggio in modo che ~15% dei punti siano contrassegnati). Lo adattiamo su `X_test_if` che contiene un mix di punti normali e di attacco (nota: normalmente si adatterebbe ai dati di addestramento e poi si userebbe predict su nuovi dati, ma qui a scopo illustrativo ci adattiamo e prevediamo sullo stesso insieme per osservare direttamente i risultati). +In questo codice, istanziamo `IsolationForest` con 100 alberi e impostiamo `contamination=0.15` (il che significa che ci aspettiamo circa il 15% di anomalie; il modello imposterà la sua soglia di punteggio in modo che ~15% dei punti siano contrassegnati). Lo adattiamo su `X_test_if` che contiene un mix di punti normali e di attacco (nota: normalmente si adatterebbe ai dati di addestramento e poi si userebbe predict su nuovi dati, ma qui per illustrazione ci adattiamo e prevediamo sullo stesso insieme per osservare direttamente i risultati). -L'output mostra le etichette previste per i primi 20 punti (dove -1 indica un'anomalia). Stampiamo anche quanti anomalie sono state rilevate in totale e alcuni esempi di punteggi di anomalia. Ci aspetteremmo che circa 18 su 120 punti siano etichettati come -1 (poiché la contaminazione era del 15%). Se i nostri 20 campioni di attacco sono davvero i più anomali, la maggior parte di essi dovrebbe apparire in quelle previsioni -1. Il punteggio di anomalia (la funzione di decisione di Isolation Forest) è più alto per i punti normali e più basso (più negativo) per le anomalie – stampiamo alcuni valori per vedere la separazione. In pratica, si potrebbe ordinare i dati per punteggio per vedere i principali outlier e indagarli. Isolation Forest fornisce quindi un modo efficiente per setacciare grandi dati di sicurezza non etichettati e selezionare le istanze più irregolari per un'analisi umana o un'ulteriore scrutinio automatizzato. +L'output mostra le etichette previste per i primi 20 punti (dove -1 indica un'anomalia). Stampiamo anche quanti anomalie sono state rilevate in totale e alcuni esempi di punteggi di anomalia. Ci aspetteremmo che circa 18 su 120 punti siano etichettati -1 (poiché la contaminazione era del 15%). Se i nostri 20 campioni di attacco sono davvero i più anomali, la maggior parte di essi dovrebbe apparire in quelle previsioni -1. Il punteggio di anomalia (la funzione di decisione di Isolation Forest) è più alto per i punti normali e più basso (più negativo) per le anomalie – stampiamo alcuni valori per vedere la separazione. In pratica, si potrebbe ordinare i dati per punteggio per vedere i principali outlier e indagarli. Isolation Forest fornisce quindi un modo efficiente per setacciare grandi dati di sicurezza non etichettati e selezionare le istanze più irregolari per un'analisi umana o un'ulteriore scrutinio automatizzato. ### t-SNE (t-Distributed Stochastic Neighbor Embedding) @@ -331,7 +331,7 @@ L'output mostra le etichette previste per i primi 20 punti (dove -1 indica un'an L'algoritmo ha due fasi principali: -1. **Calcola affinità a coppie nello spazio ad alta dimensione:** Per ogni coppia di punti, t-SNE calcola una probabilità che si scelga quella coppia come vicini (questo viene fatto centrando una distribuzione gaussiana su ciascun punto e misurando le distanze – il parametro di perplessità influisce sul numero effettivo di vicini considerati). +1. **Calcola affinità a coppie nello spazio ad alta dimensione:** Per ogni coppia di punti, t-SNE calcola una probabilità che si scelga quella coppia come vicini (questo viene fatto centrando una distribuzione gaussiana su ogni punto e misurando le distanze – il parametro di perplessità influisce sul numero effettivo di vicini considerati). 2. **Calcola affinità a coppie nello spazio a bassa dimensione (ad es. 2D):** Inizialmente, i punti sono posizionati casualmente in 2D. t-SNE definisce una probabilità simile per le distanze in questa mappa (utilizzando un kernel di distribuzione t di Student, che ha code più pesanti rispetto alla gaussiana per consentire ai punti distanti maggiore libertà). 3. **Discesa del gradiente:** t-SNE quindi sposta iterativamente i punti in 2D per minimizzare la divergenza Kullback–Leibler (KL) tra la distribuzione di affinità ad alta dimensione e quella a bassa dimensione. Questo fa sì che l'arrangiamento 2D rifletta la struttura ad alta dimensione il più possibile – i punti che erano vicini nello spazio originale si attrarranno, e quelli lontani si respingeranno, fino a trovare un equilibrio. @@ -344,13 +344,13 @@ Il risultato è spesso un diagramma a dispersione visivamente significativo dove t-SNE è ottimo per la scoperta visiva di schemi. Può rivelare cluster, subcluster e outlier che altri metodi lineari (come PCA) potrebbero non rilevare. È stato utilizzato nella ricerca sulla cybersecurity per visualizzare dati complessi come profili di comportamento di malware o schemi di traffico di rete. Poiché preserva la struttura locale, è utile per mostrare raggruppamenti naturali. -Tuttavia, t-SNE è computazionalmente più pesante (circa $O(n^2)$) quindi potrebbe richiedere campionamento per dataset molto grandi. Ha anche iperparametri (perplessità, tasso di apprendimento, iterazioni) che possono influenzare l'output – ad esempio, diversi valori di perplessità potrebbero rivelare cluster a scale diverse. I grafici t-SNE possono a volte essere fraintesi – le distanze nella mappa non sono direttamente significative a livello globale (si concentra sul vicinato locale, a volte i cluster possono apparire artificialmente ben separati). Inoltre, t-SNE è principalmente per la visualizzazione; non fornisce un modo diretto per proiettare nuovi punti dati senza ricalcolare, e non è destinato ad essere utilizzato come preprocessing per la modellazione predittiva (UMAP è un'alternativa che affronta alcuni di questi problemi con una velocità maggiore). +Tuttavia, t-SNE è computazionalmente più pesante (circa $O(n^2)$) quindi potrebbe richiedere campionamento per dataset molto grandi. Ha anche iperparametri (perplessità, tasso di apprendimento, iterazioni) che possono influenzare l'output – ad esempio, diversi valori di perplessità potrebbero rivelare cluster a scale diverse. I grafici t-SNE possono talvolta essere fraintesi – le distanze nella mappa non sono direttamente significative a livello globale (si concentra sul vicinato locale, a volte i cluster possono apparire artificialmente ben separati). Inoltre, t-SNE è principalmente per la visualizzazione; non fornisce un modo diretto per proiettare nuovi punti dati senza ricalcolare, e non è destinato ad essere utilizzato come preprocessing per la modellazione predittiva (UMAP è un'alternativa che affronta alcuni di questi problemi con una velocità maggiore).
Esempio -- Visualizzazione delle Connessioni di Rete -Utilizzeremo t-SNE per ridurre un dataset multi-caratteristica a 2D. A scopo illustrativo, prendiamo i precedenti dati 4D (che avevano 3 cluster naturali di traffico normale) e aggiungiamo alcuni punti anomali. Eseguiamo quindi t-SNE e (concettualmente) visualizziamo i risultati. +Utilizzeremo t-SNE per ridurre un dataset multi-caratteristica a 2D. Per illustrazione, prendiamo i precedenti dati 4D (che avevano 3 cluster naturali di traffico normale) e aggiungiamo alcuni punti anomali. Eseguiamo quindi t-SNE e (concettualmente) visualizziamo i risultati. ```python # 1 ───────────────────────────────────────────────────────────────────── # Create synthetic 4-D dataset @@ -433,7 +433,7 @@ plt.legend() plt.tight_layout() plt.show() ``` -Qui abbiamo combinato il nostro precedente dataset normale 4D con un numero limitato di outlier estremi (gli outlier hanno una caratteristica (“durata”) impostata molto alta, ecc., per simulare un modello strano). Eseguiamo t-SNE con una perplessità tipica di 30. I dati di output data_2d hanno forma (1505, 2). In questo testo non tracciamo effettivamente, ma se lo facessimo, ci aspetteremmo di vedere forse tre cluster compatti corrispondenti ai 3 cluster normali, e i 5 outlier apparire come punti isolati lontani da quei cluster. In un flusso di lavoro interattivo, potremmo colorare i punti in base alla loro etichetta (normale o quale cluster, rispetto all'anomalia) per verificare questa struttura. Anche senza etichette, un analista potrebbe notare quei 5 punti seduti in uno spazio vuoto nel grafico 2D e segnalarli. Questo dimostra come t-SNE possa essere un potente aiuto per la rilevazione visiva delle anomalie e l'ispezione dei cluster nei dati di cybersecurity, complementando gli algoritmi automatizzati sopra. +Qui abbiamo combinato il nostro precedente dataset normale 4D con un numero limitato di outlier estremi (gli outlier hanno una caratteristica (“durata”) impostata molto alta, ecc., per simulare un modello strano). Eseguiamo t-SNE con una perplessità tipica di 30. I dati di output_2d hanno forma (1505, 2). In questo testo non tracciamo effettivamente, ma se lo facessimo, ci aspetteremmo di vedere forse tre cluster compatti corrispondenti ai 3 cluster normali, e i 5 outlier apparire come punti isolati lontani da quei cluster. In un flusso di lavoro interattivo, potremmo colorare i punti in base alla loro etichetta (normale o quale cluster, rispetto all'anomalia) per verificare questa struttura. Anche senza etichette, un analista potrebbe notare quei 5 punti seduti in uno spazio vuoto nel grafico 2D e segnalarli. Questo dimostra come t-SNE possa essere un potente aiuto per la rilevazione visiva delle anomalie e l'ispezione dei cluster nei dati di cybersecurity, complementando gli algoritmi automatizzati sopra.