Translated ['src/AI/AI-Unsupervised-Learning-Algorithms.md'] to af

This commit is contained in:
Translator 2025-06-08 13:29:17 +00:00
parent 16bce8197a
commit 4fbcbf5fe1
2 changed files with 30 additions and 30 deletions

View File

@ -16,7 +16,7 @@ K-Means is 'n sentroid-gebaseerde groeperingsalgoritme wat data in K groepe verd
4. **Herhaal**: Stappe 23 word herhaal totdat die groep toekennings stabiliseer (sentroïede beweeg nie meer beduidend nie).
> [!TIP]
> *Gebruik gevalle in kuberveiligheid:* K-Means word gebruik vir indringing opsporing deur netwerkgebeurtenisse te groepeer. Byvoorbeeld, navorsers het K-Means toegepas op die KDD Cup 99 indringingsdataset en gevind dat dit effektief verkeer in normale teenoor aanval groepe verdeel. In praktyk kan sekuriteitsontleders loginskrywings of gebruikersgedragdata groepeer om groepe van soortgelyke aktiwiteit te vind; enige punte wat nie aan 'n goed gevormde groep behoort nie, kan anomalieë aandui (bv. 'n nuwe malware variasie wat sy eie klein groep vorm). K-Means kan ook help met malware familie klassifikasie deur binaire lêers op grond van gedragprofiele of kenmerk vektore te groepeer.
> *Gebruik gevalle in kuberveiligheid:* K-Means word gebruik vir indringing opsporing deur netwerkgebeurtenisse te groepeer. Byvoorbeeld, navorsers het K-Means toegepas op die KDD Cup 99 indringingsdataset en gevind dat dit effektief verkeer in normale teenoor aanval groepe verdeel. In praktyk kan sekuriteitsontleders loginskrywings of gebruikersgedragdata groepeer om groepe van soortgelyke aktiwiteit te vind; enige punte wat nie aan 'n goed gevormde groep behoort nie, kan anomalieë aandui (bv. 'n nuwe malware variasie wat sy eie klein groep vorm). K-Means kan ook help met malware familie klassifikasie deur binaire lêers op grond van gedragsprofiele of kenmerk vektore te groepeer.
#### Keuse van K
Die aantal groepe (K) is 'n hiperparameter wat gedefinieer moet word voordat die algoritme uitgevoer word. Tegnieke soos die Elbow Metode of Silhouette Punt kan help om 'n toepaslike waarde vir K te bepaal deur die groepering prestasie te evalueer:
@ -66,7 +66,7 @@ Hiërargiese groepering bou 'n hiërargie van groepe op deur óf 'n onder-na-bo
1. **Agglomeratiewe (Onder-Na-Bo)**: Begin met elke datapunt as 'n aparte groep en kombineer herhaaldelik die naaste groepe totdat 'n enkele groep oorbly of 'n stopkriterium bereik word.
2. **Divisiewe (Bo-Na-Onder)**: Begin met alle datapunte in 'n enkele groep en verdeel herhaaldelik die groepe totdat elke datapunt sy eie groep is of 'n stopkriterium bereik word.
Agglomeratiewe groepering vereis 'n definisie van inter-groep afstand en 'n skakelingskriterium om te besluit watter groepe saamgevoeg moet word. Algemene skakelingsmetodes sluit enkele skakeling (afstand van die naaste punte tussen twee groepe), volledige skakeling (afstand van die verste punte), gemiddelde skakeling, ensovoorts in, en die afstandsmetrieks is dikwels Euclidies. Die keuse van skakeling beïnvloed die vorm van die geproduceerde groepe. Daar is geen behoefte om die aantal groepe K vooraf te spesifiseer nie; jy kan die dendrogram op 'n gekose vlak "sny" om die gewenste aantal groepe te verkry.
Agglomeratiewe groepering vereis 'n definisie van inter-groep afstand en 'n skakelingskriterium om te besluit watter groepe om te kombineer. Algemene skakelingsmetodes sluit enkele skakeling (afstand van die naaste punte tussen twee groepe), volledige skakeling (afstand van die verste punte), gemiddelde skakeling, ensovoorts in, en die afstandsmetrieks is dikwels Euclidies. Die keuse van skakeling beïnvloed die vorm van die geproduceerde groepe. Daar is geen behoefte om die aantal groepe K vooraf te spesifiseer nie; jy kan die dendrogram op 'n gekose vlak "sny" om die gewenste aantal groepe te verkry.
Hiërargiese groepering produseer 'n dendrogram, 'n boomagtige struktuur wat die verhoudings tussen groepe op verskillende vlakke van granulariteit toon. Die dendrogram kan op 'n gewenste vlak gesny word om 'n spesifieke aantal groepe te verkry.
@ -75,10 +75,10 @@ Hiërargiese groepering produseer 'n dendrogram, 'n boomagtige struktuur wat die
#### Aannames en Beperkings
Hiërargiese groepering neem nie 'n spesifieke groepvorm aan nie en kan geneste groepe vasvang. Dit is nuttig om taksonomie of verhoudings tussen groepe te ontdek (bv. om kwaadwillige sagteware volgens familie subgroepe te groepeer). Dit is deterministies (geen ewekansige inisialisering probleme nie). 'n Sleutelvoordeel is die dendrogram, wat insig bied in die data se groeperingsstruktuur op alle skale sekuriteitsontleders kan 'n toepaslike afsnit besluit om betekenisvolle groepe te identifiseer. Dit is egter rekenaarintensief (tipies $O(n^2)$ tyd of erger vir naïewe implementasies) en nie haalbaar vir baie groot datastelle nie. Dit is ook 'n gulsige prosedure sodra 'n samesmelting of splitsing gedoen is, kan dit nie ongedaan gemaak word nie, wat tot suboptimale groepe kan lei as 'n fout vroeg gebeur. Uitskieters kan ook sommige skakelingsstrategieë beïnvloed (enkele skakeling kan die "ketting" effek veroorsaak waar groepe via uitskieters skakel).
Hiërargiese groepering neem nie 'n spesifieke groepvorm aan nie en kan geneste groepe vasvang. Dit is nuttig om taksonomie of verhoudings tussen groepe te ontdek (bv. om kwaadwillige sagteware volgens familie subgroepe te groepeer). Dit is deterministies (geen random inisialisasie probleme nie). 'n Sleutelvoordeel is die dendrogram, wat insig bied in die data se groeperingsstruktuur op alle skale sekuriteitsontleders kan 'n toepaslike afsnit besluit om betekenisvolle groepe te identifiseer. Dit is egter rekenaarintensief (tipies $O(n^2)$ tyd of erger vir naïewe implementasies) en nie haalbaar vir baie groot datastelle nie. Dit is ook 'n gulsige prosedure sodra 'n kombinasie of splitsing gedoen is, kan dit nie ongedaan gemaak word nie, wat tot suboptimale groepe kan lei as 'n fout vroeg gebeur. Uitskieters kan ook sommige skakelingsstrategieë beïnvloed (enkele skakeling kan die "ketting" effek veroorsaak waar groepe via uitskieters skakel).
<details>
<summary>Voorbeeld -- Agglomeratiewe Groepering van Gebeure
<summary>Voorbeeld -- Agglomeratiewe Groepering van Gebeurtenisse
</summary>
Ons sal die sintetiese data van die K-Means voorbeeld (3 normale groepe + 1 aanvalsgroep) hergebruik en agglomeratiewe groepering toepas. Ons illustreer dan hoe om 'n dendrogram en groep etikette te verkry.
@ -117,7 +117,7 @@ DBSCAN identifiseer kernpunte, grenspunte en ruispunte:
Groepering vorder deur 'n onbesoekte kernpunt te kies, dit as 'n nuwe groep te merk, en dan alle punte wat digtheid-bereikbaar is daarvan (kernpunte en hul bure, ens.) rekursief by te voeg. Grenspunte word by die groep van 'n nabye kern gevoeg. Nadat alle bereikbare punte uitgebrei is, beweeg DBSCAN na 'n ander onbesoekte kern om 'n nuwe groep te begin. Punte wat nie deur enige kern bereik is nie, bly as ruis gemerk.
> [!TIP]
> *Gebruik gevalle in kuberveiligheid:* DBSCAN is nuttig vir anomaliedetektering in netwerkverkeer. Byvoorbeeld, normale gebruikersaktiwiteit kan een of meer digte groepe in kenmerkruimte vorm, terwyl nuut aanvalsgedrag as verspreide punte verskyn wat DBSCAN as ruis (uitskieters) sal merk. Dit is gebruik om netwerkvloei rekords te groepeer, waar dit poortskandering of ontkenning-van-diens verkeer as dun gebiede van punte kan opspoor. 'n Ander toepassing is die groepering van malware variasies: as die meeste monsters volgens families groepeer, maar 'n paar nêrens pas nie, kan daardie paar nul-dag malware wees. Die vermoë om ruis te merk beteken dat sekuriteitspanne op die ondersoek van daardie uitskieters kan fokus.
> *Gebruik gevalle in kuberveiligheid:* DBSCAN is nuttig vir anomaliedetektering in netwerkverkeer. Byvoorbeeld, normale gebruikersaktiwiteit kan een of meer digte groepe in kenmerkruimte vorm, terwyl nuut aanvalsgedrag as verspreide punte verskyn wat DBSCAN as ruis (uitskieters) sal merk. Dit is gebruik om netwerkvloei-rekords te groepeer, waar dit poortskandering of ontkenning-van-diens verkeer as dun gebiede van punte kan opspoor. 'n Ander toepassing is die groepering van malware-variante: as die meeste monsters volgens families groepeer, maar 'n paar nêrens pas nie, kan daardie paar nul-dag malware wees. Die vermoë om ruis te merk beteken dat sekuriteitspanne op die ondersoek van daardie uitskieters kan fokus.
#### Aannames en Beperkings
@ -180,7 +180,7 @@ Dan, `A * v = [ [1, 2], [2, 1]] * [1, 1] = [3, 3]` wat die eie waarde λ vermeni
#### Eie waardes en Eie vektore in PCA
Kom ons verduidelik dit met 'n voorbeeld. Stel jou voor jy het 'n dataset met baie grys skaal prente van gesigte van 100x100 pixels. Elke pixel kan as 'n kenmerk beskou word, so jy het 10,000 kenmerke per beeld (of 'n vektor van 10000 komponente per beeld). As jy die dimensionaliteit van hierdie dataset met PCA wil verminder, sal jy die volgende stappe volg:
Kom ons verduidelik dit met 'n voorbeeld. Stel jou voor jy het 'n dataset met baie grys skaal prente van gesigte van 100x100 pixels. Elke pixel kan as 'n kenmerk beskou word, so jy het 10,000 kenmerke per beeld (of 'n vektor van 10000 komponente per beeld). As jy die dimensionaliteit van hierdie dataset met PCA wil verminder, sal jy hierdie stappe volg:
1. **Standaardisering**: Sentraal die data deur die gemiddelde van elke kenmerk (pixel) van die dataset af te trek.
2. **Kovariansiematrix**: Bereken die kovariansiematrix van die gestandaardiseerde data, wat vasvang hoe kenmerke (pixels) saam varieer.
@ -189,7 +189,7 @@ Kom ons verduidelik dit met 'n voorbeeld. Stel jou voor jy het 'n dataset met ba
- Die kovariansiematrix sal 'n 10,000x10,000 matriks wees waar elke inskrywing die kovariansie tussen twee pixels verteenwoordig.
3. **Los die eie waarde vergelyking op**: Die eie waarde vergelyking om op te los is `C * v = λ * v` waar C die kovariansiematrix is, v die eie vektor is, en λ die eie waarde is. Dit kan opgelos word met metodes soos:
- **Eie waarde ontbinding**: Voer eie waarde ontbinding op die kovariansiematrix uit om die eie waardes en eie vektore te verkry.
- **Singuliere waarde ontbinding (SVD)**: Alternatiewelik kan jy SVD gebruik om die datamatris in singuliere waardes en vektore te ontbind, wat ook die hoofkomponente kan oplewer.
- **Singuliere Waarde Ontbinding (SVD)**: Alternatiewelik kan jy SVD gebruik om die datamatris in singuliere waardes en vektore te ontbind, wat ook die hoofkomponente kan oplewer.
4. **Kies Hoofkomponente**: Sorteer die eie waardes in aflopende volgorde en kies die top K eie vektore wat ooreenstem met die grootste eie waardes. Hierdie eie vektore verteenwoordig die richtings van maksimum variansie in die data.
> [!TIP]
@ -197,13 +197,13 @@ Kom ons verduidelik dit met 'n voorbeeld. Stel jou voor jy het 'n dataset met ba
#### Aannames en Beperkings
PCA neem aan dat **hoofasse van variansie betekenisvol is** dit is 'n lineêre metode, so dit vang lineêre korrelasies in data vas. Dit is nie-beheerd aangesien dit slegs die kenmerk kovariansie gebruik. Voordele van PCA sluit geraasvermindering in (klein-variansie komponente stem dikwels ooreen met geraas) en dekorelasie van kenmerke. Dit is berekeningsmatig doeltreffend vir matig hoë dimensies en dikwels 'n nuttige voorverwerkings stap vir ander algoritmes (om die vloek van dimensionaliteit te verminder). Een beperking is dat PCA beperk is tot lineêre verhoudings dit sal nie komplekse nie-lineêre struktuur vasvang nie (terwyl outokoders of t-SNE dit mag). Ook kan PCA komponente moeilik wees om te interpreteer in terme van oorspronklike kenmerke (dit is kombinasies van oorspronklike kenmerke). In kuberveiligheid moet 'n mens versigtig wees: 'n aanval wat net 'n subtiele verandering in 'n lae-variansie kenmerk veroorsaak, mag nie in top PC's verskyn nie (aangesien PCA variansie prioritiseer, nie noodwendig "interessantheid" nie).
PCA neem aan dat **hoofasse van variansie betekenisvol is** dit is 'n lineêre metode, so dit vang lineêre korrelasies in data vas. Dit is nie-beheerde leer aangesien dit slegs die kenmerk kovariansie gebruik. Voordele van PCA sluit geraasvermindering in (klein-variansie komponente stem dikwels ooreen met geraas) en dekorelasi van kenmerke. Dit is berekeningsmatig doeltreffend vir matig hoë dimensies en dikwels 'n nuttige voorverwerkings stap vir ander algoritmes (om die vloek van dimensionaliteit te verminder). Een beperking is dat PCA beperk is tot lineêre verhoudings dit sal nie komplekse nie-lineêre struktuur vasvang nie (terwyl outokoders of t-SNE dit mag). Ook kan PCA komponente moeilik wees om te interpreteer in terme van oorspronklike kenmerke (dit is kombinasies van oorspronklike kenmerke). In kuberveiligheid moet 'n mens versigtig wees: 'n aanval wat net 'n subtiele verandering in 'n lae-variansie kenmerk veroorsaak, mag nie in die top PC's verskyn nie (aangesien PCA variansie prioritiseer, nie noodwendig "interessantheid" nie).
<details>
<summary>Voorbeeld -- Vermindering van Dimensies van Netwerkdata
</summary>
Neem aan ons het netwerkverbinding logs met verskeie kenmerke (bv. duur, bytes, tellings). Ons sal 'n sintetiese 4-dimensionele dataset genereer (met 'n paar korrelasie tussen kenmerke) en PCA gebruik om dit tot 2 dimensies te verminder vir visualisering of verdere analise.
Stel ons het netwerkverbinding logs met verskeie kenmerke (bv. duur, bytes, tellings). Ons sal 'n sintetiese 4-dimensionele dataset genereer (met 'n paar korrelasie tussen kenmerke) en PCA gebruik om dit tot 2 dimensies te verminder vir visualisering of verdere analise.
```python
from sklearn.decomposition import PCA
@ -223,38 +223,38 @@ print("Original shape:", data_4d.shape, "Reduced shape:", data_2d.shape)
# We can examine a few transformed points
print("First 5 data points in PCA space:\n", data_2d[:5])
```
Hier het ons die vroeëre normale verkeersklusters geneem en elke datapunt uitgebrei met twee bykomende kenmerke (pakkette en foute) wat korreleer met bytes en duur. PCA word dan gebruik om die 4 kenmerke in 2 hoofkomponente te komprimeer. Ons druk die verduidelikte variantieverhouding, wat mag wys dat, sê, >95% van die variasie deur 2 komponente vasgevang word (wat min inligtingverlies beteken). Die uitvoer toon ook dat die datavorm verminder van (1500, 4) na (1500, 2). Die eerste paar punte in die PCA-ruimte word gegee as 'n voorbeeld. In praktyk kan 'n mens data_2d plot om visueel te kontroleer of die klusters onderskeibaar is. As 'n anomalie teenwoordig was, kan 'n mens dit sien as 'n punt wat weg van die hoofkluster in PCA-ruimte lê. PCA help dus om komplekse data in 'n hanteerbare vorm vir menslike interpretasie of as invoer vir ander algoritmes te distilleer.
Hier het ons die vroeëre normale verkeersklusters geneem en elke datapunt uitgebrei met twee bykomende kenmerke (pakkette en foute) wat met bytes en duur korreleer. PCA word dan gebruik om die 4 kenmerke in 2 hoofkomponente te komprimeer. Ons druk die verduidelikte variantieverhouding, wat mag wys dat, sê, >95% van die variasie deur 2 komponente vasgevang word (wat min inligtingverlies beteken). Die uitvoer toon ook dat die datavorm verminder van (1500, 4) na (1500, 2). Die eerste paar punte in die PCA-ruimte word as 'n voorbeeld gegee. In praktyk kan 'n mens data_2d plot om visueel te kontroleer of die klusters onderskeibaar is. As 'n anomalie teenwoordig was, kan 'n mens dit sien as 'n punt wat weg van die hoofkluster in PCA-ruimte lê. PCA help dus om komplekse data in 'n hanteerbare vorm vir menslike interpretasie of as inset vir ander algoritmes te distilleer.
</details>
### Gaussian Mixture Models (GMM)
'n Gaussian Mixture Model neem aan dat data gegenereer word uit 'n mengsel van **verskeie Gaussian (normale) verspreidings met onbekende parameters**. In wese is dit 'n probabilistiese klusteringmodel: dit probeer om elke punt sagkens aan een van K Gaussian komponente toe te ken. Elke Gaussian komponent k het 'n gemiddelde vektor (μ_k), kovariansiematrix (Σ_k), en 'n menggewig (π_k) wat verteenwoordig hoe algemeen daardie kluster is. Anders as K-Means wat "harde" toekennings doen, gee GMM elke punt 'n waarskynlikheid om tot elke kluster te behoort.
'n Gaussian Mixture Model neem aan dat data gegenereer word uit 'n mengsel van **verskeie Gaussian (normale) verspreidings met onbekende parameters**. In wese is dit 'n probabilistiese klusteringmodel: dit probeer om elke punt sagkens aan een van K Gaussian komponente toe te ken. Elke Gaussian komponent k het 'n gemiddelde vektor (μ_k), kovariansiematrix (Σ_k), en 'n menggewig (π_k) wat verteenwoordig hoe algemeen daardie kluster is. Anders as K-Means wat "harde" toewysings doen, gee GMM elke punt 'n waarskynlikheid om tot elke kluster te behoort.
GMM-aanpassing word tipies gedoen via die Verwachting-Maximisering (EM) algoritme:
- **Inisialisering**: Begin met aanvanklike raaiskote vir die gemiddeldes, kovariansies, en mengkoëffisiënte (of gebruik K-Means resultate as 'n beginpunt).
- **E-stap (Verwagting)**: Gegewe huidige parameters, bereken die verantwoordelikheid van elke kluster vir elke punt: essensieel `r_nk = P(z_k | x_n)` waar z_k die latente veranderlike is wat klusterlidmaatskap vir punt x_n aandui. Dit word gedoen met behulp van Bayes se stelling, waar ons die posterior waarskynlikheid van elke punt wat tot elke kluster behoort, gebaseer op die huidige parameters, bereken. Die verantwoordelikhede word bereken as:
- **E-stap (Verwachting)**: Gegewe huidige parameters, bereken die verantwoordelikheid van elke kluster vir elke punt: essensieel `r_nk = P(z_k | x_n)` waar z_k die latente veranderlike is wat klusterlidmaatskap vir punt x_n aandui. Dit word gedoen met behulp van Bayes se stelling, waar ons die posterior waarskynlikheid van elke punt wat tot elke kluster behoort, gebaseer op die huidige parameters, bereken. Die verantwoordelikhede word bereken as:
```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)}
```
waar:
- \( \pi_k \) is die mengkoëffisiënt vir kluster k (vooraf waarskynlikheid van kluster k),
- \( \mathcal{N}(x_n | \mu_k, \Sigma_k) \) is die Gaussian waarskynlikheidsdigtheidsfunksie vir punt \( x_n \) gegewe gemiddelde \( \mu_k \) en kovariansie \( \Sigma_k \).
- \( \mathcal{N}(x_n | \mu_k, \Sigma_k) \) is die Gaussian waarskynlikheiddigtheidsfunksie vir punt \( x_n \) gegewe gemiddelde \( \mu_k \) en kovariansie \( \Sigma_k \).
- **M-stap (Maximisering)**: Werk die parameters op met behulp van die verantwoordelikhede wat in die E-stap bereken is:
- Werk elke gemiddelde μ_k op as die gewogen gemiddelde van punte, waar gewigte die verantwoordelikhede is.
- Werk elke kovariansie Σ_k op as die gewogen kovariansie van punte wat aan kluster k toegewys is.
- Werk elke kovariansie Σ_k op as die gewogen kovariansie van punte wat aan kluster k toegeken is.
- Werk mengkoëffisiënte π_k op as die gemiddelde verantwoordelikheid vir kluster k.
- **Herhaal** E en M stappe totdat konvergensie plaasvind (parameters stabiliseer of waarskynlikheidsverbetering onder 'n drempel is).
- **Herhaal** E- en M-stappe totdat konvergensie plaasvind (parameters stabiliseer of waarskynlikheidsverbetering onder 'n drempel is).
Die resultaat is 'n stel Gaussian verspreidings wat saam die algehele dataverspreiding modelleer. Ons kan die aangepaste GMM gebruik om te kluster deur elke punt aan die Gaussian met die hoogste waarskynlikheid toe te ken, of die waarskynlikhede te hou vir onsekerheid. 'n Mens kan ook die waarskynlikheid van nuwe punte evalueer om te sien of hulle by die model pas (nuttig vir anomaliedetektering).
Die resultaat is 'n stel Gaussian verspreidings wat saam die algehele dataverspreiding modelleer. Ons kan die aangepaste GMM gebruik om te kluster deur elke punt aan die Gaussian met die hoogste waarskynlikheid toe te ken, of die waarskynlikhede vir onsekerheid te behou. 'n Mens kan ook die waarskynlikheid van nuwe punte evalueer om te sien of hulle by die model pas (nuttig vir anomaliedetektering).
> [!TIP]
> *Gebruik gevalle in kuberveiligheid:* GMM kan gebruik word vir anomaliedetektering deur die verspreiding van normale data te modelleer: enige punt met 'n baie lae waarskynlikheid onder die geleerde mengsel word as anomalie gemerk. Byvoorbeeld, jy kan 'n GMM op wettige netwerkverkeerskenmerke oplei; 'n aanvalskonneksie wat nie enige geleerde kluster weerspieël nie, sou 'n lae waarskynlikheid hê. GMM's word ook gebruik om aktiwiteite te kluster waar klusters verskillende vorms kan hê byvoorbeeld, om gebruikers volgens gedragprofiele te groepeer, waar elke profiel se kenmerke dalk Gaussian-agtig is, maar met sy eie variantiestruktuur. 'n Ander scenario: in phishing-detektering kan wettige e-poskenmerke een Gaussian kluster vorm, bekende phishing 'n ander, en nuwe phishingveldtogte kan verskyn as 'n aparte Gaussian of as lae waarskynlikheid punte relatief tot die bestaande mengsel.
> *Gebruik gevalle in kuberveiligheid:* GMM kan gebruik word vir anomaliedetektering deur die verspreiding van normale data te modelleer: enige punt met 'n baie lae waarskynlikheid onder die geleerde mengsel word as anomalie gemerk. Byvoorbeeld, jy kan 'n GMM op wettige netwerkverkeerskenmerke oplei; 'n aanvalskonneksie wat nie enige geleerde kluster herinner nie, sou 'n lae waarskynlikheid hê. GMM's word ook gebruik om aktiwiteite te kluster waar klusters verskillende vorms kan hê byvoorbeeld, om gebruikers volgens gedragprofiele te groepeer, waar elke profiel se kenmerke dalk Gaussian-agtig is, maar met sy eie variantiestruktuur. 'n Ander scenario: in phishing-detektering kan wettige e-poskenmerke een Gaussian kluster vorm, bekende phishing 'n ander, en nuwe phishingveldtogte kan verskyn as 'n aparte Gaussian of as lae waarskynlikheid punte relatief tot die bestaande mengsel.
#### Aannames en Beperkings
@ -283,16 +283,16 @@ 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)
```
In hierdie kode, oplei ons 'n GMM met 3 Gaussians op die normale verkeer (aannemende ons ken 3 profiele van wettige verkeer). Die gemiddeldes en kovariënten wat gedruk word, beskryf hierdie klusters (byvoorbeeld, een gemiddelde mag rondom [50,500] wees wat ooreenstem met een kluster se sentrum, ens.). Ons toets dan 'n verdagte verbinding [duur=200, bytes=800]. Die predict_proba gee die waarskynlikheid dat hierdie punt aan elkeen van die 3 klusters behoort ons sou verwag dat hierdie waarskynlikhede baie laag of hoogskewed is aangesien [200,800] ver van die normale klusters lê. Die algehele score_samples (log-likelihood) word gedruk; 'n baie lae waarde dui aan dat die punt nie goed by die model pas nie, wat dit as 'n anomalie merk. In praktyk kan 'n mens 'n drempel op die log-likelihood (of op die maksimum waarskynlikheid) stel om te besluit of 'n punt voldoende onwaarskynlik is om as kwaadwillig beskou te word. GMM bied dus 'n prinsipiële manier om anomaliedetectie te doen en lewer ook sagte klusters wat onsekerheid erken.
In hierdie kode, oplei ons 'n GMM met 3 Gaussiese op die normale verkeer (aannemende ons ken 3 profiele van wettige verkeer). Die gemiddeldes en kovariansies wat gedruk word, beskryf hierdie klusters (byvoorbeeld, een gemiddelde mag rondom [50,500] wees wat ooreenstem met een kluster se sentrum, ens.). Ons toets dan 'n verdagte verbinding [duur=200, bytes=800]. Die predict_proba gee die waarskynlikheid dat hierdie punt aan elkeen van die 3 klusters behoort ons sou verwag dat hierdie waarskynlikhede baie laag of hoogskew sou wees aangesien [200,800] ver van die normale klusters lê. Die algehele score_samples (log-likelihood) word gedruk; 'n baie lae waarde dui aan dat die punt nie goed by die model pas nie, wat dit as 'n anomalie merk. In praktyk kan 'n mens 'n drempel op die log-likelihood (of op die maksimum waarskynlikheid) stel om te besluit of 'n punt voldoende onwaarskynlik is om as kwaadwillig beskou te word. GMM bied dus 'n prinsipiële manier om anomaliedetectie te doen en lewer ook sagte klusters wat onsekerheid erken.
### Isolation Forest
**Isolation Forest** is 'n ensemble anomaliedetectie-algoritme gebaseer op die idee om punte ewekansig te isoleer. Die beginsel is dat anomalieë min en anders is, so hulle is makliker om te isoleer as normale punte. 'n Isolation Forest bou baie binêre isolasiebome (ewekansige besluitbome) wat die data ewekansig partitioneer. By elke knoop in 'n boom, word 'n ewekansige kenmerk gekies en 'n ewekansige splitsingswaarde tussen die minimum en maksimum van daardie kenmerk vir die data in daardie knoop gekies. Hierdie splitsing verdeel die data in twee takke. Die boom word gegroei totdat elke punt in sy eie bladsy geisoleer is of 'n maksimum boomhoogte bereik is.
Anomaliedetectie word uitgevoer deur die padlengte van elke punt in hierdie ewekansige bome te observeer die aantal splitsings wat benodig word om die punt te isoleer. Intuïtief, anomalieë (uitvallers) geneig om vinniger geisoleer te word omdat 'n ewekansige splitsing meer waarskynlik is om 'n uitvaller (wat in 'n spaarse streek lê) te skei as wat dit 'n normale punt in 'n digte kluster sou doen. Die Isolation Forest bereken 'n anomalie telling vanaf die gemiddelde padlengte oor alle bome: korter gemiddelde pad → meer anomalies. Scores word gewoonlik genormaliseer tot [0,1] waar 1 baie waarskynlik anomalie beteken.
Anomaliedetectie word uitgevoer deur die padlengte van elke punt in hierdie ewekansige bome te observeer die aantal splitsings wat benodig word om die punt te isoleer. Intuïtief, anomalieë (uitvallers) geneig om vinniger geisoleer te word omdat 'n ewekansige splitsing meer waarskynlik is om 'n uitvaller te skei (wat in 'n spars gebied lê) as wat dit 'n normale punt in 'n digte kluster sou doen. Die Isolation Forest bereken 'n anomalie telling vanaf die gemiddelde padlengte oor alle bome: korter gemiddelde pad → meer anomalies. Tellings word gewoonlik genormaliseer tot [0,1] waar 1 baie waarskynlik anomalie beteken.
> [!TIP]
> *Gebruik gevalle in kuberveiligheid:* Isolation Forests is suksesvol gebruik in indringingdetectie en bedrogdetectie. Byvoorbeeld, oplei 'n Isolation Forest op netwerkverkeer logs wat meestal normale gedrag bevat; die woud sal kort paaie vir vreemde verkeer produseer (soos 'n IP wat 'n onbekende poort gebruik of 'n ongewone pakketgrootte patroon), wat dit vir inspeksie merk. Omdat dit nie gelabelde aanvalle vereis nie, is dit geskik om onbekende aanvalstipes te detecteer. Dit kan ook op gebruikersaanmelddata ontplooi word om rekeningneem te detecteer (die anomaliese aanmeldtye of plekke word vinnig geisoleer). In een gebruiksgeval kan 'n Isolation Forest 'n onderneming beskerm deur stelselsmetrieke te monitor en 'n waarskuwing te genereer wanneer 'n kombinasie van metrieke (CPU, netwerk, lêer veranderinge) baie anders lyk (korte isolasiepaaie) van historiese patrone.
> *Gebruik gevalle in kuberveiligheid:* Isolation Forests is suksesvol gebruik in indringingdetectie en bedrogdetectie. Byvoorbeeld, oplei 'n Isolation Forest op netwerkverkeer logs wat meestal normale gedrag bevat; die woud sal kort paaie vir vreemde verkeer produseer (soos 'n IP wat 'n onbekende poort gebruik of 'n ongewone pakketgrootte patroon), wat dit vir inspeksie merk. Omdat dit nie gelabelde aanvalle vereis nie, is dit geskik om onbekende aanvalstipes te detecteer. Dit kan ook op gebruikersaanmelddata ontplooi word om rekeningoorname te detecteer (die anomaliese aanmeldtye of plekke word vinnig geisoleer). In een gebruiksgeval kan 'n Isolation Forest 'n onderneming beskerm deur stelselsmetrieke te monitor en 'n waarskuwing te genereer wanneer 'n kombinasie van metrieke (CPU, netwerk, lêer veranderinge) baie anders lyk (korte isolasiepaaie) van historiese patrone.
#### Aannames en Beperkings
@ -326,30 +326,30 @@ Die uitvoer toon die voorspelde etikette vir die eerste 20 punte (waar -1 anomal
### t-SNE (t-Gedistribueerde Stogastiese Buren Inbed)
**t-SNE** is 'n nie-lineêre dimensie verminderings tegniek spesifiek ontwerp om hoë-dimensionele data in 2 of 3 dimensies te visualiseer. Dit omskep ooreenkomste tussen datapunte na gesamentlike waarskynlikheidsverdeling en probeer om die struktuur van plaaslike buurtes in die laer-dimensionele projek te behou. In eenvoudiger terme plaas t-SNE punte in (sê) 2D sodat soortgelyke punte (in die oorspronklike ruimte) naby mekaar eindig en onsimilar punte ver van mekaar met 'n hoë waarskynlikheid eindig.
**t-SNE** is 'n nie-lineêre dimensie verminderings tegniek spesifiek ontwerp om hoë-dimensionele data in 2 of 3 dimensies te visualiseer. Dit omskep ooreenkomste tussen datapunte na gesamentlike waarskynlikheidsverdelings en probeer om die struktuur van plaaslike buurtes in die laer-dimensionele projek te behou. In eenvoudiger terme plaas t-SNE punte in (sê) 2D sodat soortgelyke punte (in die oorspronklike ruimte) naby mekaar eindig en onsimilar punte ver van mekaar met 'n hoë waarskynlikheid eindig.
Die algoritme het twee hoof fases:
1. **Bereken paargewys affiniteit in hoë-dimensionele ruimte:** Vir elke paar punte, bereken t-SNE 'n waarskynlikheid dat 'n mens daardie paar as bure sou kies (dit word gedoen deur 'n Gaussiese verspreiding op elke punt te sentreer en afstande te meet die perplexity parameter beïnvloed die effektiewe aantal bure wat oorweeg word).
2. **Bereken paargewys affiniteit in lae-dimensionele (bv. 2D) ruimte:** Aanvanklik word punte ewekansig in 2D geplaas. t-SNE definieer 'n soortgelyke waarskynlikheid vir afstande in hierdie kaart (met 'n Student t-verspreiding kern, wat swaarder sterte het as Gaussies om veraf punte meer vryheid te gee).
3. **Gradiënt Afdaling:** t-SNE beweeg dan iteratief die punte in 2D om die KullbackLeibler (KL) divergensie tussen die hoë-D affiniteit verspreiding en die lae-D een te minimaliseer. Dit veroorsaak dat die 2D rangskikking die hoë-D struktuur soveel as moontlik weerspieël punte wat naby was in die oorspronklike ruimte sal mekaar aantrek, en diegene wat ver van mekaar is sal afstoot, totdat 'n balans gevind word.
1. **Bereken paargewys affiniteit in hoë-dimensionele ruimte:** Vir elke paar punte, bereken t-SNE 'n waarskynlikheid dat 'n mens daardie paar as bure sou kies (dit word gedoen deur 'n Gaussiese verdeling op elke punt te sentreer en afstande te meet die perplexity parameter beïnvloed die effektiewe aantal bure wat oorweeg word).
2. **Bereken paargewys affiniteit in lae-dimensionele (bv. 2D) ruimte:** Aanvanklik word punte ewekansig in 2D geplaas. t-SNE definieer 'n soortgelyke waarskynlikheid vir afstande in hierdie kaart (met 'n Student t-verdeling kern, wat swaarder sterte het as Gaussies om veraf punte meer vryheid te gee).
3. **Gradiënt Afdaling:** t-SNE beweeg dan iteratief die punte in 2D om die KullbackLeibler (KL) divergensie tussen die hoë-D affiniteit verdeling en die lae-D een te minimaliseer. Dit veroorsaak dat die 2D rangskikking die hoë-D struktuur soveel as moontlik weerspieël punte wat naby was in die oorspronklike ruimte sal mekaar aantrek, en diegene wat ver van mekaar is sal afstoot, totdat 'n balans gevind word.
Die resultaat is dikwels 'n visueel betekenisvolle verspreidingsgrafiek waar klusters in die data duidelik word.
> [!TIP]
> *Gebruik gevalle in kuberveiligheid:* t-SNE word dikwels gebruik om **hoë-dimensionele sekuriteitsdata vir menslike analise te visualiseer**. Byvoorbeeld, in 'n sekuriteitsbedrywigheidsentrum kan ontleders 'n gebeurtenisdatastel met dosyne kenmerke (poortnommers, frekwensies, byte tellings, ens.) neem en t-SNE gebruik om 'n 2D-grafiek te produseer. Aanvalle kan hul eie klusters vorm of van normale data in hierdie grafiek skei, wat dit makliker maak om te identifiseer. Dit is toegepas op malware-datastelle om groepe van malware-families te sien of op netwerkindringingsdata waar verskillende aanvalstipes duidelik groepeer, wat verdere ondersoek lei. Essensieel bied t-SNE 'n manier om struktuur in kuberdata te sien wat andersins onduidelik sou wees.
> *Gebruik gevalle in kuberveiligheid:* t-SNE word dikwels gebruik om **hoë-dimensionele sekuriteitsdata vir menslike analise te visualiseer**. Byvoorbeeld, in 'n sekuriteitsbedrywigheidsentrum kan analiste 'n gebeurtenisdatastel met dosyne kenmerke (poortnommers, frekwensies, byte tellings, ens.) neem en t-SNE gebruik om 'n 2D-grafiek te produseer. Aanvalle kan hul eie klusters vorm of van normale data in hierdie grafiek skei, wat dit makliker maak om te identifiseer. Dit is toegepas op malware datastelle om groepe van malware families te sien of op netwerk indringing data waar verskillende aanval tipe duidelik groepeer, wat verdere ondersoek lei. Essensieel bied t-SNE 'n manier om struktuur in kuberdata te sien wat andersins onduidelik sou wees.
#### Aannames en Beperkings
t-SNE is uitstekend vir visuele ontdekking van patrone. Dit kan klusters, subklusters en uitspringers onthul wat ander lineêre metodes (soos PCA) dalk nie kan nie. Dit is gebruik in kuberveiligheid navorsing om komplekse data soos malware gedrag profiele of netwerkverkeer patrone te visualiseer. Omdat dit plaaslike struktuur behou, is dit goed om natuurlike groepe te toon.
t-SNE is uitstekend vir visuele ontdekking van patrone. Dit kan klusters, subklusters, en uitspringers onthul wat ander lineêre metodes (soos PCA) dalk nie kan nie. Dit is gebruik in kuberveiligheid navorsing om komplekse data soos malware gedrag profiele of netwerkverkeer patrone te visualiseer. Omdat dit plaaslike struktuur behou, is dit goed om natuurlike groepe te toon.
Tog, t-SNE is rekenaarintensief (ongeveer $O(n^2)$) so dit mag vereis dat daar monsters geneem word vir baie groot datastelle. Dit het ook hiperparameters (perplexity, leer tempo, herhalings) wat die uitvoer kan beïnvloed bv., verskillende perplexity waardes kan klusters op verskillende skale onthul. t-SNE grafieke kan soms verkeerd geïnterpreteer word afstande in die kaart is nie direk betekenisvol globaal nie (dit fokus op plaaslike buurtes, soms kan klusters kunsmatig goed geskei voorkom). Ook, t-SNE is hoofsaaklik vir visualisering; dit bied nie 'n regstreekse manier om nuwe datapunte te projekteer sonder om weer te bereken nie, en dit is nie bedoel om as 'n voorverwerking vir voorspellende modellering gebruik te word nie (UMAP is 'n alternatief wat sommige van hierdie probleme met vinniger spoed aanspreek).
Echter, t-SNE is rekenaarintensief (ongeveer $O(n^2)$) so dit mag steekproefneming vereis vir baie groot datastelle. Dit het ook hiperparameters (perplexity, leer tempo, iterasies) wat die uitvoer kan beïnvloed bv., verskillende perplexity waardes kan klusters op verskillende skale onthul. t-SNE grafieke kan soms verkeerd geïnterpreteer word afstande in die kaart is nie direk betekenisvol globaal nie (dit fokus op plaaslike buurtes, soms kan klusters kunsmatig goed geskei voorkom). Ook, t-SNE is hoofsaaklik vir visualisering; dit bied nie 'n regstreekse manier om nuwe datapunte te projekteer sonder om weer te bereken nie, en dit is nie bedoel om as 'n voorverwerking vir voorspellende modellering gebruik te word nie (UMAP is 'n alternatief wat sommige van hierdie probleme met vinniger spoed aanspreek).
<details>
<summary>Voorbeeld -- Visualisering van Netwerkverbindinge
</summary>
Ons sal t-SNE gebruik om 'n multi-funksie datastel na 2D te verminder. Ter illustrasie, kom ons neem die vroeëre 4D data (wat 3 natuurlike klusters van normale verkeer gehad het) en voeg 'n paar anomalie punte by. Ons voer dan t-SNE uit en (konseptueel) visualiseer die resultate.
Ons sal t-SNE gebruik om 'n multi-kenmerk datastel na 2D te verminder. Ter illustrasie, kom ons neem die vroeëre 4D data (wat 3 natuurlike klusters van normale verkeer gehad het) en voeg 'n paar anomalie punte by. Ons voer dan t-SNE uit en (konseptueel) visualiseer die resultate.
```python
# 1 ─────────────────────────────────────────────────────────────────────
# Create synthetic 4-D dataset
@ -432,7 +432,7 @@ plt.legend()
plt.tight_layout()
plt.show()
```
Hier het ons ons vorige 4D normale dataset gekombineer met 'n handvol ekstreme uitskieters (die uitskieters het een kenmerk (“duur”) baie hoog gestel, ens., om 'n vreemde patroon na te boots). Ons loop t-SNE met 'n tipiese perplexity van 30. Die uitvoer data_2d het 'n vorm van (1505, 2). Ons gaan eintlik nie in hierdie teks plot nie, maar as ons dit sou doen, sou ons verwag om dalk drie stywe klusters te sien wat ooreenstem met die 3 normale klusters, en die 5 uitskieters wat as geïsoleerde punte ver van daardie klusters verskyn. In 'n interaktiewe werksvloei, kan ons die punte kleur volgens hul etiket (normaal of watter kluster, teenoor anomalie) om hierdie struktuur te verifieer. Selfs sonder etikette, mag 'n ontleder daardie 5 punte in leë ruimte op die 2D plot opgemerk het en hulle merk. Dit toon hoe t-SNE 'n kragtige hulp kan wees vir visuele anomaliedetectie en klusterinspeksie in kuberveiligheidsdata, wat die geoutomatiseerde algoritmes hierbo aanvul.
Hier het ons ons vorige 4D normale dataset gekombineer met 'n handvol ekstreme uitskieters (die uitskieters het een kenmerk (“duur”) baie hoog gestel, ens., om 'n vreemde patroon na te boots). Ons loop t-SNE met 'n tipiese perplexity van 30. Die uitvoer data_2d het 'n vorm van (1505, 2). Ons sal eintlik nie in hierdie teks plot nie, maar as ons dit sou doen, sou ons verwag om dalk drie stywe klusters te sien wat ooreenstem met die 3 normale klusters, en die 5 uitskieters wat as geïsoleerde punte ver van daardie klusters verskyn. In 'n interaktiewe werksvloei, kan ons die punte kleur volgens hul etiket (normaal of watter kluster, teenoor anomalie) om hierdie struktuur te verifieer. Selfs sonder etikette, mag 'n ontleder daardie 5 punte in leë ruimte op die 2D plot opgemerk het en dit merk. Dit toon hoe t-SNE 'n kragtige hulp kan wees vir visuele anomaliedetektering en klusterinspeksie in kuberveiligheidsdata, wat die geoutomatiseerde algoritmes hierbo aanvul.
</details>

View File

@ -802,7 +802,7 @@
- [AI Prompts](AI/AI-Prompts.md)
- [AI Risk Frameworks](AI/AI-Risk-Frameworks.md)
- [AI Supervised Learning Algorithms](AI/AI-Supervised-Learning-Algorithms.md)
- [AI Unsupervised Learning Algorithms](AI/AI-Unsupervised-Learning-algorithms.md)
- [AI Unsupervised Learning Algorithms](AI/AI-Unsupervised-Learning-Algorithms.md)
- [AI Reinforcement Learning Algorithms](AI/AI-Reinforcement-Learning-Algorithms.md)
- [LLM Training](AI/AI-llm-architecture/README.md)
- [0. Basic LLM Concepts](AI/AI-llm-architecture/0.-basic-llm-concepts.md)