Onderdeel: K-Means-clustering

In dit artikel wordt beschreven hoe u het onderdeel K-Means Clustering in azure Machine Learning Designer gebruikt om een ongetraind K-means-clusteringmodel te maken.

K-means is een van de eenvoudigste en bekendste leeralgoritmen zonder supervisie . U kunt het algoritme gebruiken voor verschillende machine learning-taken, zoals:

  • Abnormale gegevens detecteren.
  • Tekstdocumenten clusteren.
  • Gegevenssets analyseren voordat u andere classificatie- of regressiemethoden gebruikt.

Als u een clusteringmodel wilt maken, gaat u als volgende te werk:

  • Voeg dit onderdeel toe aan uw pijplijn.
  • Een gegevensset verbinden.
  • Stel parameters in, zoals het aantal clusters dat u verwacht, de afstandsmetrieken die moeten worden gebruikt bij het maken van de clusters, enzovoort.

Nadat u de hyperparameters van het onderdeel hebt geconfigureerd, verbindt u het niet-getrainde model met het clusteringmodel trainen. Omdat het K-means-algoritme een leermethode zonder supervisie is, is een labelkolom optioneel.

  • Als uw gegevens een label bevatten, kunt u de labelwaarden gebruiken om de selectie van de clusters te begeleiden en het model te optimaliseren.

  • Als uw gegevens geen label hebben, maakt het algoritme clusters die mogelijke categorieën vertegenwoordigen, uitsluitend op basis van de gegevens.

Inzicht in K-means-clustering

In het algemeen maakt clustering gebruik van iteratieve technieken om cases in een gegevensset te groeperen in clusters die vergelijkbare kenmerken hebben. Deze groeperingen zijn handig voor het verkennen van gegevens, het identificeren van afwijkingen in de gegevens en uiteindelijk voor het maken van voorspellingen. Clusteringmodellen kunnen u ook helpen bij het identificeren van relaties in een gegevensset die u mogelijk niet logisch kunt afleiden door te bladeren of eenvoudige observatie. Daarom wordt clustering vaak gebruikt in de eerste fasen van machine learning-taken, om de gegevens te verkennen en onverwachte correlaties te detecteren.

Wanneer u een clusteringmodel configureert met behulp van de methode K-means, moet u een doelnummer k opgeven dat het aantal zwaartepunten aangeeft dat u in het model wilt gebruiken. Het zwaartepunt is een punt dat representatief is voor elk cluster. Het K-means-algoritme wijst elk binnenkomend gegevenspunt toe aan een van de clusters door de som van kwadraten binnen het cluster te minimaliseren.

Wanneer de trainingsgegevens worden verwerkt, begint het K-means-algoritme met een eerste set willekeurig gekozen zwaartepunten. Zwaartepunten fungeren als uitgangspunten voor de clusters en ze passen het algoritme van Lloyd toe om hun locaties iteratief te verfijnen. Het K-means-algoritme stopt met het bouwen en verfijnen van clusters wanneer het voldoet aan een of meer van de volgende voorwaarden:

  • De zwaartepunten stabiliseren, wat betekent dat de clustertoewijzingen voor afzonderlijke punten niet meer veranderen en het algoritme is geconvergeerd op een oplossing.

  • Het algoritme is voltooid met het uitvoeren van het opgegeven aantal iteraties.

Nadat u de trainingsfase hebt voltooid, gebruikt u het onderdeel Gegevens toewijzen aan clusters om nieuwe cases toe te wijzen aan een van de clusters die u hebt gevonden met behulp van het K-means-algoritme. U voert clustertoewijzing uit door de afstand tussen de nieuwe case en het zwaartepunt van elk cluster te berekenen. Elke nieuwe case wordt toegewezen aan het cluster met het dichtstbijzijnde zwaartepunt.

Het onderdeel K-Means Clustering configureren

  1. Voeg het onderdeel K-Means Clustering toe aan uw pijplijn.

  2. Als u wilt opgeven hoe het model moet worden getraind, selecteert u de optie Trainermodus maken .

    • Enkele parameter: als u de exacte parameters kent die u in het clusteringmodel wilt gebruiken, kunt u een specifieke set waarden opgeven als argumenten.
  3. Bij Aantal zwaartepunten typt u het aantal clusters waarmee het algoritme moet beginnen.

    Het model kan niet gegarandeerd precies dit aantal clusters produceren. Het algoritme begint met dit aantal gegevenspunten en herhaalt om de optimale configuratie te vinden. U kunt verwijzen naar de broncode van sklearn.

  4. De eigenschappen Initialisatie wordt gebruikt om het algoritme op te geven dat wordt gebruikt om de eerste clusterconfiguratie te definiëren.

    • Eerste N: Er wordt een eerste aantal gegevenspunten gekozen uit de gegevensset en gebruikt als het eerste middel.

      Deze methode wordt ook wel de Forgy-methode genoemd.

    • Willekeurig: het algoritme plaatst willekeurig een gegevenspunt in een cluster en berekent vervolgens het aanvankelijke gemiddelde als het zwaartepunt van de willekeurig toegewezen punten van het cluster.

      Deze methode wordt ook wel de methode willekeurige partitie genoemd.

    • K-Means++: dit is de standaardmethode voor het initialiseren van clusters.

      Het K-means++- algoritme werd in 2007 voorgesteld door David Arthur en Sergei Vassilvitskii om slechte clustering door het standaard K-means-algoritme te voorkomen. K-means++ verbetert de standaard-K-middelen door een andere methode te gebruiken voor het kiezen van de eerste clustercentra.

  5. Typ bij Seed voor willekeurige getallen desgewenst een waarde die moet worden gebruikt als de seed voor de initialisatie van het cluster. Deze waarde kan een aanzienlijk effect hebben op de clusterselectie.

  6. Kies voor Metrisch de functie die moet worden gebruikt voor het meten van de afstand tussen clustervectoren of tussen nieuwe gegevenspunten en het willekeurig gekozen zwaartepunt. Azure Machine Learning ondersteunt de volgende metrische gegevens over clusterafstand:

    • Euclidisch: De Euclidische afstand wordt vaak gebruikt als een meting van clusterspreiding voor K-means-clustering. Deze metrische waarde heeft de voorkeur omdat hiermee de gemiddelde afstand tussen punten en de zwaartepunten wordt geminimaliseerd.
  7. Voor Iteraties typt u het aantal keren dat het algoritme de trainingsgegevens moet herhalen voordat de selectie van zwaartepunten wordt voltooid.

    U kunt deze parameter aanpassen om de nauwkeurigheid af te stemmen op de trainingstijd.

  8. Kies voor de modus Label toewijzen een optie die aangeeft hoe een labelkolom, als deze aanwezig is in de gegevensset, moet worden verwerkt.

    Omdat K-means-clustering een machine learning-methode zonder supervisie is, zijn labels optioneel. Als uw gegevensset echter al een labelkolom heeft, kunt u deze waarden gebruiken om de selectie van de clusters te begeleiden of kunt u opgeven dat de waarden worden genegeerd.

    • Labelkolom negeren: de waarden in de labelkolom worden genegeerd en worden niet gebruikt bij het bouwen van het model.

    • Ontbrekende waarden invullen: de labelkolomwaarden worden gebruikt als functies voor het bouwen van de clusters. Als een label ontbreekt in rijen, wordt de waarde toegerekend met behulp van andere functies.

    • Overschrijven van het dichtst bij het midden: de labelkolomwaarden worden vervangen door voorspelde labelwaarden, met behulp van het label van het punt dat zich het dichtst bij het huidige zwaartepunt bevindt.

  9. Selecteer de optie Functies normaliseren als u functies vóór de training wilt normaliseren.

    Als u normalisatie toepast, worden de gegevenspunten vóór de training genormaliseerd [0,1] naar door MinMaxNormalizer.

  10. Het model trainen.

    • Als u de modus Trainer maken instelt op Enkele parameter, voegt u een getagde gegevensset toe en traint u het model met behulp van het onderdeel Clusteringmodel trainen .

Resultaten

Nadat u klaar bent met het configureren en trainen van het model, hebt u een model dat u kunt gebruiken om scores te genereren. Er zijn echter meerdere manieren om het model te trainen en meerdere manieren om de resultaten weer te geven en te gebruiken:

Een momentopname van het model vastleggen in uw werkruimte

Als u het onderdeel Clusteringmodel trainen hebt gebruikt:

  1. Selecteer het onderdeel Clusteringmodel trainen en open het rechterdeelvenster.

  2. Selecteer het tabblad Uitvoer . Selecteer het pictogram Gegevensset registreren om een kopie van het getrainde model op te slaan.

Het opgeslagen model vertegenwoordigt de trainingsgegevens op het moment dat u het model hebt opgeslagen. Als u de trainingsgegevens die in de pijplijn worden gebruikt later bijwerkt, wordt het opgeslagen model niet bijgewerkt.

De gegevensset met clusterresultaten bekijken

Als u het onderdeel Clusteringmodel trainen hebt gebruikt:

  1. Klik met de rechtermuisknop op het onderdeel Clusteringmodel trainen .

  2. Selecteer Visualiseren.

Tips voor het genereren van het beste clusteringmodel

Het is bekend dat het seedingproces dat tijdens clustering wordt gebruikt, het model aanzienlijk kan beïnvloeden. Seeding betekent de eerste plaatsing van punten in potentiële zwaartepunten.

Als de gegevensset bijvoorbeeld veel uitbijters bevat en een uitbijter wordt gekozen om de clusters te seeden, passen er geen andere gegevenspunten goed bij dat cluster en kan het cluster een singleton zijn. Dat wil dus, het kan maar één punt hebben.

U kunt dit probleem op een aantal manieren voorkomen:

  • Wijzig het aantal zwaartepunten en probeer meerdere seed-waarden.

  • Meerdere modellen maken, de metrische gegevens variëren of meer herhalen.

In het algemeen is het met clusteringmodellen mogelijk dat een bepaalde configuratie resulteert in een lokaal geoptimaliseerde set clusters. Met andere woorden, de set clusters die door het model wordt geretourneerd, is alleen geschikt voor de huidige gegevenspunten en is niet generaliseerbaar voor andere gegevens. Als u een andere initiële configuratie gebruikt, kan de methode K-means een andere, superieure configuratie vinden.

Volgende stappen

Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning.