diff --git a/src/AI/AI-Unsupervised-Learning-algorithms.md b/src/AI/AI-Unsupervised-Learning-Algorithms.md
similarity index 78%
rename from src/AI/AI-Unsupervised-Learning-algorithms.md
rename to src/AI/AI-Unsupervised-Learning-Algorithms.md
index fa19ac571..be69f8ba5 100644
--- a/src/AI/AI-Unsupervised-Learning-algorithms.md
+++ b/src/AI/AI-Unsupervised-Learning-Algorithms.md
@@ -9,14 +9,14 @@
### Ομαδοποίηση K-Means
-Ο K-Means είναι ένας αλγόριθμος ομαδοποίησης βασισμένος σε κεντροειδείς που διαχωρίζει τα δεδομένα σε K ομάδες αναθέτοντας κάθε σημείο στην πλησιέστερη μέση τιμή ομάδας. Ο αλγόριθμος λειτουργεί ως εξής:
-1. **Αρχικοποίηση**: Επιλέξτε K αρχικά κέντρα ομάδων (κεντροειδείς), συχνά τυχαία ή μέσω πιο έξυπνων μεθόδων όπως το k-means++
+Το K-Means είναι ένας αλγόριθμος ομαδοποίησης βασισμένος σε κεντροειδείς που διαχωρίζει τα δεδομένα σε K ομάδες αναθέτοντας κάθε σημείο στην πλησιέστερη μέση τιμή ομάδας. Ο αλγόριθμος λειτουργεί ως εξής:
+1. **Αρχικοποίηση**: Επιλέξτε K αρχικά κέντρα ομάδων (κεντροειδείς), συχνά τυχαία ή μέσω πιο έξυπνων μεθόδων όπως το k-means++.
2. **Ανάθεση**: Αναθέστε κάθε σημείο δεδομένων στην πλησιέστερη κεντροειδή με βάση ένα μέτρο απόστασης (π.χ., Ευκλείδεια απόσταση).
3. **Ενημέρωση**: Υπολογίστε ξανά τις κεντροειδείς παίρνοντας τη μέση τιμή όλων των σημείων δεδομένων που έχουν ανατεθεί σε κάθε ομάδα.
4. **Επανάληψη**: Τα βήματα 2–3 επαναλαμβάνονται μέχρι οι αναθέσεις ομάδων να σταθεροποιηθούν (οι κεντροειδείς δεν κινούνται πλέον σημαντικά).
> [!TIP]
-> *Χρήσεις στην κυβερνοασφάλεια:* Ο K-Means χρησιμοποιείται για την ανίχνευση εισβολών ομαδοποιώντας γεγονότα δικτύου. Για παράδειγμα, οι ερευνητές εφαρμόσαν τον K-Means στο σύνολο δεδομένων εισβολών KDD Cup 99 και διαπίστωσαν ότι διαχωρίζει αποτελεσματικά την κίνηση σε κανονικές και επιθετικές ομάδες. Στην πράξη, οι αναλυτές ασφαλείας μπορεί να ομαδοποιήσουν καταχωρήσεις καταγραφής ή δεδομένα συμπεριφοράς χρηστών για να βρουν ομάδες παρόμοιας δραστηριότητας. Οποιαδήποτε σημεία που δεν ανήκουν σε μια καλά σχηματισμένη ομάδα μπορεί να υποδεικνύουν ανωμαλίες (π.χ. μια νέα παραλλαγή κακόβουλου λογισμικού που σχηματίζει τη δική της μικρή ομάδα). Ο K-Means μπορεί επίσης να βοηθήσει στην κατηγοριοποίηση οικογενειών κακόβουλου λογισμικού ομαδοποιώντας δυαδικά αρχεία με βάση προφίλ συμπεριφοράς ή διανύσματα χαρακτηριστικών.
+> *Χρήσεις στην κυβερνοασφάλεια:* Το K-Means χρησιμοποιείται για την ανίχνευση εισβολών ομαδοποιώντας γεγονότα δικτύου. Για παράδειγμα, οι ερευνητές εφαρμόσαν το K-Means στο σύνολο δεδομένων εισβολών KDD Cup 99 και διαπίστωσαν ότι διαχωρίζει αποτελεσματικά την κίνηση σε κανονικές και επιθετικές ομάδες. Στην πράξη, οι αναλυτές ασφαλείας μπορεί να ομαδοποιήσουν καταχωρήσεις καταγραφής ή δεδομένα συμπεριφοράς χρηστών για να βρουν ομάδες παρόμοιας δραστηριότητας. Οποιαδήποτε σημεία που δεν ανήκουν σε μια καλά σχηματισμένη ομάδα μπορεί να υποδεικνύουν ανωμαλίες (π.χ. μια νέα παραλλαγή κακόβουλου λογισμικού που σχηματίζει τη δική της μικρή ομάδα). Το K-Means μπορεί επίσης να βοηθήσει στην κατηγοριοποίηση οικογενειών κακόβουλου λογισμικού ομαδοποιώντας δυαδικά αρχεία με βάση προφίλ συμπεριφοράς ή διανύσματα χαρακτηριστικών.
#### Επιλογή του K
Ο αριθμός των ομάδων (K) είναι μια υπερπαράμετρος που πρέπει να καθοριστεί πριν από την εκτέλεση του αλγορίθμου. Τεχνικές όπως η Μέθοδος του Αγκώνα ή η Βαθμολογία Σιλουέτας μπορούν να βοηθήσουν στον προσδιορισμό μιας κατάλληλης τιμής για το K αξιολογώντας την απόδοση της ομαδοποίησης:
@@ -26,12 +26,12 @@
#### Υποθέσεις και Περιορισμοί
-Ο K-Means υποθέτει ότι **οι ομάδες είναι σφαιρικές και ίσου μεγέθους**, κάτι που μπορεί να μην ισχύει για όλα τα σύνολα δεδομένων. Είναι ευαίσθητος στην αρχική τοποθέτηση των κεντροειδών και μπορεί να συγκλίνει σε τοπικά ελάχιστα. Επιπλέον, ο K-Means δεν είναι κατάλληλος για σύνολα δεδομένων με μεταβαλλόμενες πυκνότητες ή μη σφαιρικά σχήματα και χαρακτηριστικά με διαφορετικές κλίμακες. Βήματα προεπεξεργασίας όπως η κανονικοποίηση ή η τυποποίηση μπορεί να είναι απαραίτητα για να διασφαλιστεί ότι όλα τα χαρακτηριστικά συμβάλλουν εξίσου στους υπολογισμούς αποστάσεων.
+Το K-Means υποθέτει ότι **οι ομάδες είναι σφαιρικές και ίσου μεγέθους**, κάτι που μπορεί να μην ισχύει για όλα τα σύνολα δεδομένων. Είναι ευαίσθητο στην αρχική τοποθέτηση των κεντροειδών και μπορεί να συγκλίνει σε τοπικά ελάχιστα. Επιπλέον, το K-Means δεν είναι κατάλληλο για σύνολα δεδομένων με μεταβαλλόμενες πυκνότητες ή μη σφαιρικά σχήματα και χαρακτηριστικά με διαφορετικές κλίμακες. Βήματα προεπεξεργασίας όπως η κανονικοποίηση ή η τυποποίηση μπορεί να είναι απαραίτητα για να διασφαλιστεί ότι όλα τα χαρακτηριστικά συμβάλλουν εξίσου στους υπολογισμούς αποστάσεων.
Παράδειγμα -- Ομαδοποίηση Γεγονότων Δικτύου
-Παρακάτω προσομοιώνουμε δεδομένα κίνησης δικτύου και χρησιμοποιούμε τον K-Means για να τα ομαδοποιήσουμε. Υποθέστε ότι έχουμε γεγονότα με χαρακτηριστικά όπως η διάρκεια σύνδεσης και ο αριθμός byte. Δημιουργούμε 3 ομάδες "κανονικής" κίνησης και 1 μικρή ομάδα που αντιπροσωπεύει ένα μοτίβο επίθεσης. Στη συνέχεια, εκτελούμε τον K-Means για να δούμε αν τις διαχωρίζει.
+Παρακάτω προσομοιώνουμε δεδομένα κίνησης δικτύου και χρησιμοποιούμε το K-Means για να τα ομαδοποιήσουμε. Υποθέστε ότι έχουμε γεγονότα με χαρακτηριστικά όπως η διάρκεια σύνδεσης και ο αριθμός byte. Δημιουργούμε 3 ομάδες "κανονικής" κίνησης και 1 μικρή ομάδα που αντιπροσωπεύει ένα μοτίβο επίθεσης. Στη συνέχεια, εκτελούμε το K-Means για να δούμε αν τα διαχωρίζει.
```python
import numpy as np
from sklearn.cluster import KMeans
@@ -67,9 +67,9 @@ print(f" Cluster {idx}: {center}")
1. **Συγκεντρωτική (Από Κάτω προς Τα Πάνω)**: Ξεκινάμε με κάθε σημείο δεδομένων ως ξεχωριστή ομάδα και συγχωνεύουμε επαναληπτικά τις πιο κοντινές ομάδες μέχρι να παραμείνει μια μόνο ομάδα ή να πληρωθεί ένα κριτήριο διακοπής.
2. **Διαχωριστική (Από Πάνω προς Τα Κάτω)**: Ξεκινάμε με όλα τα σημεία δεδομένων σε μια μόνο ομάδα και διαχωρίζουμε επαναληπτικά τις ομάδες μέχρι κάθε σημείο δεδομένων να είναι η δική του ομάδα ή να πληρωθεί ένα κριτήριο διακοπής.
-Η συγκεντρωτική ομαδοποίηση απαιτεί έναν ορισμό της απόστασης μεταξύ ομάδων και ένα κριτήριο σύνδεσης για να αποφασίσει ποιες ομάδες θα συγχωνευτούν. Κοινές μέθοδοι σύνδεσης περιλαμβάνουν τη μοναδική σύνδεση (απόσταση των πιο κοντινών σημείων μεταξύ δύο ομάδων), τη πλήρη σύνδεση (απόσταση των πιο απομακρυσμένων σημείων), τη μέση σύνδεση κ.λπ., και η μετρική απόστασης είναι συχνά Ευκλείδεια. Η επιλογή της σύνδεσης επηρεάζει το σχήμα των ομάδων που παράγονται. Δεν υπάρχει ανάγκη να προ-καθορίσετε τον αριθμό των ομάδων K; μπορείτε να "κόψετε" το δενδρόγραμμα σε ένα επιλεγμένο επίπεδο για να αποκτήσετε τον επιθυμητό αριθμό ομάδων.
+Η συγκεντρωτική ομαδοποίηση απαιτεί έναν ορισμό της απόστασης μεταξύ ομάδων και ένα κριτήριο σύνδεσης για να αποφασιστεί ποιες ομάδες θα συγχωνευτούν. Κοινές μέθοδοι σύνδεσης περιλαμβάνουν τη μοναδική σύνδεση (απόσταση των πιο κοντινών σημείων μεταξύ δύο ομάδων), τη πλήρη σύνδεση (απόσταση των πιο απομακρυσμένων σημείων), τη μέση σύνδεση κ.λπ., και η μετρική απόστασης είναι συχνά Ευκλείδεια. Η επιλογή της σύνδεσης επηρεάζει το σχήμα των ομάδων που παράγονται. Δεν υπάρχει ανάγκη να προ-καθοριστεί ο αριθμός των ομάδων K; μπορείτε να "κόψετε" το δενδρόγραμμα σε ένα επιλεγμένο επίπεδο για να αποκτήσετε τον επιθυμητό αριθμό ομάδων.
-Η ιεραρχική ομαδοποίηση παράγει ένα δενδρόγραμμα, μια δομή που μοιάζει με δέντρο που δείχνει τις σχέσεις μεταξύ των ομάδων σε διαφορετικά επίπεδα λεπτομέρειας. Το δενδρόγραμμα μπορεί να κοπεί σε ένα επιθυμητό επίπεδο για να αποκτήσει έναν συγκεκριμένο αριθμό ομάδων.
+Η ιεραρχική ομαδοποίηση παράγει ένα δενδρόγραμμα, μια δομή που μοιάζει με δέντρο και δείχνει τις σχέσεις μεταξύ των ομάδων σε διαφορετικά επίπεδα λεπτομέρειας. Το δενδρόγραμμα μπορεί να κοπεί σε ένα επιθυμητό επίπεδο για να αποκτηθεί ένας συγκεκριμένος αριθμός ομάδων.
> [!TIP]
> *Χρήσεις στην κυβερνοασφάλεια:* Η ιεραρχική ομαδοποίηση μπορεί να οργανώσει γεγονότα ή οντότητες σε ένα δέντρο για να εντοπίσει σχέσεις. Για παράδειγμα, στην ανάλυση κακόβουλου λογισμικού, η συγκεντρωτική ομαδοποίηση θα μπορούσε να ομαδοποιήσει δείγματα με βάση τη συμπεριφορική ομοιότητα, αποκαλύπτοντας μια ιεραρχία οικογενειών και παραλλαγών κακόβουλου λογισμικού. Στην ασφάλεια δικτύου, θα μπορούσε κανείς να ομαδοποιήσει ροές IP και να χρησιμοποιήσει το δενδρόγραμμα για να δει υποομαδοποιήσεις της κίνησης (π.χ., κατά πρωτόκολλο, στη συνέχεια κατά συμπεριφορά). Δεδομένου ότι δεν χρειάζεται να επιλέξετε K εκ των προτέρων, είναι χρήσιμο όταν εξερευνάτε νέα δεδομένα για τα οποία ο αριθμός των κατηγοριών επιθέσεων είναι άγνωστος.
@@ -102,15 +102,15 @@ print(f"Cluster sizes for 3 clusters: {np.bincount(clusters_3)}")
```
-### DBSCAN (Συστάδα Βασισμένη σε Πυκνότητα Χώρου Εφαρμογών με Θόρυβο)
+### DBSCAN (Συστάδα Βασισμένη σε Πυκνότητα Χωρικών Εφαρμογών με Θόρυβο)
-Το DBSCAN είναι ένας αλγόριθμος συστάδων βασισμένος σε πυκνότητα που ομαδοποιεί σημεία που είναι στενά συσκευασμένα μεταξύ τους, ενώ επισημαίνει σημεία σε περιοχές χαμηλής πυκνότητας ως εκτός ομάδας. Είναι ιδιαίτερα χρήσιμος για σύνολα δεδομένων με μεταβαλλόμενες πυκνότητες και μη σφαιρικά σχήματα.
+DBSCAN είναι ένας αλγόριθμος συστάδων βασισμένος σε πυκνότητα που ομαδοποιεί σημεία που είναι στενά συσκευασμένα μεταξύ τους, ενώ επισημαίνει σημεία σε περιοχές χαμηλής πυκνότητας ως εκτός ομάδας. Είναι ιδιαίτερα χρήσιμος για σύνολα δεδομένων με μεταβαλλόμενες πυκνότητες και μη σφαιρικά σχήματα.
-Το DBSCAN λειτουργεί καθορίζοντας δύο παραμέτρους:
+DBSCAN λειτουργεί καθορίζοντας δύο παραμέτρους:
- **Epsilon (ε)**: Η μέγιστη απόσταση μεταξύ δύο σημείων για να θεωρούνται μέρος της ίδιας ομάδας.
- **MinPts**: Ο ελάχιστος αριθμός σημείων που απαιτείται για να σχηματιστεί μια πυκνή περιοχή (κύριο σημείο).
-Το DBSCAN αναγνωρίζει κύρια σημεία, σημεία ορίου και σημεία θορύβου:
+DBSCAN αναγνωρίζει κύρια σημεία, σημεία ορίου και σημεία θορύβου:
- **Κύριο Σημείο**: Ένα σημείο με τουλάχιστον MinPts γείτονες εντός απόστασης ε.
- **Σημείο Ορίου**: Ένα σημείο που βρίσκεται εντός απόστασης ε από ένα κύριο σημείο αλλά έχει λιγότερους από MinPts γείτονες.
- **Σημείο Θορύβου**: Ένα σημείο που δεν είναι ούτε κύριο σημείο ούτε σημείο ορίου.
@@ -118,7 +118,7 @@ print(f"Cluster sizes for 3 clusters: {np.bincount(clusters_3)}")
Η ομαδοποίηση προχωρά επιλέγοντας ένα μη επισκεφθέν κύριο σημείο, το επισημαίνει ως νέα ομάδα και στη συνέχεια προσθέτει αναδρομικά όλα τα σημεία που είναι προσβάσιμα από αυτό (κύρια σημεία και οι γείτονές τους, κ.λπ.). Τα σημεία ορίου προστίθενται στην ομάδα ενός κοντινού κύριου. Αφού επεκταθούν όλα τα προσβάσιμα σημεία, το DBSCAN μεταβαίνει σε άλλο μη επισκεφθέν κύριο για να ξεκινήσει μια νέα ομάδα. Τα σημεία που δεν έχουν προσεγγιστεί από κανένα κύριο παραμένουν επισημασμένα ως θόρυβος.
> [!TIP]
-> *Χρήσεις στην κυβερνοασφάλεια:* Το DBSCAN είναι χρήσιμο για την ανίχνευση ανωμαλιών στην κίνηση δικτύου. Για παράδειγμα, η κανονική δραστηριότητα χρηστών μπορεί να σχηματίσει μία ή περισσότερες πυκνές ομάδες στον χώρο χαρακτηριστικών, ενώ οι νέες επιθέσεις εμφανίζονται ως διασκορπισμένα σημεία που το DBSCAN θα επισημάνει ως θόρυβο (εκτός ομάδας). Έχει χρησιμοποιηθεί για την ομαδοποίηση καταγραφών ροής δικτύου, όπου μπορεί να ανιχνεύσει σαρώσεις θυρών ή κίνηση άρνησης υπηρεσίας ως αραιές περιοχές σημείων. Μια άλλη εφαρμογή είναι η ομαδοποίηση παραλλαγών κακόβουλου λογισμικού: αν οι περισσότερες δείγματα ομαδοποιούνται κατά οικογένειες αλλά μερικά δεν ταιριάζουν πουθενά, αυτά τα λίγα θα μπορούσαν να είναι κακόβουλο λογισμικό μηδενικής ημέρας. Η ικανότητα να επισημαίνει θόρυβο σημαίνει ότι οι ομάδες ασφαλείας μπορούν να επικεντρωθούν στην έρευνα αυτών των εκτός ομάδας.
+> *Χρήσεις στην κυβερνοασφάλεια:* Το DBSCAN είναι χρήσιμο για την ανίχνευση ανωμαλιών στην κίνηση δικτύου. Για παράδειγμα, η κανονική δραστηριότητα χρηστών μπορεί να σχηματίσει μία ή περισσότερες πυκνές ομάδες στον χώρο χαρακτηριστικών, ενώ οι νέες επιθέσεις εμφανίζονται ως διασκορπισμένα σημεία που το DBSCAN θα επισημάνει ως θόρυβο (εκτός ομάδας). Έχει χρησιμοποιηθεί για την ομαδοποίηση καταγραφών ροής δικτύου, όπου μπορεί να ανιχνεύσει σαρώσεις θυρών ή κίνηση άρνησης υπηρεσίας ως αραιές περιοχές σημείων. Μια άλλη εφαρμογή είναι η ομαδοποίηση παραλλαγών κακόβουλου λογισμικού: αν οι περισσότερες δείγματα ομαδοποιούνται κατά οικογένειες αλλά μερικά δεν ταιριάζουν πουθενά, αυτά τα λίγα θα μπορούσαν να είναι zero-day κακόβουλο λογισμικό. Η ικανότητα να επισημαίνει θόρυβο σημαίνει ότι οι ομάδες ασφαλείας μπορούν να επικεντρωθούν στην έρευνα αυτών των εκτός ομάδας.
#### Υποθέσεις και Περιορισμοί
@@ -150,55 +150,55 @@ num_noise = np.sum(labels == -1)
print(f"DBSCAN found {num_clusters} clusters and {num_noise} noise points")
print("Cluster labels for first 10 points:", labels[:10])
```
-Σε αυτό το απόσπασμα, ρυθμίσαμε το `eps` και το `min_samples` ώστε να ταιριάζουν με την κλίμακα των δεδομένων μας (15.0 σε μονάδες χαρακτηριστικών και απαιτώντας 5 σημεία για να σχηματίσουμε ένα σύμπλεγμα). Το DBSCAN θα πρέπει να βρει 2 συμπλέγματα (τα κανονικά συμπλέγματα κυκλοφορίας) και να επισημάνει τα 5 εισαγόμενα εξωτικά σημεία ως θόρυβο. Εξάγουμε τον αριθμό των συμπλεγμάτων σε σχέση με τα σημεία θορύβου για να το επαληθεύσουμε. Σε μια πραγματική ρύθμιση, μπορεί κανείς να επαναλάβει τη διαδικασία για το ε (χρησιμοποιώντας μια ημι-γραφική προσέγγιση k-distance για να επιλέξει το ε) και το MinPts (συχνά ρυθμισμένο γύρω από τη διαστατικότητα των δεδομένων + 1 ως κανόνας) για να βρει σταθερά αποτελέσματα συμπλέγματος. Η ικανότητα να επισημαίνουμε ρητά το θόρυβο βοηθά στη διαχωριστική ανάλυση πιθανών επιθέσεων για περαιτέρω ανάλυση.
+Σε αυτό το απόσπασμα, ρυθμίσαμε το `eps` και το `min_samples` ώστε να ταιριάζουν με την κλίμακα των δεδομένων μας (15.0 σε μονάδες χαρακτηριστικών και απαιτώντας 5 σημεία για να σχηματίσουν ένα σύμπλεγμα). Το DBSCAN θα πρέπει να βρει 2 συμπλέγματα (τα κανονικά συμπλέγματα κυκλοφορίας) και να σηματοδοτήσει τα 5 εισαγόμενα εξωτικά σημεία ως θόρυβο. Εξάγουμε τον αριθμό των συμπλεγμάτων σε σχέση με τα σημεία θορύβου για να το επαληθεύσουμε. Σε μια πραγματική ρύθμιση, μπορεί κανείς να επαναλάβει τη διαδικασία για το ε (χρησιμοποιώντας μια ημι-γραφική προσέγγιση k-distance για να επιλέξει το ε) και το MinPts (συχνά ρυθμισμένο γύρω από τη διαστατικότητα των δεδομένων + 1 ως κανόνας) για να βρει σταθερά αποτελέσματα συμπλέγματος. Η ικανότητα να επισημαίνουμε ρητά τον θόρυβο βοηθά στη διαχωριστική ανάλυση πιθανών επιθέσεων για περαιτέρω ανάλυση.
### Ανάλυση Κύριων Συνιστωσών (PCA)
-Η PCA είναι μια τεχνική για **μείωση διαστατικότητας** που βρίσκει ένα νέο σύνολο ορθογωνίων αξόνων (κύριες συνιστώσες) που καταγράφουν τη μέγιστη διακύμανση στα δεδομένα. Με απλά λόγια, η PCA περιστρέφει και προβάλλει τα δεδομένα σε ένα νέο σύστημα συντεταγμένων έτσι ώστε η πρώτη κύρια συνιστώσα (PC1) να εξηγεί τη μεγαλύτερη δυνατή διακύμανση, η δεύτερη PC (PC2) να εξηγεί τη μεγαλύτερη διακύμανση ορθογώνια στην PC1, και ούτω καθεξής. Μαθηματικά, η PCA υπολογίζει τους ιδιοδιανύσματα της μήτρας συνδιακύμανσης των δεδομένων – αυτά τα ιδιοδιανύσματα είναι οι κατευθύνσεις των κύριων συνιστωσών, και οι αντίστοιχες ιδιοτιμές υποδεικνύουν την ποσότητα της διακύμανσης που εξηγείται από κάθε μία. Χρησιμοποιείται συχνά για εξαγωγή χαρακτηριστικών, οπτικοποίηση και μείωση θορύβου.
+Η PCA είναι μια τεχνική για **μείωση διαστάσεων** που βρίσκει ένα νέο σύνολο ορθογωνίων αξόνων (κύριες συνιστώσες) που καταγράφουν τη μέγιστη διακύμανση στα δεδομένα. Με απλά λόγια, η PCA περιστρέφει και προβάλλει τα δεδομένα σε ένα νέο σύστημα συντεταγμένων έτσι ώστε η πρώτη κύρια συνιστώσα (PC1) να εξηγεί τη μεγαλύτερη δυνατή διακύμανση, η δεύτερη PC (PC2) να εξηγεί τη μεγαλύτερη διακύμανση ορθογώνια στην PC1, και ούτω καθεξής. Μαθηματικά, η PCA υπολογίζει τους ιδιοδιανύσματα του πίνακα συνδιακύμανσης των δεδομένων – αυτά τα ιδιοδιανύσματα είναι οι κατευθύνσεις των κύριων συνιστωσών, και οι αντίστοιχες ιδιοτιμές υποδεικνύουν την ποσότητα της διακύμανσης που εξηγείται από κάθε μία. Χρησιμοποιείται συχνά για εξαγωγή χαρακτηριστικών, οπτικοποίηση και μείωση θορύβου.
Σημειώστε ότι αυτό είναι χρήσιμο αν οι διαστάσεις του συνόλου δεδομένων περιέχουν **σημαντικές γραμμικές εξαρτήσεις ή συσχετίσεις**.
-Η PCA λειτουργεί εντοπίζοντας τις κύριες συνιστώσες των δεδομένων, οι οποίες είναι οι κατευθύνσεις της μέγιστης διακύμανσης. Τα βήματα που εμπλέκονται στην PCA είναι:
+Η PCA λειτουργεί με την αναγνώριση των κύριων συνιστωσών των δεδομένων, οι οποίες είναι οι κατευθύνσεις της μέγιστης διακύμανσης. Τα βήματα που εμπλέκονται στην PCA είναι:
1. **Τυποποίηση**: Κεντράρετε τα δεδομένα αφαιρώντας τον μέσο όρο και κλιμακώνοντάς τα σε μονάδα διακύμανσης.
-2. **Μήτρα Συνδιακύμανσης**: Υπολογίστε τη μήτρα συνδιακύμανσης των τυποποιημένων δεδομένων για να κατανοήσετε τις σχέσεις μεταξύ των χαρακτηριστικών.
-3. **Αποσύνθεση Ιδιοτιμών**: Εκτελέστε αποσύνθεση ιδιοτιμών στη μήτρα συνδιακύμανσης για να αποκτήσετε τις ιδιοτιμές και τα ιδιοδιανύσματα.
-4. **Επιλογή Κύριων Συνιστωσών**: Ταξινομήστε τις ιδιοτιμές σε φθίνουσα σειρά και επιλέξτε τα κορυφαία K ιδιοδιανύσματα που αντιστοιχούν στις μεγαλύτερες ιδιοτιμές. Αυτά τα ιδιοδιανύσματα σχηματίζουν το νέο χώρο χαρακτηριστικών.
-5. **Μετασχηματισμός Δεδομένων**: Προβάλλετε τα αρχικά δεδομένα στο νέο χώρο χαρακτηριστικών χρησιμοποιώντας τις επιλεγμένες κύριες συνιστώσες.
+2. **Πίνακας Συνδιακύμανσης**: Υπολογίστε τον πίνακα συνδιακύμανσης των τυποποιημένων δεδομένων για να κατανοήσετε τις σχέσεις μεταξύ των χαρακτηριστικών.
+3. **Αποσύνθεση Ιδιοτιμών**: Εκτελέστε αποσύνθεση ιδιοτιμών στον πίνακα συνδιακύμανσης για να αποκτήσετε τις ιδιοτιμές και τα ιδιοδιανύσματα.
+4. **Επιλογή Κύριων Συνιστωσών**: Ταξινομήστε τις ιδιοτιμές σε φθίνουσα σειρά και επιλέξτε τα κορυφαία K ιδιοδιανύσματα που αντιστοιχούν στις μεγαλύτερες ιδιοτιμές. Αυτά τα ιδιοδιανύσματα σχηματίζουν τον νέο χώρο χαρακτηριστικών.
+5. **Μετασχηματισμός Δεδομένων**: Προβάλλετε τα αρχικά δεδομένα στον νέο χώρο χαρακτηριστικών χρησιμοποιώντας τις επιλεγμένες κύριες συνιστώσες.
Η PCA χρησιμοποιείται ευρέως για οπτικοποίηση δεδομένων, μείωση θορύβου και ως βήμα προεπεξεργασίας για άλλους αλγόριθμους μηχανικής μάθησης. Βοηθά στη μείωση της διαστατικότητας των δεδομένων διατηρώντας τη βασική τους δομή.
#### Ιδιοτιμές και Ιδιοδιανύσματα
Μια ιδιοτιμή είναι ένας σκαλάρ που υποδεικνύει την ποσότητα της διακύμανσης που καταγράφεται από το αντίστοιχο ιδιοδιανύσμα της. Ένα ιδιοδιανύσμα αναπαριστά μια κατεύθυνση στο χώρο χαρακτηριστικών κατά μήκος της οποίας τα δεδομένα ποικίλλουν περισσότερο.
-Φανταστείτε ότι A είναι μια τετράγωνη μήτρα και v είναι ένα μη μηδενικό διάνυσμα έτσι ώστε: `A * v = λ * v`
+Φανταστείτε ότι A είναι ένας τετράγωνος πίνακας και v είναι ένα μη μηδενικό διάνυσμα έτσι ώστε: `A * v = λ * v`
όπου:
-- A είναι μια τετράγωνη μήτρα όπως [ [1, 2], [2, 1]] (π.χ., μήτρα συνδιακύμανσης)
+- A είναι ένας τετράγωνος πίνακας όπως [ [1, 2], [2, 1]] (π.χ., πίνακας συνδιακύμανσης)
- v είναι ένα ιδιοδιανύσμα (π.χ., [1, 1])
-Τότε, `A * v = [ [1, 2], [2, 1]] * [1, 1] = [3, 3]` που θα είναι η ιδιοτιμή λ πολλαπλασιασμένη με το ιδιοδιανύσμα v, κάνοντάς την ιδιοτιμή λ = 3.
+Τότε, `A * v = [ [1, 2], [2, 1]] * [1, 1] = [3, 3]` το οποίο θα είναι η ιδιοτιμή λ πολλαπλασιασμένη με το ιδιοδιανύσμα v, κάνοντάς την ιδιοτιμή λ = 3.
#### Ιδιοτιμές και Ιδιοδιανύσματα στην PCA
-Ας εξηγήσουμε αυτό με ένα παράδειγμα. Φανταστείτε ότι έχετε ένα σύνολο δεδομένων με πολλές γκρίζες κλίμακες εικόνες προσώπων 100x100 pixels. Κάθε pixel μπορεί να θεωρηθεί ως χαρακτηριστικό, οπότε έχετε 10,000 χαρακτηριστικά ανά εικόνα (ή ένα διάνυσμα 10000 στοιχείων ανά εικόνα). Αν θέλετε να μειώσετε τη διαστατικότητα αυτού του συνόλου δεδομένων χρησιμοποιώντας PCA, θα ακολουθήσετε τα εξής βήματα:
+Ας εξηγήσουμε αυτό με ένα παράδειγμα. Φανταστείτε ότι έχετε ένα σύνολο δεδομένων με πολλές γκρίζες εικόνες προσώπων 100x100 pixels. Κάθε pixel μπορεί να θεωρηθεί ως χαρακτηριστικό, οπότε έχετε 10,000 χαρακτηριστικά ανά εικόνα (ή ένα διάνυσμα 10000 στοιχείων ανά εικόνα). Αν θέλετε να μειώσετε τη διαστατικότητα αυτού του συνόλου δεδομένων χρησιμοποιώντας PCA, θα ακολουθήσετε τα εξής βήματα:
1. **Τυποποίηση**: Κεντράρετε τα δεδομένα αφαιρώντας τον μέσο όρο κάθε χαρακτηριστικού (pixel) από το σύνολο δεδομένων.
-2. **Μήτρα Συνδιακύμανσης**: Υπολογίστε τη μήτρα συνδιακύμανσης των τυποποιημένων δεδομένων, η οποία καταγράφει πώς τα χαρακτηριστικά (pixels) ποικίλλουν μαζί.
+2. **Πίνακας Συνδιακύμανσης**: Υπολογίστε τον πίνακα συνδιακύμανσης των τυποποιημένων δεδομένων, ο οποίος καταγράφει πώς τα χαρακτηριστικά (pixels) ποικίλλουν μαζί.
- Σημειώστε ότι η συνδιακύμανση μεταξύ δύο μεταβλητών (pixels σε αυτή την περίπτωση) υποδεικνύει πόσο αλλάζουν μαζί, οπότε η ιδέα εδώ είναι να ανακαλύψετε ποια pixels τείνουν να αυξάνονται ή να μειώνονται μαζί με μια γραμμική σχέση.
- Για παράδειγμα, αν το pixel 1 και το pixel 2 τείνουν να αυξάνονται μαζί, η συνδιακύμανση μεταξύ τους θα είναι θετική.
-- Η μήτρα συνδιακύμανσης θα είναι μια μήτρα 10,000x10,000 όπου κάθε είσοδος αναπαριστά τη συνδιακύμανση μεταξύ δύο pixels.
-3. **Λύση της εξίσωσης ιδιοτιμών**: Η εξίσωση ιδιοτιμών που πρέπει να λυθεί είναι `C * v = λ * v` όπου C είναι η μήτρα συνδιακύμανσης, v είναι το ιδιοδιανύσμα και λ είναι η ιδιοτιμή. Μπορεί να λυθεί χρησιμοποιώντας μεθόδους όπως:
-- **Αποσύνθεση Ιδιοτιμών**: Εκτελέστε αποσύνθεση ιδιοτιμών στη μήτρα συνδιακύμανσης για να αποκτήσετε τις ιδιοτιμές και τα ιδιοδιανύσματα.
-- **Αποσύνθεση Σημαντικών Τιμών (SVD)**: Εναλλακτικά, μπορείτε να χρησιμοποιήσετε SVD για να αποσυνθέσετε τη μήτρα δεδομένων σε σημαντικές τιμές και διανύσματα, τα οποία μπορούν επίσης να αποδώσουν τις κύριες συνιστώσες.
+- Ο πίνακας συνδιακύμανσης θα είναι ένας πίνακας 10,000x10,000 όπου κάθε είσοδος αναπαριστά τη συνδιακύμανση μεταξύ δύο pixels.
+3. **Λύστε την εξίσωση ιδιοτιμών**: Η εξίσωση ιδιοτιμών που πρέπει να λυθεί είναι `C * v = λ * v` όπου C είναι ο πίνακας συνδιακύμανσης, v είναι το ιδιοδιανύσμα και λ είναι η ιδιοτιμή. Μπορεί να λυθεί χρησιμοποιώντας μεθόδους όπως:
+- **Αποσύνθεση Ιδιοτιμών**: Εκτελέστε αποσύνθεση ιδιοτιμών στον πίνακα συνδιακύμανσης για να αποκτήσετε τις ιδιοτιμές και τα ιδιοδιανύσματα.
+- **Αποσύνθεση Σημαντικών Τιμών (SVD)**: Εναλλακτικά, μπορείτε να χρησιμοποιήσετε SVD για να αποσυνθέσετε τον πίνακα δεδομένων σε σημαντικές τιμές και διανύσματα, τα οποία μπορούν επίσης να αποδώσουν τις κύριες συνιστώσες.
4. **Επιλογή Κύριων Συνιστωσών**: Ταξινομήστε τις ιδιοτιμές σε φθίνουσα σειρά και επιλέξτε τα κορυφαία K ιδιοδιανύσματα που αντιστοιχούν στις μεγαλύτερες ιδιοτιμές. Αυτά τα ιδιοδιανύσματα αναπαριστούν τις κατευθύνσεις της μέγιστης διακύμανσης στα δεδομένα.
> [!TIP]
-> *Χρήσεις στην κυβερνοασφάλεια:* Μια κοινή χρήση της PCA στην ασφάλεια είναι η μείωση χαρακτηριστικών για ανίχνευση ανωμαλιών. Για παράδειγμα, ένα σύστημα ανίχνευσης εισβολών με 40+ μετρικές δικτύου (όπως χαρακτηριστικά NSL-KDD) μπορεί να χρησιμοποιήσει την PCA για να μειώσει σε λίγες συνιστώσες, συνοψίζοντας τα δεδομένα για οπτικοποίηση ή τροφοδοσία σε αλγόριθμους συμπλέγματος. Οι αναλυτές μπορεί να σχεδιάσουν την κυκλοφορία δικτύου στο χώρο των πρώτων δύο κύριων συνιστωσών για να δουν αν οι επιθέσεις διαχωρίζονται από την κανονική κυκλοφορία. Η PCA μπορεί επίσης να βοηθήσει στην εξάλειψη πλεοναστικών χαρακτηριστικών (όπως τα bytes που αποστέλλονται σε σχέση με τα bytes που λαμβάνονται αν είναι συσχετισμένα) για να καταστήσει τους αλγόριθμους ανίχνευσης πιο ανθεκτικούς και ταχύτερους.
+> *Χρήσεις στην κυβερνοασφάλεια:* Μια κοινή χρήση της PCA στην ασφάλεια είναι η μείωση χαρακτηριστικών για ανίχνευση ανωμαλιών. Για παράδειγμα, ένα σύστημα ανίχνευσης εισβολών με 40+ μετρικές δικτύου (όπως χαρακτηριστικά NSL-KDD) μπορεί να χρησιμοποιήσει την PCA για να μειώσει σε λίγες συνιστώσες, συνοψίζοντας τα δεδομένα για οπτικοποίηση ή τροφοδοσία σε αλγόριθμους συμπλέγματος. Οι αναλυτές μπορεί να σχεδιάσουν την κυκλοφορία δικτύου στο χώρο των πρώτων δύο κύριων συνιστωσών για να δουν αν οι επιθέσεις διαχωρίζονται από την κανονική κυκλοφορία. Η PCA μπορεί επίσης να βοηθήσει στην εξάλειψη πλεοναζόντων χαρακτηριστικών (όπως τα bytes που αποστέλλονται σε σχέση με τα bytes που λαμβάνονται αν είναι συσχετισμένα) για να καταστήσει τους αλγόριθμους ανίχνευσης πιο ανθεκτικούς και ταχύτερους.
#### Υποθέσεις και Περιορισμοί
-Η PCA υποθέτει ότι οι **κύριοι άξονες διακύμανσης είναι σημαντικοί** – είναι μια γραμμική μέθοδος, οπότε καταγράφει γραμμικές συσχετίσεις στα δεδομένα. Είναι μη επιβλεπόμενη καθώς χρησιμοποιεί μόνο τη συνδιακύμανση των χαρακτηριστικών. Τα πλεονεκτήματα της PCA περιλαμβάνουν τη μείωση θορύβου (τα χαρακτηριστικά μικρής διακύμανσης συχνά αντιστοιχούν σε θόρυβο) και την αποσυσχέτιση των χαρακτηριστικών. Είναι υπολογιστικά αποδοτική για μέτριες υψηλές διαστάσεις και συχνά είναι ένα χρήσιμο βήμα προεπεξεργασίας για άλλους αλγόριθμους (για να μετριάσει την κατάρα της διαστατικότητας). Ένας περιορισμός είναι ότι η PCA περιορίζεται σε γραμμικές σχέσεις – δεν θα καταγράψει πολύπλοκες μη γραμμικές δομές (ενώ οι αυτοκωδικοποιητές ή το t-SNE μπορεί να το κάνουν). Επίσης, οι συνιστώσες της PCA μπορεί να είναι δύσκολο να ερμηνευτούν σε σχέση με τα αρχικά χαρακτηριστικά (είναι συνδυασμοί των αρχικών χαρακτηριστικών). Στην κυβερνοασφάλεια, πρέπει να είστε προσεκτικοί: μια επίθεση που προκαλεί μόνο μια λεπτή αλλαγή σε ένα χαρακτηριστικό χαμηλής διακύμανσης μπορεί να μην εμφανιστεί στις κορυφαίες PC (καθώς η PCA δίνει προτεραιότητα στη διακύμανση, όχι απαραίτητα στην "ενδιαφέρον").
+Η PCA υποθέτει ότι οι **κύριοι άξονες διακύμανσης είναι σημαντικοί** – είναι μια γραμμική μέθοδος, οπότε καταγράφει γραμμικές συσχετίσεις στα δεδομένα. Είναι μη επιβλεπόμενη καθώς χρησιμοποιεί μόνο τη συνδιακύμανση των χαρακτηριστικών. Τα πλεονεκτήματα της PCA περιλαμβάνουν τη μείωση θορύβου (τα χαρακτηριστικά μικρής διακύμανσης συχνά αντιστοιχούν σε θόρυβο) και την αποσυσχέτιση των χαρακτηριστικών. Είναι υπολογιστικά αποδοτική για μέτριες υψηλές διαστάσεις και συχνά είναι ένα χρήσιμο βήμα προεπεξεργασίας για άλλους αλγόριθμους (για να μετριάσει την κατάρα της διαστατικότητας). Ένας περιορισμός είναι ότι η PCA περιορίζεται σε γραμμικές σχέσεις – δεν θα καταγράψει πολύπλοκες μη γραμμικές δομές (ενώ οι αυτοκωδικοποιητές ή το t-SNE μπορεί να το κάνουν). Επίσης, οι συνιστώσες της PCA μπορεί να είναι δύσκολο να ερμηνευτούν σε σχέση με τα αρχικά χαρακτηριστικά (είναι συνδυασμοί των αρχικών χαρακτηριστικών). Στην κυβερνοασφάλεια, πρέπει να είμαστε προσεκτικοί: μια επίθεση που προκαλεί μόνο μια λεπτή αλλαγή σε ένα χαρακτηριστικό χαμηλής διακύμανσης μπορεί να μην εμφανιστεί στις κορυφαίες PC (καθώς η PCA δίνει προτεραιότητα στη διακύμανση, όχι απαραίτητα στην "ενδιαφέρον").
Παράδειγμα -- Μείωση Διαστάσεων Δεδομένων Δικτύου
@@ -247,7 +247,7 @@ r_{nk} = \frac{\pi_k \mathcal{N}(x_n | \mu_k, \Sigma_k)}{\sum_{j=1}^{K} \pi_j \m
- **M-step (Μέγιστη)**: Ενημερώστε τις παραμέτρους χρησιμοποιώντας τις ευθύνες που υπολογίστηκαν στο E-step:
- Ενημερώστε κάθε μέσο μ_k ως τον σταθμισμένο μέσο όρο των σημείων, όπου τα βάρη είναι οι ευθύνες.
-- Ενημερώστε κάθε συνδιακύμανση Σ_k ως τη σταθμισμένη συνδιακύμανση των σημείων που ανατέθηκαν στον συμπλέκτη k.
+- Ενημερώστε κάθε συνδιακύμανση Σ_k ως τη σταθμισμένη συνδιακύμανση των σημείων που ανατίθενται στον συμπλέκτη k.
- Ενημερώστε τους συντελεστές μίξης π_k ως τον μέσο όρο ευθύνης για τον συμπλέκτη k.
- **Επαναλάβετε** τα βήματα E και M μέχρι τη σύγκλιση (οι παράμετροι σταθεροποιούνται ή η βελτίωση της πιθανότητας είναι κάτω από ένα κατώφλι).
@@ -259,9 +259,9 @@ r_{nk} = \frac{\pi_k \mathcal{N}(x_n | \mu_k, \Sigma_k)}{\sum_{j=1}^{K} \pi_j \m
#### Υποθέσεις και Περιορισμοί
-Το GMM είναι μια γενίκευση του K-Means που ενσωματώνει τη συνδιακύμανση, έτσι οι συμπλέκτες μπορούν να είναι ελλειψοειδείς (όχι μόνο σφαιρικοί). Διαχειρίζεται συμπλέκτες διαφορετικών μεγεθών και σχημάτων αν η συνδιακύμανση είναι πλήρης. Η ήπια ομαδοποίηση είναι πλεονέκτημα όταν τα όρια των συμπλεκτών είναι ασαφή – π.χ., στην κυβερνοασφάλεια, ένα γεγονός μπορεί να έχει χαρακτηριστικά πολλών τύπων επιθέσεων; το GMM μπορεί να αντικατοπτρίζει αυτή την αβεβαιότητα με πιθανότητες. Το GMM παρέχει επίσης μια πιθανολογική εκτίμηση πυκνότητας των δεδομένων, χρήσιμη για την ανίχνευση εξαιρετικών περιπτώσεων (σημεία με χαμηλή πιθανότητα κάτω από όλα τα στοιχεία του μείγματος).
+Το GMM είναι μια γενίκευση του K-Means που ενσωματώνει τη συνδιακύμανση, έτσι ώστε οι συμπλέκτες να μπορούν να είναι ελλειψοειδείς (όχι μόνο σφαιρικοί). Διαχειρίζεται συμπλέκτες διαφορετικών μεγεθών και σχημάτων εάν η συνδιακύμανση είναι πλήρης. Η ήπια ομαδοποίηση είναι πλεονέκτημα όταν τα όρια των συμπλεκτών είναι ασαφή – π.χ., στην κυβερνοασφάλεια, ένα γεγονός μπορεί να έχει χαρακτηριστικά πολλών τύπων επιθέσεων; το GMM μπορεί να αντικατοπτρίζει αυτή την αβεβαιότητα με πιθανότητες. Το GMM παρέχει επίσης μια πιθανολογική εκτίμηση πυκνότητας των δεδομένων, χρήσιμη για την ανίχνευση εξαιρετικών περιπτώσεων (σημεία με χαμηλή πιθανότητα κάτω από όλα τα συστατικά του μείγματος).
-Από την άλλη πλευρά, το GMM απαιτεί να καθορίσετε τον αριθμό των συνιστωσών K (αν και μπορείτε να χρησιμοποιήσετε κριτήρια όπως BIC/AIC για να το επιλέξετε). Το EM μπορεί μερικές φορές να συγκλίνει αργά ή σε τοπικό βέλτιστο, οπότε η αρχικοποίηση είναι σημαντική (συχνά εκτελείται το EM πολλές φορές). Εάν τα δεδομένα δεν ακολουθούν πραγματικά ένα μείγμα Gaussian, το μοντέλο μπορεί να είναι κακή προσαρμογή. Υπάρχει επίσης κίνδυνος να συρρικνωθεί μια Gaussian για να καλύψει μόνο μια εξαιρετική περίπτωση (αν και η κανονικοποίηση ή τα ελάχιστα όρια συνδιακύμανσης μπορούν να μετριάσουν αυτό).
+Από την άλλη πλευρά, το GMM απαιτεί να καθορίσετε τον αριθμό των συστατικών K (αν και μπορείτε να χρησιμοποιήσετε κριτήρια όπως BIC/AIC για να το επιλέξετε). Το EM μπορεί μερικές φορές να συγκλίνει αργά ή σε τοπικό βέλτιστο, οπότε η αρχικοποίηση είναι σημαντική (συχνά εκτελείται το EM πολλές φορές). Εάν τα δεδομένα δεν ακολουθούν πραγματικά ένα μείγμα Gaussian, το μοντέλο μπορεί να είναι κακή προσαρμογή. Υπάρχει επίσης κίνδυνος να συρρικνωθεί μια Gaussian για να καλύψει μόνο μια εξαιρετική περίπτωση (αν και η κανονικοποίηση ή τα ελάχιστα όρια συνδιακύμανσης μπορούν να μετριάσουν αυτό).
```python
from sklearn.mixture import GaussianMixture
@@ -280,22 +280,22 @@ log_likelihood = gmm.score_samples(sample_attack)
print("Cluster membership probabilities for sample attack:", probs)
print("Log-likelihood of sample attack under GMM:", log_likelihood)
```
-Σε αυτόν τον κώδικα, εκπαιδεύουμε ένα GMM με 3 Γκαουσιανές πάνω στην κανονική κίνηση (υποθέτοντας ότι γνωρίζουμε 3 προφίλ νόμιμης κίνησης). Οι μέσοι και οι συνδιακυμάνσεις που εκτυπώνονται περιγράφουν αυτούς τους συμπλέκτες (για παράδειγμα, ένας μέσος μπορεί να είναι γύρω από [50,500] που αντιστοιχεί στο κέντρο ενός συμπλέκτη, κ.λπ.). Στη συνέχεια, δοκιμάζουμε μια ύποπτη σύνδεση [duration=200, bytes=800]. Η predict_proba δίνει την πιθανότητα αυτού του σημείου να ανήκει σε κάθε έναν από τους 3 συμπλέκτες – θα περιμέναμε αυτές τις πιθανότητες να είναι πολύ χαμηλές ή πολύ skewed καθώς το [200,800] βρίσκεται μακριά από τους κανονικούς συμπλέκτες. Η συνολική score_samples (log-likelihood) εκτυπώνεται; μια πολύ χαμηλή τιμή υποδεικνύει ότι το σημείο δεν ταιριάζει καλά στο μοντέλο, σηματοδοτώντας το ως ανωμαλία. Στην πράξη, θα μπορούσε κανείς να θέσει ένα κατώφλι στην log-likelihood (ή στην μέγιστη πιθανότητα) για να αποφασίσει αν ένα σημείο είναι αρκετά απίθανο ώστε να θεωρηθεί κακόβουλο. Έτσι, το GMM παρέχει έναν αρχή που βασίζεται στην ανίχνευση ανωμαλιών και επίσης αποδίδει μαλακούς συμπλέκτες που αναγνωρίζουν την αβεβαιότητα.
+Σε αυτόν τον κώδικα, εκπαιδεύουμε ένα GMM με 3 Γκαουσιανές πάνω στην κανονική κίνηση (υποθέτοντας ότι γνωρίζουμε 3 προφίλ νόμιμης κίνησης). Οι μέσοι και οι συνδιακυμάνσεις που εκτυπώνονται περιγράφουν αυτούς τους συμπλέκτες (για παράδειγμα, ένας μέσος μπορεί να είναι γύρω από [50,500] που αντιστοιχεί στο κέντρο ενός συμπλέκτη, κ.λπ.). Στη συνέχεια, δοκιμάζουμε μια ύποπτη σύνδεση [duration=200, bytes=800]. Η predict_proba δίνει την πιθανότητα αυτού του σημείου να ανήκει σε κάθε έναν από τους 3 συμπλέκτες – θα περιμέναμε αυτές τις πιθανότητες να είναι πολύ χαμηλές ή πολύ skewed καθώς το [200,800] βρίσκεται μακριά από τους κανονικούς συμπλέκτες. Η συνολική score_samples (log-likelihood) εκτυπώνεται; μια πολύ χαμηλή τιμή υποδεικνύει ότι το σημείο δεν ταιριάζει καλά στο μοντέλο, σηματοδοτώντας το ως ανωμαλία. Στην πράξη, θα μπορούσε κανείς να ορίσει ένα κατώφλι στην log-likelihood (ή στην μέγιστη πιθανότητα) για να αποφασίσει αν ένα σημείο είναι αρκετά απίθανο ώστε να θεωρηθεί κακόβουλο. Έτσι, το GMM παρέχει έναν αρχή που βασίζεται στην ανίχνευση ανωμαλιών και επίσης αποδίδει μαλακούς συμπλέκτες που αναγνωρίζουν την αβεβαιότητα.
### Isolation Forest
**Isolation Forest** είναι ένας αλγόριθμος ανίχνευσης ανωμαλιών που βασίζεται στην ιδέα της τυχαίας απομόνωσης σημείων. Η αρχή είναι ότι οι ανωμαλίες είναι λίγες και διαφορετικές, επομένως είναι πιο εύκολο να απομονωθούν από τα κανονικά σημεία. Ένα Isolation Forest κατασκευάζει πολλά δυαδικά δέντρα απομόνωσης (τυχαία δέντρα απόφασης) που διαχωρίζουν τα δεδομένα τυχαία. Σε κάθε κόμβο ενός δέντρου, επιλέγεται ένα τυχαίο χαρακτηριστικό και επιλέγεται μια τυχαία τιμή διαχωρισμού μεταξύ του ελάχιστου και του μέγιστου αυτού του χαρακτηριστικού για τα δεδομένα σε αυτόν τον κόμβο. Αυτός ο διαχωρισμός διαιρεί τα δεδομένα σε δύο κλάδους. Το δέντρο αναπτύσσεται μέχρι κάθε σημείο να απομονωθεί στο δικό του φύλλο ή να επιτευχθεί το μέγιστο ύψος του δέντρου.
-Η ανίχνευση ανωμαλιών πραγματοποιείται παρατηρώντας το μήκος της διαδρομής κάθε σημείου σε αυτά τα τυχαία δέντρα – ο αριθμός των διαχωρισμών που απαιτούνται για να απομονωθεί το σημείο. Διαισθητικά, οι ανωμαλίες (outliers) τείνουν να απομονώνονται πιο γρήγορα επειδή ένας τυχαίος διαχωρισμός είναι πιο πιθανό να χωρίσει έναν outlier (ο οποίος βρίσκεται σε μια αραιή περιοχή) από ότι θα έκανε με ένα κανονικό σημείο σε έναν πυκνό συμπλέκτη. Το Isolation Forest υπολογίζει μια βαθμολογία ανωμαλίας από το μέσο μήκος διαδρομής σε όλα τα δέντρα: μικρότερο μέσο μήκος διαδρομής → πιο ανώμαλο. Οι βαθμολογίες συνήθως κανονικοποιούνται σε [0,1] όπου το 1 σημαίνει πολύ πιθανή ανωμαλία.
+Η ανίχνευση ανωμαλιών πραγματοποιείται παρατηρώντας το μήκος της διαδρομής κάθε σημείου σε αυτά τα τυχαία δέντρα – ο αριθμός των διαχωρισμών που απαιτούνται για να απομονωθεί το σημείο. Διαισθητικά, οι ανωμαλίες (outliers) τείνουν να απομονώνονται πιο γρήγορα επειδή ένας τυχαίος διαχωρισμός είναι πιο πιθανό να χωρίσει έναν outlier (ο οποίος βρίσκεται σε μια αραιή περιοχή) από ότι θα έκανε με ένα κανονικό σημείο σε έναν πυκνό συμπλέκτη. Το Isolation Forest υπολογίζει μια βαθμολογία ανωμαλίας από το μέσο μήκος διαδρομής σε όλα τα δέντρα: μικρότερο μέσο μήκος διαδρομής → πιο ανώμαλο. Οι βαθμολογίες συνήθως κανονικοποιούνται στο [0,1] όπου το 1 σημαίνει πολύ πιθανή ανωμαλία.
> [!TIP]
-> *Χρήσεις στην κυβερνοασφάλεια:* Τα Isolation Forest έχουν χρησιμοποιηθεί με επιτυχία στην ανίχνευση εισβολών και ανίχνευση απάτης. Για παράδειγμα, εκπαιδεύστε ένα Isolation Forest σε αρχεία καταγραφής κίνησης δικτύου που περιέχουν κυρίως κανονική συμπεριφορά; το δάσος θα παράγει σύντομες διαδρομές για περίεργη κίνηση (όπως μια IP που χρησιμοποιεί μια άγνωστη θύρα ή ένα ασυνήθιστο μοτίβο μεγέθους πακέτου), σηματοδοτώντας το για επιθεώρηση. Επειδή δεν απαιτεί επισημασμένες επιθέσεις, είναι κατάλληλο για την ανίχνευση άγνωστων τύπων επιθέσεων. Μπορεί επίσης να αναπτυχθεί σε δεδομένα σύνδεσης χρηστών για να ανιχνεύσει καταλήψεις λογαριασμών (οι ανώμαλες ώρες ή τοποθεσίες σύνδεσης απομονώνονται γρήγορα). Σε μία περίπτωση χρήσης, ένα Isolation Forest μπορεί να προστατεύσει μια επιχείρηση παρακολουθώντας μετρικές συστήματος και δημιουργώντας μια ειδοποίηση όταν ένας συνδυασμός μετρικών (CPU, δίκτυο, αλλαγές αρχείων) φαίνεται πολύ διαφορετικός (σύντομες διαδρομές απομόνωσης) από ιστορικά μοτίβα.
+> *Χρήσεις στην κυβερνοασφάλεια:* Τα Isolation Forest έχουν χρησιμοποιηθεί με επιτυχία στην ανίχνευση εισβολών και ανίχνευση απάτης. Για παράδειγμα, εκπαιδεύστε ένα Isolation Forest σε αρχεία καταγραφής κίνησης δικτύου που περιέχουν κυρίως κανονική συμπεριφορά; το δάσος θα παράγει σύντομες διαδρομές για περίεργη κίνηση (όπως μια IP που χρησιμοποιεί μια άγνωστη θύρα ή ένα ασυνήθιστο μοτίβο μεγέθους πακέτου), σηματοδοτώντας το για επιθεώρηση. Δεδομένου ότι δεν απαιτεί επισημασμένες επιθέσεις, είναι κατάλληλο για την ανίχνευση άγνωστων τύπων επιθέσεων. Μπορεί επίσης να αναπτυχθεί σε δεδομένα σύνδεσης χρηστών για να ανιχνεύσει καταλήψεις λογαριασμών (οι ανώμαλες ώρες ή τοποθεσίες σύνδεσης απομονώνονται γρήγορα). Σε μία περίπτωση χρήσης, ένα Isolation Forest μπορεί να προστατεύσει μια επιχείρηση παρακολουθώντας μετρικές συστήματος και δημιουργώντας μια ειδοποίηση όταν ένας συνδυασμός μετρικών (CPU, δίκτυο, αλλαγές αρχείων) φαίνεται πολύ διαφορετικός (σύντομες διαδρομές απομόνωσης) από ιστορικά μοτίβα.
#### Υποθέσεις και Περιορισμοί
**Πλεονεκτήματα**: Το Isolation Forest δεν απαιτεί μια υπόθεση κατανομής; στοχεύει άμεσα στην απομόνωση. Είναι αποδοτικό σε δεδομένα υψηλής διάστασης και μεγάλες βάσεις δεδομένων (γραμμική πολυπλοκότητα $O(n\log n)$ για την κατασκευή του δάσους) καθώς κάθε δέντρο απομονώνει σημεία με μόνο ένα υποσύνολο χαρακτηριστικών και διαχωρισμών. Τείνει να χειρίζεται καλά τα αριθμητικά χαρακτηριστικά και μπορεί να είναι ταχύτερο από μεθόδους που βασίζονται σε απόσταση που μπορεί να είναι $O(n^2)$. Παρέχει επίσης αυτόματα μια βαθμολογία ανωμαλίας, ώστε να μπορείτε να ορίσετε ένα κατώφλι για ειδοποιήσεις (ή να χρησιμοποιήσετε μια παράμετρο μόλυνσης για να αποφασίσετε αυτόματα ένα όριο με βάση ένα αναμενόμενο ποσοστό ανωμαλιών).
-**Περιορισμοί**: Λόγω της τυχαίας φύσης του, τα αποτελέσματα μπορεί να διαφέρουν ελαφρώς μεταξύ των εκτελέσεων (αν και με αρκετά πολλά δέντρα αυτό είναι μικρό). Εάν τα δεδομένα έχουν πολλά άσχετα χαρακτηριστικά ή εάν οι ανωμαλίες δεν διαφοροποιούνται έντονα σε κανένα χαρακτηριστικό, η απομόνωση μπορεί να μην είναι αποτελεσματική (τυχαίοι διαχωρισμοί θα μπορούσαν να απομονώσουν κανονικά σημεία τυχαία – ωστόσο, η μέση τιμή πολλών δέντρων μετριάζει αυτό). Επίσης, το Isolation Forest γενικά υποθέτει ότι οι ανωμαλίες είναι μια μικρή μειοψηφία (που συνήθως είναι αληθές σε σενάρια κυβερνοασφάλειας).
+**Περιορισμοί**: Λόγω της τυχαίας φύσης του, τα αποτελέσματα μπορεί να διαφέρουν ελαφρώς μεταξύ των εκτελέσεων (αν και με αρκετά πολλά δέντρα αυτό είναι μικρό). Εάν τα δεδομένα έχουν πολλά άσχετα χαρακτηριστικά ή εάν οι ανωμαλίες δεν διαφοροποιούνται έντονα σε κανένα χαρακτηριστικό, η απομόνωση μπορεί να μην είναι αποτελεσματική (τυχαίοι διαχωρισμοί θα μπορούσαν να απομονώσουν κανονικά σημεία κατά τύχη – ωστόσο, η μέση τιμή πολλών δέντρων μετριάζει αυτό). Επίσης, το Isolation Forest γενικά υποθέτει ότι οι ανωμαλίες είναι μια μικρή μειοψηφία (που συνήθως είναι αληθές σε σενάρια κυβερνοασφάλειας).
Παράδειγμα -- Ανίχνευση Ανωμαλιών σε Αρχεία Καταγραφής Δικτύου
@@ -320,11 +320,11 @@ print("Example anomaly scores (lower means more anomalous):", anomaly_scores[:5]
```markdown
Σε αυτόν τον κώδικα, δημιουργούμε το `IsolationForest` με 100 δέντρα και ορίζουμε `contamination=0.15` (σημαίνει ότι αναμένουμε περίπου 15% ανωμαλίες; το μοντέλο θα ορίσει το κατώφλι βαθμολογίας του έτσι ώστε ~15% των σημείων να επισημαίνονται). Το προσαρμόζουμε στο `X_test_if` που περιέχει ένα μείγμα κανονικών και επιθετικών σημείων (σημείωση: κανονικά θα προσαρμόζατε σε δεδομένα εκπαίδευσης και στη συνέχεια θα χρησιμοποιούσατε την πρόβλεψη σε νέα δεδομένα, αλλά εδώ για λόγους απεικόνισης προσαρμόζουμε και προβλέπουμε στο ίδιο σύνολο για να παρατηρήσουμε άμεσα τα αποτελέσματα).
-Η έξοδος δείχνει τις προβλεπόμενες ετικέτες για τα πρώτα 20 σημεία (όπου το -1 υποδηλώνει ανωμαλία). Εκτυπώνουμε επίσης πόσες ανωμαλίες ανιχνεύθηκαν συνολικά και μερικές παραδείγματα βαθμολογιών ανωμαλίας. Αναμένουμε περίπου 18 από τα 120 σημεία να είναι επισημασμένα με -1 (καθώς η μόλυνση ήταν 15%). Αν τα 20 δείγματα επίθεσης είναι πραγματικά τα πιο απομακρυσμένα, τα περισσότερα από αυτά θα πρέπει να εμφανίζονται σε αυτές τις προβλέψεις -1. Η βαθμολογία ανωμαλίας (η συνάρτηση απόφασης του Isolation Forest) είναι υψηλότερη για κανονικά σημεία και χαμηλότερη (πιο αρνητική) για ανωμαλίες – εκτυπώνουμε μερικές τιμές για να δούμε τη διαχωριστικότητα. Στην πράξη, κάποιος μπορεί να ταξινομήσει τα δεδομένα κατά βαθμολογία για να δει τους κορυφαίους απομακρυσμένους και να τους ερευνήσει. Το Isolation Forest παρέχει έτσι έναν αποδοτικό τρόπο να διηθήσει μεγάλα μη επισημασμένα δεδομένα ασφαλείας και να επιλέξει τις πιο ανώμαλες περιπτώσεις για ανθρώπινη ανάλυση ή περαιτέρω αυτοματοποιημένο έλεγχο.
+Η έξοδος δείχνει τις προβλεπόμενες ετικέτες για τα πρώτα 20 σημεία (όπου το -1 υποδηλώνει ανωμαλία). Εκτυπώνουμε επίσης πόσες ανωμαλίες ανιχνεύθηκαν συνολικά και μερικές παραδείγματα βαθμολογιών ανωμαλίας. Αναμένουμε περίπου 18 από τα 120 σημεία να είναι επισημασμένα με -1 (καθώς η μόλυνση ήταν 15%). Αν τα 20 δείγματα επίθεσης είναι πραγματικά τα πιο απομακρυσμένα, τα περισσότερα από αυτά θα πρέπει να εμφανίζονται σε αυτές τις προβλέψεις -1. Η βαθμολογία ανωμαλίας (η συνάρτηση απόφασης του Isolation Forest) είναι υψηλότερη για κανονικά σημεία και χαμηλότερη (πιο αρνητική) για ανωμαλίες – εκτυπώνουμε μερικές τιμές για να δούμε τη διαχωριστικότητα. Στην πράξη, κάποιος μπορεί να ταξινομήσει τα δεδομένα κατά βαθμολογία για να δει τους κορυφαίους απομακρυσμένους και να τους ερευνήσει. Το Isolation Forest παρέχει έτσι έναν αποδοτικό τρόπο να διηθήσει κανείς μεγάλα μη επισημασμένα δεδομένα ασφαλείας και να επιλέξει τις πιο ανώμαλες περιπτώσεις για ανθρώπινη ανάλυση ή περαιτέρω αυτοματοποιημένη εξέταση.
### t-SNE (t-Distributed Stochastic Neighbor Embedding)
-**t-SNE** είναι μια μη γραμμική τεχνική μείωσης διαστάσεων που έχει σχεδιαστεί ειδικά για την απεικόνιση υψηλής διάστασης δεδομένων σε 2 ή 3 διαστάσεις. Μετατρέπει τις ομοιότητες μεταξύ των σημείων δεδομένων σε κοινές κατανομές πιθανοτήτων και προσπαθεί να διατηρήσει τη δομή των τοπικών γειτονιών στην προβολή χαμηλότερης διάστασης. Με απλούς όρους, το t-SNE τοποθετεί σημεία σε (ας πούμε) 2D έτσι ώστε παρόμοια σημεία (στον αρχικό χώρο) να βρίσκονται κοντά το ένα στο άλλο και μη παρόμοια σημεία να βρίσκονται μακριά το ένα από το άλλο με υψηλή πιθανότητα.
+**t-SNE** είναι μια μη γραμμική τεχνική μείωσης διαστάσεων που έχει σχεδιαστεί ειδικά για την απεικόνιση υψηλής διάστασης δεδομένων σε 2 ή 3 διαστάσεις. Μετατρέπει τις ομοιότητες μεταξύ των σημείων δεδομένων σε κοινές κατανομές πιθανοτήτων και προσπαθεί να διατηρήσει τη δομή των τοπικών γειτονιών στην προβολή χαμηλότερης διάστασης. Με απλούστερους όρους, το t-SNE τοποθετεί σημεία σε (ας πούμε) 2D έτσι ώστε παρόμοια σημεία (στον αρχικό χώρο) να βρίσκονται κοντά το ένα στο άλλο και μη παρόμοια σημεία να βρίσκονται μακριά το ένα από το άλλο με υψηλή πιθανότητα.
Ο αλγόριθμος έχει δύο κύριες φάσεις:
@@ -335,19 +335,19 @@ print("Example anomaly scores (lower means more anomalous):", anomaly_scores[:5]
Το αποτέλεσμα είναι συχνά ένα οπτικά σημαντικό διάγραμμα διασποράς όπου οι συστάδες στα δεδομένα γίνονται προφανείς.
> [!TIP]
-> *Χρήσεις στην κυβερνοασφάλεια:* Το t-SNE χρησιμοποιείται συχνά για **την απεικόνιση υψηλής διάστασης δεδομένων ασφαλείας για ανθρώπινη ανάλυση**. Για παράδειγμα, σε ένα κέντρο επιχειρήσεων ασφαλείας, οι αναλυτές θα μπορούσαν να πάρουν ένα σύνολο δεδομένων γεγονότων με δεκάδες χαρακτηριστικά (αριθμούς θυρών, συχνότητες, μετρήσεις byte κ.λπ.) και να χρησιμοποιήσουν το t-SNE για να παραγάγουν ένα διάγραμμα 2D. Οι επιθέσεις μπορεί να σχηματίσουν τις δικές τους συστάδες ή να διαχωριστούν από τα κανονικά δεδομένα σε αυτό το διάγραμμα, διευκολύνοντάς τις να εντοπιστούν. Έχει εφαρμοστεί σε σύνολα δεδομένων κακόβουλου λογισμικού για να δει τις ομαδοποιήσεις οικογενειών κακόβουλου λογισμικού ή σε δεδομένα δικτυακής εισβολής όπου διαφορετικοί τύποι επιθέσεων ομαδοποιούνται διακριτά, καθοδηγώντας περαιτέρω έρευνα. Ουσιαστικά, το t-SNE παρέχει έναν τρόπο να δει τη δομή στα κυβερνοδεδομένα που διαφορετικά θα ήταν ακατανόητη.
+> *Χρήσεις στην κυβερνοασφάλεια:* Το t-SNE χρησιμοποιείται συχνά για **την απεικόνιση υψηλής διάστασης δεδομένων ασφαλείας για ανθρώπινη ανάλυση**. Για παράδειγμα, σε ένα κέντρο επιχειρήσεων ασφαλείας, οι αναλυτές θα μπορούσαν να πάρουν ένα σύνολο δεδομένων γεγονότων με δεκάδες χαρακτηριστικά (αριθμούς θυρών, συχνότητες, μετρήσεις byte κ.λπ.) και να χρησιμοποιήσουν το t-SNE για να παραγάγουν ένα διάγραμμα 2D. Οι επιθέσεις μπορεί να σχηματίσουν τις δικές τους συστάδες ή να διαχωριστούν από τα κανονικά δεδομένα σε αυτό το διάγραμμα, διευκολύνοντάς τις να εντοπιστούν. Έχει εφαρμοστεί σε σύνολα δεδομένων κακόβουλου λογισμικού για να δει ομαδοποιήσεις οικογενειών κακόβουλου λογισμικού ή σε δεδομένα δικτυακής εισβολής όπου διαφορετικοί τύποι επιθέσεων ομαδοποιούνται διακριτά, καθοδηγώντας περαιτέρω έρευνα. Ουσιαστικά, το t-SNE παρέχει έναν τρόπο να δει κανείς τη δομή στα κυβερνοδεδομένα που διαφορετικά θα ήταν ακατανόητη.
#### Υποθέσεις και Περιορισμοί
-Το t-SNE είναι εξαιρετικό για οπτική ανακάλυψη προτύπων. Μπορεί να αποκαλύψει συστάδες, υποσυστάδες και απομακρυσμένα σημεία που άλλες γραμμικές μέθοδοι (όπως το PCA) μπορεί να μην εντοπίσουν. Έχει χρησιμοποιηθεί στην έρευνα κυβερνοασφάλειας για να απεικονίσει πολύπλοκα δεδομένα όπως προφίλ συμπεριφοράς κακόβουλου λογισμικού ή πρότυπα δικτυακής κυκλοφορίας. Δεδομένου ότι διατηρεί τη τοπική δομή, είναι καλό στο να δείχνει φυσικές ομαδοποιήσεις.
+Το t-SNE είναι εξαιρετικό για οπτική ανακάλυψη προτύπων. Μπορεί να αποκαλύψει συστάδες, υποσυστάδες και ανωμαλίες που άλλες γραμμικές μέθοδοι (όπως το PCA) μπορεί να μην εντοπίσουν. Έχει χρησιμοποιηθεί στην έρευνα κυβερνοασφάλειας για να απεικονίσει πολύπλοκα δεδομένα όπως προφίλ συμπεριφοράς κακόβουλου λογισμικού ή πρότυπα δικτυακής κυκλοφορίας. Δεδομένου ότι διατηρεί τη τοπική δομή, είναι καλό στο να δείχνει φυσικές ομαδοποιήσεις.
-Ωστόσο, το t-SNE είναι υπολογιστικά βαρύτερο (περίπου $O(n^2)$) οπότε μπορεί να απαιτεί δειγματοληψία για πολύ μεγάλα σύνολα δεδομένων. Έχει επίσης υπερπαραμέτρους (perplexity, ρυθμός μάθησης, επαναλήψεις) που μπορούν να επηρεάσουν την έξοδο – π.χ., διαφορετικές τιμές perplexity μπορεί να αποκαλύψουν συστάδες σε διαφορετικές κλίμακες. Τα διαγράμματα t-SNE μπορεί μερικές φορές να παρερμηνευτούν – οι αποστάσεις στον χάρτη δεν είναι άμεσα σημασιολογικά παγκοσμίως (επικεντρώνεται στη τοπική γειτονιά, μερικές φορές οι συστάδες μπορεί να φαίνονται τεχνητά καλά διαχωρισμένες). Επίσης, το t-SNE προορίζεται κυρίως για απεικόνιση; δεν παρέχει έναν απλό τρόπο να προβάλλει νέα σημεία δεδομένων χωρίς επαναϋπολογισμό, και δεν προορίζεται να χρησιμοποιηθεί ως προεπεξεργασία για προγνωστική μοντελοποίηση (το UMAP είναι μια εναλλακτική που αντιμετωπίζει ορισμένα από αυτά τα ζητήματα με ταχύτερη ταχύτητα).
+Ωστόσο, το t-SNE είναι υπολογιστικά βαρύτερο (περίπου $O(n^2)$) οπότε μπορεί να απαιτεί δειγματοληψία για πολύ μεγάλα σύνολα δεδομένων. Έχει επίσης υπερπαραμέτρους (perplexity, ρυθμός μάθησης, επαναλήψεις) που μπορούν να επηρεάσουν την έξοδο – π.χ., διαφορετικές τιμές perplexity μπορεί να αποκαλύψουν συστάδες σε διαφορετικές κλίμακες. Τα διαγράμματα t-SNE μπορεί μερικές φορές να παρερμηνευθούν – οι αποστάσεις στον χάρτη δεν είναι άμεσα σημασιολογικά παγκοσμίως (επικεντρώνεται στη τοπική γειτονιά, μερικές φορές οι συστάδες μπορεί να φαίνονται τεχνητά καλά διαχωρισμένες). Επίσης, το t-SNE προορίζεται κυρίως για απεικόνιση; δεν παρέχει έναν απλό τρόπο να προβάλλει νέα σημεία δεδομένων χωρίς επαναϋπολογισμό, και δεν προορίζεται να χρησιμοποιηθεί ως προεπεξεργασία για προγνωστική μοντελοποίηση (το UMAP είναι μια εναλλακτική που αντιμετωπίζει ορισμένα από αυτά τα ζητήματα με ταχύτερη ταχύτητα).
-Παράδειγμα -- Απεικόνιση Δικτυακών Συνδέσεων
+Παράδειγμα -- Απεικόνιση Συνδέσεων Δικτύου
-Θα χρησιμοποιήσουμε το t-SNE για να μειώσουμε ένα σύνολο δεδομένων πολλαπλών χαρακτηριστικών σε 2D. Για λόγους απεικόνισης, ας πάρουμε τα προηγούμενα δεδομένα 4D (τα οποία είχαν 3 φυσικές συστάδες κανονικής κυκλοφορίας) και να προσθέσουμε μερικά σημεία ανωμαλίας. Στη συνέχεια, εκτελούμε το t-SNE και (εννοιολογικά) απεικονίζουμε τα αποτελέσματα.
+Θα χρησιμοποιήσουμε το t-SNE για να μειώσουμε ένα σύνολο δεδομένων πολλαπλών χαρακτηριστικών σε 2D. Για λόγους απεικόνισης, ας πάρουμε τα προηγούμενα 4D δεδομένα (τα οποία είχαν 3 φυσικές συστάδες κανονικής κυκλοφορίας) και να προσθέσουμε μερικά σημεία ανωμαλίας. Στη συνέχεια, τρέχουμε το t-SNE και (εννοιολογικά) απεικονίζουμε τα αποτελέσματα.
```
```python
# 1 ─────────────────────────────────────────────────────────────────────
@@ -431,7 +431,7 @@ plt.legend()
plt.tight_layout()
plt.show()
```
-Εδώ συνδυάσαμε το προηγούμενο 4D κανονικό σύνολο δεδομένων μας με μια χούφτα ακραίων εκτροπών (οι εκτροπές έχουν ένα χαρακτηριστικό (“διάρκεια”) ρυθμισμένο πολύ υψηλά, κ.λπ., για να προσομοιώσουμε ένα παράξενο μοτίβο). Εκτελούμε t-SNE με μια τυπική περιπλοκότητα 30. Τα δεδομένα εξόδου data_2d έχουν σχήμα (1505, 2). Δεν θα σχεδιάσουμε πραγματικά σε αυτό το κείμενο, αλλά αν το κάναμε, θα περιμέναμε να δούμε ίσως τρεις σφιχτούς συμπλέκτες που αντιστοιχούν στους 3 κανονικούς συμπλέκτες, και τις 5 εκτροπές να εμφανίζονται ως απομονωμένα σημεία μακριά από αυτούς τους συμπλέκτες. Σε μια διαδραστική ροή εργασίας, θα μπορούσαμε να χρωματίσουμε τα σημεία ανάλογα με την ετικέτα τους (κανονικό ή ποιος συμπλέκτης, έναντι ανωμαλίας) για να επαληθεύσουμε αυτή τη δομή. Ακόμα και χωρίς ετικέτες, ένας αναλυτής μπορεί να παρατηρήσει αυτά τα 5 σημεία να κάθονται σε κενό χώρο στο 2D διάγραμμα και να τα επισημάνει. Αυτό δείχνει πώς το t-SNE μπορεί να είναι ένα ισχυρό εργαλείο για την οπτική ανίχνευση ανωμαλιών και την επιθεώρηση συμπλεγμάτων σε δεδομένα κυβερνοασφάλειας, συμπληρώνοντας τους αυτοματοποιημένους αλγόριθμους παραπάνω.
+Εδώ συνδυάσαμε το προηγούμενο 4D κανονικό σύνολο δεδομένων μας με μια χούφτα ακραίων εκτροπών (οι εκτροπές έχουν ένα χαρακτηριστικό (“διάρκεια”) ρυθμισμένο πολύ υψηλά, κ.λπ., για να προσομοιώσουμε ένα παράξενο μοτίβο). Εκτελούμε t-SNE με μια τυπική περιπλοκότητα 30. Τα δεδομένα εξόδου data_2d έχουν σχήμα (1505, 2). Δεν θα σχεδιάσουμε πραγματικά σε αυτό το κείμενο, αλλά αν το κάναμε, θα περιμέναμε να δούμε ίσως τρεις σφιχτούς συμπλέκτες που αντιστοιχούν στους 3 κανονικούς συμπλέκτες, και τις 5 εκτροπές να εμφανίζονται ως απομονωμένα σημεία μακριά από αυτούς τους συμπλέκτες. Σε μια διαδραστική ροή εργασίας, θα μπορούσαμε να χρωματίσουμε τα σημεία ανάλογα με την ετικέτα τους (κανονικό ή ποιος συμπλέκτης, σε σχέση με την ανωμαλία) για να επαληθεύσουμε αυτή τη δομή. Ακόμη και χωρίς ετικέτες, ένας αναλυτής μπορεί να παρατηρήσει αυτά τα 5 σημεία να κάθονται σε κενό χώρο στο 2D διάγραμμα και να τα επισημάνει. Αυτό δείχνει πώς το t-SNE μπορεί να είναι ένα ισχυρό εργαλείο για την οπτική ανίχνευση ανωμαλιών και την επιθεώρηση συμπλεγμάτων σε δεδομένα κυβερνοασφάλειας, συμπληρώνοντας τους αυτοματοποιημένους αλγόριθμους παραπάνω.