Rensa kluster

Utför en parametersökning för att fastställa optimala inställningar för en klustringsmodell

Kategori: Machine Learning/träna

Anteckning

Gäller för: Machine Learning Studio (klassisk)

Det här innehållet gäller endast Studio (klassisk). Liknande dra-och släpp moduler har lagts till i Azure Machine Learning designer. Mer information i den här artikeln är att jämföra de två versionerna.

Modulöversikt

I den här artikeln beskrivs hur du använder modulen Rensa kluster i Azure Machine Learning Studio (klassisk) för att träna en modell med en parametersökning. En parametersökning är ett sätt att hitta de bästa hyperparametrarna för en modell, givet en uppsättning data.

Modulen Rensa kluster är utformad specifikt för klustringsmodeller. Du anger en klustringsmodell som indata tillsammans med en datauppsättning. Modulen itererar över en uppsättning parametrar som du anger, skapar och testar modeller med olika parametrar tills den hittar modellen med den bästa uppsättningen kluster. Den beräknar automatiskt den bästa konfigurationen och tränar sedan en modell med den konfigurationen.

Den returnerar också en uppsättning mått som beskriver de modeller som testades och en uppsättning klustertilldelningar baserat på den bästa modellen.

Så här konfigurerar du rensat kluster

  1. Lägg till modulen Rensa klustring i experimentet i Studio (klassisk). Du hittar den här modulen under Machine Learning, i kategorin Träna.

  2. Lägg till K-Means-klustringsmodulen och din träningsdatauppsättning i experimentet och anslut dem båda till modulen Rensa kluster.

  3. Konfigurera K-Means-klustringsmodulen så att den använder en parametersökning enligt följande:

    1. Ställ in Skapa utbildarlägeParameterintervall.

    2. Använd Range Builder (eller skriv flera värden manuellt) för varje parameter för att ange intervallet med värden som ska iterera över.

    3. Initiering för sökning: Ange hur K-means-algoritmen ska hitta de första kluster-centroiderna. Flera algoritmer tillhandahålls för slumpmässig initiering och sedan testning av centroider.

      Om din träningsdatamängd innehåller en etikettkolumn, även med partiella värden, kan du använda dessa värden för centroider. Använd alternativet Tilldela etikettläge för att ange hur etikettvärdena används.

      Tips

      Etikettkolumnen måste markeras som sådan i förväg. Om du får ett felmeddelande kan du försöka använda Redigera metadata för att identifiera kolumnen som innehåller etiketter.

    4. Antal kärnor som ska rensas: Ange hur många olika slumpmässiga startfrö som ska provas när parametern rensas.

    5. Välj det mått som ska användas vid mätning av klusterlikhet. Mer information finns i avsnittet om K-Means-klustring.

    6. Iterationer: Ange det totala antalet iterationer som K-means-algoritmen ska utföra. Dessa iterationer används för att optimera valet av kluster-centroider.

    7. Om du använder en etikettkolumn för att initiera stapeln använder du alternativet Tilldela etikettläge för att ange hur värdena i etikettkolumnen ska hanteras.

      • Fyll i saknade värden: Om etikettkolumnen innehåller vissa saknade värden använder du det här alternativet för att imputera kategorier baserat på klustret som datapunkten är tilldelad till.

      • Skriva över från närmaste centrum: Genererar etikettvärden för alla datapunkter som är tilldelade till ett kluster med hjälp av etiketten för den punkt som är närmast mitten av klustret.

      • Ignorera etikettkolumn: Välj det här alternativet om du inte vill utföra någon av ovanstående åtgärder.

  4. I modulen Rensa klustring använder du alternativet För mått för mätning av klustringsresultat för att ange den matematiska metod som ska användas vid uppskattning av den tränade klustringsmodellens passning:

    • Förenklad tavla: Det här måttet fångar upp tätheten av datapunkter i varje kluster. Den beräknas som en kombination av likheten mellan varje rad och dess kluster och dess likhet med nästa närmaste kluster. Om klustret bara har 1 rad beräknas det beräknade avståndet till närmaste centroid i stället för att undvika att få 0 som resultat. "Förenklad" syftar på det faktum att avståndet till klustrets centroid används som ett enkelt likhetsmått. I allmänhet är en högre poäng bättre. Det genomsnittliga värdet för datauppsättningen anger hur väl data har klustrats. Om det finns för många eller för få kluster har vissa kluster lägre värden än resten. Mer information finns i den här Wikipedia-artikeln.

    • Davies-Bouldin: Det här måttet syftar till att identifiera den minsta uppsättningen kluster med minst punktdiagram. Eftersom måttet definieras som ett förhållande mellan punktdiagram i varje kluster över klusterseparation innebär ett lägre värde att klustring är bättre. Den bästa klustringsmodellen minimerar det här måttet. För att beräkna Davies-Bouldin beräknas den genomsnittliga raden till centroidavståndet per kluster. För varje klusterpar divideras summan av dessa medelvärden med avståndet mellan centroider. Maximalt värde för alla andra kluster väljs för varje kluster och beräknas i genomsnitt för alla kluster. Mer information finns i den här Wikipedia-artikeln.

    • Dunn: Syftet med det här måttet är att identifiera den minsta uppsättningen av de mest kompakta klustren. I allmänhet indikerar ett högre värde för det här måttet bättre klustring. För att beräkna Dunn-måttet divideras det minimala centroid-till-centroidavståndet med det maximala avståndet för varje datapunkt till dess klustercenter. Mer information finns i den här Wikipedia-artikeln.

    • Genomsnittlig avvikelse: Det här måttet beräknas genom att ta det genomsnittliga avståndet från varje datapunkt till dess klustercenter. Värdet minskar när antalet centroider ökar. Därför är det inte användbart när du rensar för att hitta antalet centroider. Det här måttet rekommenderas när du väljer bästa centroid-initieringsvärde.

  5. Ange parametersökningsläge: Välj ett alternativ som definierar de kombinationer av värden som används vid träning och hur de väljs:

    • Hela rutnätet: Alla värden inom det angivna intervallet provas och utvärderas. Det här alternativet är vanligtvis mer beräkningsmässigt dyrt.

    • Slumpmässig sökning: Använd det här alternativet för att begränsa antalet körningar. Klustringsmodellen byggs och utvärderas med en kombination av värden som väljs slumpmässigt från det tillåtna intervallet med parametervärden.

  6. Maximalt antal körningar vid slumpmässig sökning: Ange det här alternativet om du väljer alternativet Slumpmässig sökning. Skriv ett värde för att begränsa det maximala antalet iterationer när du testar uppsättningar med slumpmässigt valda parametrar.

    Varning

    Iterationsparametrarna för K-Means-klustringsmodulen har ett annat syfte och påverkas inte av den här inställningen: den begränsar antalet övergångar av data som görs för att förbättra kluster genom att minimera det genomsnittliga avståndet från varje datapunkt till dess kluster-centroider. Iterationerna som definieras av modulparametern Rensa klustring utförs däremot för att prova olika slumpmässiga centroid-initieringar. Det här minimeringsproblemet är känt som NP-svårt. Därför kan försök med flera slumpmässiga kärnor ge bättre resultat.

    Om du väljer en slumpmässig sökning använder du alternativet Slumpmässigt startvärde för att ange de första slumpmässiga startvärdena som centroiderna ska börja skapas på. En fördel med att använda en parametersökning för att skapa en klustringsmodell är att du enkelt kan testa flera startvärden för att minska den kända känsligheten hos klustringsmodeller till det ursprungliga startvärde.

  7. Klicka på Kolumnuppsättning och välj de kolumner som ska användas när du skapar klustren. Som standard används alla egenskapskolumner när du skapar och testar klustringsmodellen.

    Du kan inkludera en etikettkolumn om den finns i din datauppsättning. Om det finns en etikett kan du använda den för att styra valet av centroider, använda etiketten som en funktion eller ignorera etiketten. Ange dessa alternativ för etiketthantering av Kmeans Clustering-modulen enligt beskrivningen i steg 3 ovan.

  8. Sök efter Lägg till eller Avmarkera endast resultat: Använd det här alternativet för att styra vilka kolumner som returneras i resultatet.

    Som standard returnerar modulen de ursprungliga kolumnerna i träningsdatamängden tillsammans med resultaten. Om du avmarkerar det här alternativet. endast klustertilldelningarna returneras.

  9. Lägg till modulen Assign Data to Clusters (Tilldela data till kluster) i experimentet.

  10. Anslut utdata med etiketten Best Trained Model (Bäst tränad modell) till indata för Trained Model (Tränad modell) för Assign Data to Clusters (Tilldela data till kluster).

  11. Lägg till datauppsättningen som är avsedd för utvärdering och anslut den till datauppsättningsporten för modulen Assign Data to Clusters (Tilldela data till kluster).

  12. Lägg till modulen Evaluate Model (Utvärdera modell) och anslut den till Assign Data to Clusters (Tilldela data till kluster). Du kan också ansluta en utvärderingsdatamängd.

  13. Kör experimentet.

Resultat

Modulen Rensa kluster matar ut tre olika resultat:

  • Bäst tränad modell. En tränad modell som du kan använda för bedömning och utvärdering. Högerklicka och välj Spara som tränad modell för att avbilda den optimerade klustringsmodellen och använda den för bedömning.

  • Resultatdatauppsättning. En uppsättning klustertilldelningar som baseras på den optimerade modellen.

    Kolumnnamn Description
    Tilldelningar Det här värdet anger det kluster som varje datapunkt har tilldelats. Klustren i den tränade modellen är märkta med 0-baserade index.
    DistancesToClusterCenter no.1

    DistancesToClusterCenter no.n
    Det här värdet anger hur nära datapunkten är i mitten av varje kluster.

    En kolumn skapas för varje kluster som skapats i den optimerade modellen.

    Du kan begränsa antalet kluster med hjälp av alternativet Antal centroider.

    Som standard kan du returnera kolumnerna från träningsdatamängden tillsammans med resultaten, så att det blir enklare att granska och tolka klustertilldelningarna.

  • Avsökningsresultat. En datauppsättning som innehåller följande utvärderingsmått för klustren:

    Kolumnnamn Description
    Klustermått Ett värde som anger den genomsnittliga klusterkvaliteten för körningen. Körningarna sorteras efter bästa poäng.
    Antal centroider Antalet kluster som har skapats i just den här iterationen av flyttningen
    Index för körning En identifierare för varje iteration

    Tips

    De värden som returneras för klustermåttet ska tolkas på olika sätt, beroende på vilket mått du valde när du konfigurerade samlingen. För standardmåttet Förenklad är en högre poäng bättre. För Davies-Bouldin är en lägre poäng bättre.

Exempel

Exempel på en parametersökning med K-means-klustring finns i Azure AI Gallery:

Teknisk information

Det här avsnittet innehåller tips och implementeringsinformation.

Optimera klustringsmodeller

Klustermodellers kvalitet och noggrannhet kan påverkas starkt av valet av inledande parametrar, till exempel antalet centroider och startvärdet som används för att initiera klustret. För att minska känsligheten för de inledande parametrarna hjälper modulen Rensa klustring dig att hitta den bästa kombinationen av parametrar. Du anger ett antal parametrar som ska testas, och modulen skapar och testar automatiskt flera modeller och väljer slutligen optimalt antal kluster.

Om du vill skapa en parametersökning måste du också konfigurera K-Means-klustringsmodulen så att den använder en parametersökning. Du kan ange att den ska rensa iterera över alla möjliga kombinationer av parametrar eller använda en slumpmässig kombination av parametrar. Du kan också välja ett av flera standardmått för att mäta precisionen för centroider under den iterativa modellskapande- och testningsprocessen. När det angivna antalet iterationer har slutförts väljer modulen det bästa antalet kluster, baserat på det valda måttet, och matar ut rapporter som du kan använda för att utvärdera resultatet.

Användningstips

  • I vissa fall kanske du redan vet hur många kluster du förväntar dig att hitta. Dina data kan till exempel ha klassetiketter som kan användas för att vägleda valet av centroider. I så fall kan du konfigurera K-Means-klustringsmodulen så att den använder etikettkolumnen för att vägleda valet av de första centroiderna.

  • Om du känner till några av de förväntade klustren men inte är säker på hur många kluster som är optimala anger du antalet centroider till ett tal som är större än antalet kända etikettvärden. Modulen Rensa klustring skapar kluster för kända datapunkter och avgör sedan det optimala antalet extra kluster för återstående datapunkter.

Hantera saknade värden i etikettkolumnen

Det finns flera sätt att hantera saknade värden i etikettkolumnen. Anta till exempel att du har en bildklassificeringsuppgift och att endast vissa av bilderna har märkts.

Du kan använda etikettkolumnen för att vägleda valet av centroider, men ange att eventuella saknade etiketter ska fyllas i med hjälp av klustertilldelningarna. Befintliga etikettvärden ändras med andra ord inte, men etiketter som saknas fylls i.

För alla datapunkter som är tilldelade till ett kluster kan du även skriva över befintliga etiketter med hjälp av en enda etikett som bäst representerar klustret. Tänk dig att du använder bilddata med mycket detaljerade etiketter, till exempel olika hundraser, för att förstå hur det här alternativet kan vara användbart. Med det här alternativet kan du ersätta alla detaljerade etiketter med en enda kategorietikett, "hund".

Startvärden i loggen

Loggfilen som genererades av modulen Train Clustering Model (Träna klustringsmodell) visar att samma start seed används för alla iterationer av K-means-klustringsalgoritmen, oavsett vilket start seed som angavs i egenskapen Random Seed ..

I själva verket använder implementeringen det start seed som användaren angett för att generera en sekvens med slumpmässiga tal som är olika för varje körning. Därför behövs bara ett start seed för att skapa alla slumpmässigt genererade tal.

Syftet med loggen är att ange vilket start seed som modulen använder när användaren inte anger ett start seed i fönstret Egenskaper.

Förväntade indata

Namn Typ Description
Ej tränad modell ICluster-gränssnitt Ej tränad klustringsmodell
Datamängd Datatabell Indatakälla

Modulparametrar

Namn Typ Värden Valfritt Standardvärde Description
Mått för att mäta klustringsresultat Klustermått Simplified Simplified Simplified, Davies-Bouldin, Dunn, Average Deviation Obligatorisk Förenklad tavla Välj det mått som används för att utvärdera regressionsmodeller
Ange parametersökningsläge Sökningsmetoder Hela rutnätet eller slumpmässigt svep Obligatorisk Slumpmässigt svep Rensa hela rutnätet på parameterutrymme eller rensa med ett begränsat antal exempelkörningar
Kolumnuppsättning ColumnSelection Obligatorisk Kolumnvalsmönster
Maximalt antal körningar vid slumpmässig sökning Integer [1;10000] Endast tillgängligt när SweepingMode är inställt på Slumpmässigt svep 5 Ange maximalt antal körningar som ska köras vid slumpmässig sökning
Slumpmässigt start seed Integer Endast tillgängligt när SweepingMode är inställt på Slumpmässigt svep 0 Ange ett värde för att seeda slumptalsgeneratorn för slumpmässig sökning
Sök efter Lägg till eller Avmarkera endast resultat Boolesk Obligatorisk Sant Välj om du vill ange att utdatauppsättningen måste innehålla indatauppsättningen med tilldelningskolumnen tillagd. Avmarkera för att ange att endast tilldelningskolumnen ska vara utdata.

Utdata

Namn Typ Description
Bäst tränad modell ICluster-gränssnitt Tränad klustringsmodell
Resultatdatauppsättning Datatabell Indatauppsättning som läggs till av datakolumnen i endast tilldelningar eller tilldelningar
Rensa resultat Datatabell Resulterande måttlogg för klustersökningskörningar

Undantag

Undantag Description
Fel 0003 Undantag inträffar om en eller flera indata är null eller tomma.

En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.

En lista över API-undantag finns i Machine Learning REST API felkoder.

Se även

K-Means-klustring
Tilldela data till kluster
Machine Learning/träna
Machine Learning/initiera modell/klustring