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 datamängder innan du använder andra klassificerings- eller regressionsmetoder.
Om du vill skapa en klustringsmodell kan du:
- Lägg till den här komponenten i pipelinen.
- 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 grupper ä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 enkelt observera. Av dessa skäl används klustring ofta i de tidiga faserna av maskininlärningsuppgifter, för att utforska data och upptäcka 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 den bearbetar träningsdata börjar K-means-algoritmen med en första uppsättning slumpmässigt valda centroider. Centroider fungerar som utgångspunkter 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 dessa 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
Lägg till K-Means Clustering-komponenten i din pipeline.
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.
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.
Initieringen av egenskaperna 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 det första sättet.
Den här metoden kallas även forgy-metoden.
Slumpmässig: Algoritmen placerar slumpmässigt en datapunkt i ett kluster och beräknar sedan det första medelvärdet till centroiden för klustrets slumpmässigt tilldelade punkter.
Den här metoden kallas även för metoden för slumpmässig partition .
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.
För Slumptalsutsäde kan du ange ett värde som ska användas som startvärde för klusterinitiering. Det här värdet kan ha en betydande effekt på valet av kluster.
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 klusterdistansmått:
- Euklidiska: Det euklidiska avståndet används ofta som ett mått på klusterspridare för K-means-klustring. Det här måttet är att föredra eftersom det minimerar medelvärdet mellan punkter och centroider.
För iterationer anger du hur många gånger algoritmen ska iterera över träningsdata innan den slutför valet av centroider.
Du kan justera den här parametern för att balansera noggrannhet mot träningstid.
För Tilldela etikettläge väljer du ett alternativ som anger hur en etikettkolumn, om den finns i datamängden, 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 styra 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: Etikettkolumnvärdena 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: Etikettkolumnvärdena ersätts med förutsagda etikettvärden med hjälp av etiketten för den punkt som är närmast den aktuella centroiden.
Välj alternativet Normalisera funktioner om du vill normalisera funktioner före träning.
Om du tillämpar normalisering normaliseras datapunkterna före träningen till
[0,1]
av MinMaxNormalizer.Träna modellen.
- Om du anger Skapa träningsläge till Enskild parameter lägger du till en taggad datauppsättning och tränar modellen med hjälp av komponenten Träna klustringsmodell .
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 på och flera sätt att visa och använda resultaten:
Samla in en ögonblicksbild av modellen på din arbetsyta
Om du använde komponenten Träna klustringsmodell :
Välj komponenten Träna klustermodell och öppna den högra panelen.
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 :
Högerklicka på komponenten Träna klustringsmodell .
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 avvikande värden och en extremvärden väljs för att seeda klustren skulle inga andra datapunkter passa bra med klustret och klustret kan vara en singleton. Den kanske bara har en poäng.
Du kan undvika det här problemet på ett par sätt:
Ändra antalet centroider och prova flera startvärden.
Skapa flera modeller, variera måttet eller iterera mer.
Med klustringsmodeller är det i allmänhet 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 kan inte generaliseras till 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.