Komponent: K-Means-klustring

Den här artikeln beskriver hur du använder K-Means Clustering-komponenten i Azure Machine Learning-designern för att skapa en otränad K-means-klustermodell.

K-means är en av de enklaste och mest kända oövervakade inlärningsalgoritmerna . Du kan använda algoritmen för en mängd olika maskininlärningsuppgifter, till exempel:

  • Identifiera onormala data.
  • Klustring av textdokument.
  • Analysera datauppsättningar innan du använder andra klassificerings- eller regressionsmetoder.

Om du vill skapa en klustringsmodell gör du så här:

  • Lägg till den här komponenten i din pipeline.
  • Anslut en datauppsättning.
  • Ange parametrar, till exempel antalet kluster som du förväntar dig, det avståndsmått som ska användas för att skapa klustren och så vidare.

När du har konfigurerat komponentens hyperparametrar ansluter du den otränade modellen till träningsklustermodellen. Eftersom K-means-algoritmen är en oövervakad inlärningsmetod är en etikettkolumn valfri.

  • Om dina data innehåller en etikett kan du använda etikettvärdena för att vägleda valet av kluster och optimera modellen.

  • Om dina data inte har någon etikett skapar algoritmen kluster som representerar möjliga kategorier, enbart baserat på data.

Förstå K-means-klustring

I allmänhet använder klustring iterativa tekniker för att gruppera fall i en datauppsättning i kluster som har liknande egenskaper. Dessa grupperingar är användbara för att utforska data, identifiera avvikelser i data och så småningom för att göra förutsägelser. Klustringsmodeller kan också hjälpa dig att identifiera relationer i en datauppsättning som du kanske inte logiskt kan härleda genom att bläddra eller enkel observation. Av dessa skäl används klustring ofta i de tidiga faserna av maskininlärningsuppgifter för att utforska data och identifiera oväntade korrelationer.

När du konfigurerar en klustringsmodell med hjälp av metoden K-means måste du ange ett målnummer k som anger antalet centroider som du vill använda i modellen. Centroiden är en punkt som är representativ för varje kluster. K-means-algoritmen tilldelar varje inkommande datapunkt till ett av klustren genom att minimera kvadratsumman inom klustret.

När K-means-algoritmen bearbetar träningsdata börjar den med en första uppsättning slumpmässigt valda centroider. Centroider fungerar som startpunkter för klustren och de tillämpar Lloyds algoritm för att iterativt förfina sina platser. K-means-algoritmen slutar skapa och förfina kluster när den uppfyller ett eller flera av följande villkor:

  • Centroiderna stabiliseras, vilket innebär att klustertilldelningarna för enskilda punkter inte längre ändras och algoritmen har konvergerat på en lösning.

  • Algoritmen slutförde körningen av det angivna antalet iterationer.

När du har slutfört träningsfasen använder du komponenten Tilldela data till kluster för att tilldela nya ärenden till ett av de kluster som du hittade med hjälp av K-means-algoritmen. Du utför klustertilldelning genom att beräkna avståndet mellan det nya ärendet och centroiden för varje kluster. Varje nytt ärende tilldelas klustret med närmaste centroid.

Konfigurera K-Means-klustringskomponenten

  1. Lägg till K-Means-klustringskomponenten i din pipeline.

  2. Om du vill ange hur du vill att modellen ska tränas väljer du alternativet Skapa träningsläge .

    • Enskild parameter: Om du känner till de exakta parametrar som du vill använda i klustringsmodellen kan du ange en specifik uppsättning värden som argument.
  3. För Antal centroider anger du det antal kluster som du vill att algoritmen ska börja med.

    Modellen är inte garanterad att producera exakt det här antalet kluster. Algoritmen börjar med det här antalet datapunkter och itererar för att hitta den optimala konfigurationen. Du kan referera till källkoden för sklearn.

  4. Egenskaperna Initiering används för att ange den algoritm som används för att definiera den inledande klusterkonfigurationen.

    • Första N: Ett visst initialt antal datapunkter väljs från datauppsättningen och används som första medel.

      Den här metoden kallas även forgy-metoden.

    • Slumpmässigt: Algoritmen placerar slumpmässigt en datapunkt i ett kluster och beräknar sedan det ursprungliga medelvärdet som centroid för klustrets slumpmässigt tilldelade punkter.

      Den här metoden kallas även för slumpmässig partitionsmetod .

    • K-Means++: Det här är standardmetoden för att initiera kluster.

      K-means++-algoritmen föreslogs 2007 av David Arthur och Sergej Vassilvitskii för att undvika dålig klustring med K-means-standardalgoritmen. K-means++ förbättrar standard-K-means genom att använda en annan metod för att välja de första klustercentren.

  5. Om du vill ange ett värde som ska användas som startvärde för klustrets initiering kan du välja att ange ett värde som ska användas som startvärde för klustret. Det här värdet kan ha en betydande effekt på valet av kluster.

  6. För Mått väljer du den funktion som ska användas för att mäta avståndet mellan klustervektorer eller mellan nya datapunkter och den slumpmässigt valda centroiden. Azure Machine Learning stöder följande mått för klusteravstånd:

    • Euklidiska: Det euklidiska avståndet används ofta som ett mått på klusterpunkt för K-means-klustring. Det här måttet rekommenderas eftersom det minimerar medelavståndet mellan punkter och centroider.
  7. För iterationer anger du hur många gånger algoritmen ska iterera över träningsdata innan valet av centroider slutförs.

    Du kan justera den här parametern för att balansera noggrannheten mot träningstiden.

  8. För Tilldela etikettläge väljer du ett alternativ som anger hur en etikettkolumn, om den finns i datauppsättningen, ska hanteras.

    Eftersom K-means-klustring är en oövervakad maskininlärningsmetod är etiketter valfria. Men om din datauppsättning redan har en etikettkolumn kan du använda dessa värden för att vägleda valet av kluster, eller så kan du ange att värdena ska ignoreras.

    • Ignorera etikettkolumn: Värdena i etikettkolumnen ignoreras och används inte för att skapa modellen.

    • Fyll saknade värden: Kolumnvärdena för etikett används som funktioner för att skapa klustren. Om några rader saknar en etikett imputeras värdet med hjälp av andra funktioner.

    • Skriv över från närmast mitten: Kolumnvärdena för etikett ersätts med förutsagda etikettvärden med hjälp av etiketten för den punkt som är närmast den aktuella centroiden.

  9. Välj alternativet Normalisera funktioner om du vill normalisera funktioner före träningen.

    Om du tillämpar normalisering normaliseras datapunkterna före träningen till [0,1] av MinMaxNormalizer.

  10. Träna modellen.

Resultat

När du har konfigurerat och tränat modellen har du en modell som du kan använda för att generera poäng. Det finns dock flera sätt att träna modellen och flera sätt att visa och använda resultaten:

Ta en ögonblicksbild av modellen på din arbetsyta

Om du använde komponenten Träna klustringsmodell :

  1. Välj komponenten Train Clustering Model (Träna klustringsmodell ) och öppna den högra panelen.

  2. Välj fliken Utdata . Välj ikonen Registrera datauppsättning för att spara en kopia av den tränade modellen.

Den sparade modellen representerar träningsdata när du sparade modellen. Om du senare uppdaterar träningsdata som används i pipelinen uppdateras inte den sparade modellen.

Se datauppsättningen för klustringsresultat

Om du använde komponenten Träna klustringsmodell :

  1. Högerklicka på komponenten Train Clustering Model (Träna klustringsmodell ).

  2. Välj Visualisera.

Tips för att generera den bästa klustringsmodellen

Det är känt att seeding-processen som används under klustring kan påverka modellen avsevärt. Seeding innebär den inledande placeringen av punkter i potentiella centroider.

Om datamängden till exempel innehåller många extremvärden och en extremavvikelse väljs för att seeda klustren, skulle inga andra datapunkter passa bra med klustret och klustret kan vara en singleton. Det vill säger, det kanske bara har en poäng.

Du kan undvika det här problemet på ett par olika sätt:

  • Ändra antalet centroider och prova flera startvärdesvärden.

  • Skapa flera modeller, varierande mått eller iterera mer.

I allmänhet, med klustringsmodeller, är det möjligt att en viss konfiguration resulterar i en lokalt optimerad uppsättning kluster. Med andra ord passar den uppsättning kluster som returneras av modellen endast de aktuella datapunkterna och är inte generaliserbar för andra data. Om du använder en annan inledande konfiguration kan K-means-metoden hitta en annan, överlägsen konfiguration.

Nästa steg

Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.