Delen via


Onderdeel: K-Means-clustering

In dit artikel wordt beschreven hoe u het K-Means-clustering-onderdeel in de Azure Machine Learning-ontwerpfunctie gebruikt om een niet-getraind K-means-clusteringmodel te maken.

K-means is een van de eenvoudigste en de 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.
  • Verbinding maken met een gegevensset.
  • Stel parameters in, zoals het aantal clusters dat u verwacht, de metrische afstand die moet 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 train clustering model. 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 afleiden door te bladeren of eenvoudige observaties te maken. Om deze redenen wordt clustering vaak gebruikt in de vroege fasen van machine learning-taken om de gegevens te verkennen en onverwachte correlaties te detecteren.

Wanneer u een clusteringmodel configureert met behulp van de K-means-methode, moet u een doelnummer k opgeven dat het gewenste aantal zwaartepunten in het model aangeeft. 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 binnen het cluster van kwadraten 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 passen lloyd's algoritme toe om hun locaties iteratief te verfijnen. Het K-means-algoritme stopt met het bouwen en verfijnen van clusters wanneer deze voldoet aan een of meer van deze voorwaarden:

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

  • Het algoritme is voltooid met 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 K-Means Clustering-onderdeel configureren

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

  2. Als u wilt opgeven hoe u het model wilt trainen, selecteert u de optie Trainermodus maken.

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

    Het model is niet gegarandeerd om precies dit aantal clusters te produceren. Het algoritme begint met dit aantal gegevenspunten en itereert 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: Een bepaald initiële aantal gegevenspunten wordt uit de gegevensset gekozen en gebruikt als de eerste middelen.

      Deze methode wordt ook wel de Forgy-methode genoemd.

    • Willekeurig: Het algoritme plaatst willekeurig een gegevenspunt in een cluster en berekent vervolgens het eerste gemiddelde dat het zwaartepunt is van de willekeurig toegewezen punten van het cluster.

      Deze methode wordt ook wel de willekeurige partitiemethode 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 op standaard K-means met behulp van een andere methode voor het kiezen van de eerste clustercentra.

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

  6. Kies voor Metrische gegevens 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 voor clusterafstand:

    • Euclidean: De Euclidische afstand wordt vaak gebruikt als een meting van clusterspreiding voor K-means-clustering. Deze metrische waarde heeft de voorkeur omdat 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 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 u kunt 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 doorvoeren: de kolomwaarden van het label worden gebruikt als functies om de clusters te bouwen. Als er rijen ontbreken in een label, wordt de waarde toegerekend met behulp van andere functies.

    • Overschrijven van het dichtst bij het midden: de waarden van de labelkolom 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 wilt normaliseren voordat u gaat trainen.

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

  10. Train het model.

    • Als u de modus Trainer maken instelt op Enkele parameter, voegt u een gelabelde 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 in uw werkruimte vastleggen

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 clusteringresultaten 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 wordt gebruikt tijdens het clusteren aanzienlijk van invloed kan zijn op het model. Seeding betekent de eerste plaatsing van punten in potentiële zwaartepunten.

Als de gegevensset bijvoorbeeld veel uitbijters bevat en er 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 gezegd, het kan maar één punt hebben.

U kunt dit probleem op een aantal manieren voorkomen:

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

  • Maak meerdere modellen, variërend van de metrische waarde of het herhalen van meer.

Over 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 worden geretourneerd, past alleen bij de huidige gegevenspunten en is niet generaliseerbaar voor andere gegevens. Als u een andere initiële configuratie gebruikt, kan de K-means-methode een andere, superieure configuratie vinden.

Volgende stappen

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