Datautvinningsmetoder. Klusteranalys är en algoritm för att studera data indelade i grupper enligt liknande egenskaper.

Användningen av moderna praktiska metoder för dataanalys och erkännande är efterfrågad inom tekniska och humanitära områden, inom vetenskap och produktion, näringsliv och finans. Denna beskrivning presenterar den huvudsakliga algoritmiska essensen, vars förståelse är användbar för mer effektiv användning av igenkännings- och klassificeringsmetoder i dataanalys.

1. Uppgiften att erkänna (klassificering med en lärare) och den senaste tekniken inom området praktiska metoder för dess lösning. Huvudstadierna i utvecklingen av teorin och praktiken för erkännande: skapandet av heuristiska algoritmer, igenkänningsmodeller och modelloptimering, en algebraisk metod för modellkorrigering. De huvudsakliga tillvägagångssätten är baserade på konstruktionen av separerande ytor, potentiella funktioner, statistiska och neurala nätverksmodeller som löser träd och andra.

De viktigaste tillvägagångssätten och algoritmerna för kombinatoriska-logiska igenkänningsmetoder (modeller för beräkning av uppskattningar eller algoritmer baserade på principen om partiell företräde) utvecklade vid Computing Center vid den ryska vetenskapsakademin. A.A. Dorodnitsyn. Dessa modeller är baserade på idén om att söka efter viktiga partiella prejudikat i funktionsbeskrivningar av originaldata (informativa fragment av funktionsvärden eller representativa uppsättningar). För verkliga funktioner hittas optimala stadsdelar av informativa fragment. I en annan terminologi kallas dessa delfall kunskap eller logiska mönster som relaterar värdena för de ursprungliga egenskaperna till ett igenkännbart eller förutsägbart värde. Den hittade kunskapen är viktig information om de studerade klasserna (bilderna) av föremål. De används direkt för att lösa problem med igenkänning eller prognoser, de ger en visuell representation av de ömsesidiga beroenden som finns i dessa data, vilket är av oberoende värde för forskare och kan tjäna som grund för det efterföljande skapandet av korrekta modeller av objekten, situationerna , fenomen eller processer som studeras. Baserat på den hittade kunskapsmassan beräknas också värdena för sådana användbara kvantiteter som graden av betydelse (informativitet) av funktioner och objekt, logiska korrelationer av funktioner och logiska beskrivningar av klasser av objekt, och problemet med funktionsutrymme minimering är löst.

2. Metoder för att lösa huvudproblemet med klusteranalys (klassificering utan lärare) - hitta grupperingar av objekt (kluster) i ett givet urval av flerdimensionell data. En kort genomgång av de huvudsakliga tillvägagångssätten för att lösa problemet med klusteranalys och en beskrivning av kommittémetoden för att syntetisera kollektiva lösningar ges.

3. Mjukvarusystem för datautvinning, igenkänning och prognoser RECOGNITION. Kraven på systemet bygger på idéerna om universalitet och intelligens. Systemets universalitet förstås som möjligheten av dess tillämpning på det bredaste möjliga utbudet av uppgifter (när det gäller dimensioner, typ, kvalitet och struktur av data, i termer av beräknade värden). Intelligens förstås som närvaron av självjusterande element och förmågan att framgångsrikt automatiskt lösa problem av en okvalificerad användare. Inom ramen för RECOGNITION System har ett bibliotek av program utvecklats som implementerar linjära, kombinatoriskt-logiska, statistiska, neurala nätverk, hybridmetoder för att prognostisera, klassificera och utvinna kunskap från prejudikat samt kollektiva prognos- och klassificeringsmetoder.


1. Igenkänningsalgoritmer baserade på beräkning av uppskattningar. Igenkänning utförs på grundval av en jämförelse av det erkända objektet med referensobjekten enligt olika uppsättningar av funktioner, och användningen av röstningsförfaranden. De optimala parametrarna för beslutsregeln och röstningsförfarandet hittas från lösningen av problemet med att optimera igenkänningsmodellen - sådana parametervärden bestäms för vilka igenkänningsnoggrannheten (antalet korrekta svar i träningsprovet) är maximal .

2. Algoritmer för att rösta på återvändsgrändtester. Jämförelse av det igenkända objektet med referensobjekten utförs enligt olika "informativa" undergrupper av funktioner. Dead-end-tester (eller analoger till återvändsgrändtester för verkliga egenskaper) av olika slumpmässiga deltabeller i den ursprungliga malltabellen används som sådana funktionsdelsystem.

Baserat på träningsprovet beräknas uppsättningar av logiska mönster för varje klass - uppsättningar av funktioner och intervall för deras värden som är karakteristiska för varje klass. När man känner igen ett nytt objekt, beräknas antalet logiska mönster för varje klass som exekveras på det igenkända objektet. Varje enskild "avrättning" räknas som en "röst" till förmån för respektive klass. Objektet tillhör klassen, vars normaliserade antal "röster" är det maximala. Den här metoden låter dig utvärdera funktionsvikt, logiska korrelationer av funktioner, bygga logiska beskrivningar av klasser och hitta minimala funktionsunderrymder.

4. Algoritmer för statistiskt viktad röstning.

Baserat på data från träningsprovet hittas statistiskt motiverade logiska mönster av klasser. Vid igenkänning av nya objekt beräknas en uppskattning av sannolikheten för att objektet tillhör var och en av klasserna, vilket är en viktad summa av "röster".

5. Linjär maskin.

För varje klass av objekt hittas någon linjär funktion. Det igenkända objektet tillhör klassen vars funktion tar maxvärdet på det givna objektet. Klassernas optimala linjära funktioner hittas som ett resultat av att lösa problemet med att hitta det maximala gemensamma delsystemet i systemet med linjära ojämlikheter, som bildas från träningsprovet. Som ett resultat hittas en speciell bitvis linjär yta som korrekt separerar det maximala antalet träningsprovelement.

6. Fishers linjära diskriminant.

Klassisk statistisk metod för att konstruera bitvis linjära ytor som skiljer klasser. Gynnsamma villkor för tillämpligheten av Fishers linjära diskriminant är uppfyllandet av följande faktorer: linjär separerbarhet av klasser, dikotomi, "enkel struktur" av klasser, icke-degeneration av kovariansmatriser, frånvaro av extremvärden. Den skapade modifieringen av Fishers linjära diskriminant gör det möjligt att framgångsrikt använda den i "ogynnsamma" fall.

7. Metod för k-närmaste grannar.

Klassisk statistisk metod. Ett igenkännbart objekt tillhör den klass från vilken det har det maximala antalet grannar. Det optimala antalet grannar och a priori klasssannolikheter uppskattas från träningsprovet.

8. Neural nätverksigenkänningsmodell med ryggutbredning

En modifiering av den välkända metoden för att träna ett neuralt nätverk i mönsterigenkänning (backpropagation method) har skapats. Som ett kriterium för kvaliteten på de nuvarande parametrarna i det neurala nätverket används ett hybridkriterium som tar hänsyn till både summan av de kvadrerade avvikelserna av värdena för utsignalerna från de nödvändiga och antalet felklassificeringar på träningssetet.

9.Stöd vektor maskin.

En metod för att konstruera en icke-linjär separerande yta med användning av stödvektorer. I det nya särdragsutrymmet (uppriktarutrymmet) byggs en skiljeyta som är nära linjär. Konstruktionen av denna yta reduceras till att lösa ett kvadratiskt programmeringsproblem.

10. Algoritmer för att lösa problem med igenkänning av team av olika igenkänningsalgoritmer.

Igenkänningsproblemet löses i två steg. Först tillämpas olika algoritmer för systemet oberoende av varandra. Därefter hittas en automatiskt optimal kollektiv lösning med hjälp av speciella metoder - "korrigerare". Olika tillvägagångssätt används som korrigerande metoder.

11. Metoder för klusteranalys (automatisk klassificering eller oövervakat lärande).

Följande kända tillvägagångssätt används:

Hierarkiska grupperingsalgoritmer;

Klustring med kriteriet att minimera summan av kvadrerade avvikelser;

k-betyder metod.

Det är möjligt att lösa klassificeringsproblemet både för ett givet och ett okänt antal klasser.

12. Algoritm för att konstruera kollektiva lösningar av klassificeringsproblemet.

Klassificeringsproblemet löses i två steg. Först är det ett set olika lösningar(i form av beläggningar eller partitioner) med ett fast antal klasser som använder olika algoritmer i systemet. Därefter hittas den optimala kollektiva klassificeringen som ett resultat av att lösa ett speciellt diskret optimeringsproblem.

Hem > Föreläsning

Ämne 7.KLASSIFICERINGSANALYS

Föreläsning nr 9

1. Undersökande dataanalys. Måttvågar

2. Klassificeringsträd

3. Diskriminerande analys (tränad klassificering)

4. Klusteranalys (klassificering utan utbildning)

5. Kanoniska korrelationer

1. Undersökande dataanalys. Måttvågar

I närvaro av ett stort antal variabler och avsaknad av information om samband och mönster, är ett av de första stegen för att analysera tillgängliga data den så kallade utforskande dataanalysen. Som regel tar explorativ analys hänsyn till och jämför ett stort antal variabler, och för sökning, klassificering och skalning av variabler genomförs. Variabler skiljer sig åt i hur väl de kan mätas, eller, med andra ord, hur mycket mätbar information deras mätskala ger. En annan faktor som avgör mängden information är vilken typ av skala som mätningen görs på. Vanligtvis används följande typer av mätskalor: nominella, ordinala, intervall och relativa. Nominella variabler används endast för kvalitativ klassificering. Detta innebär att dessa variabler endast kan mätas i termer av att de tillhör några signifikant olika klasser. Ett typiskt exempel på nominella variabler är tillverkaren, typen av produkt, tecknet på dess lämplighet etc. Ofta kallas nominella variabler kategoriska. Ordinalvariabler tillåta att rangordna objekt, om det anges vilka av dem som har den kvalitet som uttrycks av denna variabel i större eller mindre utsträckning. Men de tillåter inte en att bedöma hur mycket mer eller hur mycket mindre av en given kvalitet som finns i en variabel. Ett typiskt exempel är sortering av varor: högst, första, andra, tredje. Samma produkt skiljer sig kvalitativt, men det är omöjligt att säga att skillnaden mellan dem är 25%. Kategoriska och ordinalvariabler är särskilt vanliga när man ifrågasätter, till exempel ändra och jämföra skillnaderna mellan dem. Ett exempel - temperaturen, mätt i grader, bildar en intervallskala, eftersom det är möjligt att utvärdera skillnaden i variabler redan i numerisk form (40 grader mer än 30 gånger 10). Intervallskalan kan lätt översättas till en ordinalskala om vi tar några värden på variablerna som gränserna för olika klasser (till exempel är det varmt eller varmt ute i en månad, tar gränsen mellan klasserna "varmt" och "het" i värdet av variabeln, men deras egenskap är närvaron av en viss punkt absolut noll.Som regel är dessa kontinuerliga variabler. 2. Klassificeringsträd Klassificering Träd är en metod som låter en förutsäga observationers eller objekts tillhörighet till en eller annan klass av en kategorisk beroende variabel, beroende på motsvarande värden för en eller flera prediktorvariabler. Byggnad klassificeringsträd- en av de hierarkiska myntsorteringsanordningarna. Låt oss få mynten att rulla längs en smal ränna, i vilken en skåra som är lika stor som ett enkopecksmynt skärs. Om myntet föll i springan är detta 1 kopek; annars fortsätter den att rulla längre längs rännan och snubblar på en fack för ett tvåkopekmynt; om det misslyckas där, så är det 2 kopek, om inte (vilket betyder att det är 3 eller 5 kopek), kommer det att rulla vidare, och så vidare. Därför har vi byggt ett klassificeringsträd. Beslutsregeln som implementeras i detta klassificeringsträd tillåter effektiv sortering av en handfull mynt och är generellt tillämplig på ett brett spektrum av klassificeringsproblem. Klassificeringsträd är idealiskt lämpade för grafisk representation, och därför är slutsatserna från dem mycket lättare att tolka än om de endast presenterades i numerisk form. Hierarkisk struktur klassificeringsträd- en av byggprocessen klassificeringsträd består av fyra huvudsteg:

    Val av kriteriet för prognosnoggrannhet

    Val av grentyp

    Att bestämma när man ska sluta grena

    Bestämma "lämpliga" trädstorlekar

I slutändan är målet med analys med klassificeringsträd att få en så exakt förutsägelse som möjligt. Flest klassificeringar.

3. Diskriminerande analys (tränad klassificering)

Diskriminerande analys används för att avgöra vilken klass (grupp) som ska tillskrivas detta eller det objektet (processen) baserat på studiet av dess parametrar eller egenskaper.) av produkten och uppgiften är att fastställa vilken av parametrarna som bidrar till skillnaden ( diskriminering) mellan separat grupperade aggregat (kvaliteter) av varor som utgör den allmänna befolkningen. Därefter tas ett beslut om denna produkt tillhör en viss grupp. Därför är denna typ av statistisk analys multivariat och huvudidén med diskriminantanalys är att avgöra om populationer skiljer sig åt i medelvärdet av någon parameter (variabel), och sedan använda denna variabel för att förutsäga nya medlemmar av deras domäner. Vart och ett av områdena skiljer sig från det andra genom värdet av en viss parameter (eller snarare genom värdet på dess medelvärde) eller uppsättningar av parametrar som tas som en klassificeringsfunktion. Diskrimineringsregeln är vald i enlighet med en viss princip om optimalitet, till exempel minsta sannolikheten för falsk klassificering. I praktiska beräkningar flyttas distinktionerna från egenskapsvektorn till linjär funktion(diskriminantfunktion), som för två grupper (klasser) har formen av en linjär multipel regressionsekvation, där de kodade tecknen för distinktion i grupper fungerar som beroende variabler. Om det finns fler än två grupper kan mer än en diskriminantfunktion vara sammansatt. Till exempel, när det finns tre populationer, är det möjligt att utvärdera: (1) - Funktionen för diskrimineringskänsla är mycket lik multivariat variansanalys. När diskriminerande funktioner erhålls uppstår frågan om hur väl de kan förutspå, vilken population tillhör ett visst urval? För detta bestäms klassificeringsindikatorer eller klassificeringsfunktioner och nästa observation eller ett specifikt urval tilldelas den grupp för vilken klassificeringsgruppen har störst värde. 4. Klusteranalys (klassificering utan utbildning) Klusteranalys är en statistisk metod som inkluderar en uppsättning olika algoritmer för att fördela objekt i kluster (kluster - gäng, ackumulering). Partitionering av objekt H i ett heltal av kluster K, så att varje objekt tillhör en och endast en delmängd av partitionen. Samtidigt måste objekt som tillhör samma kluster vara lika, och objekt som tillhör olika kluster måste vara heterogena. Lösningen på problemet med klusteranalys är partitioner som uppfyller optimalitetskriteriet. Detta kriterium kallas den objektiva funktionen, som t.ex. kan vara minimum av summan av kvadratiska avvikelser av egenskaperna hos gruppobjekten från medelvärdet

min Σ(x i – x cf) 2

Likheten och heterogeniteten hos objekt i grupper kommer att kännetecknas av ett visst värde, som fick namnet - avståndsfunktionen. Ju större avståndsfunktionen är mellan objekt, desto mer heterogena är de. Det är klart att om denna funktion överskrider en viss gräns, så ska objekten relateras till olika grupper(kluster). Beroende på vilken klustringsalgoritm som används särskiljs följande avståndsfunktioner: - Euklidisk metrisk (Σx i – xj) 2) 1/2 ; - Manhattan avstånd Σ|x i – x j |; - Chebyshev-avstånd max|x i – x j |, etc. betraktas som separata kluster. Vidare, vid varje steg i algoritmen, kombineras de två närmaste klustren, och, med hänsyn till den antagna avståndsfunktionen, räknas alla avstånd om enligt formeln. När målfunktionen uppnås stoppas iterationerna. 5. Kanoniska korrelationer Klassisk korrelationsanalys låter dig hitta statistiska samband mellan två variabler, de så kallade två uppsättningarna av variabler använder metoderna för kanonisk analys. Kanonisk analys, som är en generalisering av multipelkorrelation som ett mått på sambandet mellan en slumpvariabel och många andra slumpvariabler, tar hänsyn till förhållandet mellan uppsättningar av slumpvariabler. Samtidigt är det begränsat till att överväga ett litet antal av de mest korrelerade linjära kombinationerna från varje uppsättning. Analysen av kanonisk korrelation baseras på användningen av kanoniska rötter eller kanoniska variabler, som betraktas som "dolda" variabler som kännetecknar de observerade fenomenen. Antalet kanoniska rötter är lika med antalet variabler i den mindre mängden. I praktiken, när man bestämmer den kanoniska korrelationen, byggs en separat korrelationsmatris, som är produkten av standardkorrelationsmatriser som kännetecknar beroenden mellan två individuella variabler. Sedan beräknas lika många egenvärden för den resulterande matrisen som det finns kanoniska rötter. Om vi ​​tar kvadratroten av de erhållna egenvärdena får vi en uppsättning tal som kan tolkas som korrelationskoefficienter. Eftersom de är kanoniska variabler kallas de också för kanoniska korrelationer. Arbetet med diskriminant-, kluster- och kanonanalys bör utvärderas med hjälp av speciella statistiska paket som implementerar dessa algoritmer på en dator.

Klusteranalys är

God dag. Här har jag respekt för människor som är fans av sitt arbete.

Maxim, min vän, tillhör denna kategori. Arbetar ständigt med siffror, analyserar dem, gör relevanta rapporter.

Igår åt vi lunch tillsammans, så i nästan en halvtimme berättade han om klusteranalys - vad det är och i vilka fall är dess tillämpning rimlig och ändamålsenlig. Hur är det med mig?

Jag har ett bra minne, så jag kommer att förse dig med all denna information, förresten, som jag redan kände till i sin ursprungliga och mest informativa form.

Klusteranalys är utformad för att dela upp en uppsättning objekt i homogena grupper (kluster eller klasser). Detta är en uppgift för multivariat dataklassificering.

Det finns cirka 100 olika klusteralgoritmer, men de vanligaste är hierarkisk klusteranalys och k-medelkluster.

Var används klusteranalys? Inom marknadsföring är detta segmenteringen av konkurrenter och konsumenter.

I ledningen: indelning av personal i grupper med olika motivationsnivåer, klassificering av leverantörer, identifiering av liknande produktionssituationer där äktenskap förekommer.

Inom medicin, klassificeringen av symtom, patienter, droger. Inom sociologi, uppdelningen av respondenter i homogena grupper. Faktum är att klusteranalys har visat sig väl på alla sfärer av mänskligt liv.

charm den här metoden- det fungerar även när det finns lite data och kraven på normaliteten för distributioner av slumpvariabler och andra krav för klassiska metoder för statistisk analys inte är uppfyllda.

Låt oss förklara kärnan i klusteranalys utan att tillgripa strikt terminologi:
Låt oss säga att du har genomfört en undersökning av anställda och vill avgöra hur du mest effektivt kan hantera din personal.

Det vill säga att du vill dela in anställda i grupper och välja de mest effektiva kontrollspakarna för var och en av dem. Samtidigt ska skillnaderna mellan grupper vara uppenbara och inom gruppen ska respondenterna vara så lika som möjligt.

För att lösa problemet föreslås att man använder hierarkisk klusteranalys.

Som ett resultat kommer vi att få ett träd, som tittar på vilket vi måste bestämma hur många klasser (kluster) vi vill dela upp personalen i.

Anta att vi bestämmer oss för att dela upp personalen i tre grupper, för att sedan studera respondenterna som föll i varje kluster får vi en surfplatta med följande innehåll:


Låt oss förklara hur tabellen ovan bildas. Den första kolumnen innehåller klustrets nummer — gruppen vars data återspeglas i raden.

Till exempel är det första klustret 80 % män. 90 % av det första klustret faller i åldersgruppen 30 till 50 år och 12 % av de tillfrågade anser att förmåner är mycket viktiga. Etc.

Låt oss försöka göra porträtt av respondenter från varje kluster:

  1. Den första gruppen är mest män. medelålders innehar ledande positioner. Det sociala paketet (MED, LGOTI, TID-fri tid) intresserar dem inte. De föredrar att få en bra lön, snarare än hjälp från arbetsgivaren.
  2. Grupp två, tvärtom, föredrar det sociala paketet. Den består huvudsakligen av "åldrade" personer som har låga positioner. Lönen är säkert viktigt för dem, men det finns andra prioriteringar.
  3. Den tredje gruppen är den "yngsta". Till skillnad från de två tidigare finns det ett uppenbart intresse för lärande och möjligheter till professionell utveckling. Denna kategori av anställda har god chans snart fylla på den första gruppen.

Därför planerar en kampanj att införa effektiva metoder personalförvaltning är det uppenbart att det i vår situation är möjligt att höja det sociala paketet för den andra gruppen till nackdel för exempelvis lönerna.

Om vi ​​pratar om vilka specialister som ska skickas för utbildning, kan vi definitivt rekommendera att uppmärksamma den tredje gruppen.

Källa: http://www.nickart.spb.ru/analysis/cluster.php

Funktioner i klusteranalys

Ett kluster är priset på en tillgång under en viss tidsperiod under vilken transaktioner gjordes. Den resulterande inköps- och försäljningsvolymen indikeras med ett nummer inom klustret.

Stapeln för vilken TF som helst innehåller som regel flera kluster. Detta gör att du i detalj kan se inköpsvolymer, försäljning och deras saldo i varje enskild stapel, för varje prisnivå.


En förändring i priset på en tillgång medför oundvikligen en kedja av prisrörelser även på andra instrument.

Uppmärksamhet!

I de flesta fall sker förståelsen av trendrörelsen redan i det ögonblick då den utvecklas snabbt, och att komma in på marknaden längs trenden är fylld med att falla in i en korrigerande våg.

För framgångsrika affärer är det nödvändigt att förstå den nuvarande situationen och kunna förutse framtida prisrörelser. Detta kan man lära sig genom att analysera klusterdiagrammet.

Med hjälp av klusteranalys kan du se marknadsaktörernas aktivitet även i den minsta prisstapeln. Detta är den mest exakta och detaljerade analysen, eftersom den visar punktfördelningen av transaktionsvolymer för varje tillgångsprisnivå.

På marknaden finns en ständig konfrontation mellan säljarnas och köparens intressen. Och varje minsta prisrörelse (tick) är övergången till en kompromiss - prisnivån - som i det här ögonblicket passar båda parter.

Men marknaden är dynamisk, antalet säljare och köpare förändras ständigt. Om marknaden vid en tidpunkt dominerades av säljare, kommer det i nästa ögonblick troligen att finnas köpare.

Antalet genomförda transaktioner på angränsande prisnivåer är inte heller detsamma. Och ändå, för det första, återspeglas marknadssituationen i den totala volymen av transaktioner, och först då på priset.

Om du ser de dominerande marknadsaktörernas agerande (säljare eller köpare) kan du förutsäga själva prisrörelsen.

För att framgångsrikt tillämpa klusteranalys måste du först förstå vad ett kluster och ett delta är.


Ett kluster kallas en prisrörelse, som delas in i nivåer där transaktioner gjordes med kända volymer. Deltat visar skillnaden mellan köp och försäljning som förekommer i varje kluster.

Varje kluster, eller grupp av delta, låter dig ta reda på om köpare eller säljare dominerar marknaden vid en given tidpunkt.

Det räcker bara att beräkna det totala deltat genom att summera försäljningen och köpen. Om deltat är negativt är marknaden översåld, det finns överflödiga säljtransaktioner. När deltat är positivt domineras marknaden klart av köpare.

Själva deltat kan anta ett normalt eller kritiskt värde. Värdet på deltavolymen över normalvärdet i klustret är markerat i rött.

Om deltat är måttligt, kännetecknar detta ett platt tillstånd på marknaden. Med ett normalt deltavärde observeras en trendrörelse på marknaden, men ett kritiskt värde är alltid ett förebud om en prisvändning.

Forex trading med CA

För att få maximal vinst du måste kunna bestämma övergången av delta från en måttlig nivå till en normal. I det här fallet kan du faktiskt lägga märke till början av övergången från en platt till en trendrörelse och kunna få mest vinst.

Klusterdiagrammet är mer visuellt, på det kan du se betydande nivåer av ackumulering och distribution av volymer, byggstöd och motståndsnivåer. Detta gör att handlaren kan hitta den exakta ingången till handeln.

Med hjälp av deltat kan man bedöma dominansen av försäljning eller köp på marknaden. Med klusteranalys kan du observera transaktioner och spåra deras volymer i fältet för vilken TF som helst.

Detta är särskilt viktigt när man närmar sig betydande stöd- eller motståndsnivåer. Klusterbedömningar är nyckeln till att förstå marknaden.

Källa: http://orderflowtrading.ru/analitika-rynka/obemy/klasternyy-analiz/

Områden och funktioner för tillämpning av klusteranalys

Termen klusteranalys (först introducerad av Tryon, 1939) inkluderar faktiskt en uppsättning olika klassificeringsalgoritmer.

En vanlig fråga som ställs av forskare inom många områden är hur man organiserar observerade data i visuella strukturer, d.v.s. utöka taxonomier.

Enligt det moderna systemet som accepteras inom biologin tillhör människan primater, däggdjur, fostervatten, ryggradsdjur och djur.

Observera att i denna klassificering, ju högre aggregeringsnivå, desto mindre likhet mellan medlemmar i motsvarande klass.

Människan har fler likheter med andra primater (d.v.s. apor) än med "fjärran" medlemmar av däggdjursfamiljen (dvs. hundar) och så vidare.

Observera att den tidigare diskussionen hänvisar till klustringsalgoritmer, men nämner ingenting om testning för statistisk signifikans.

Faktum är att klusteranalys inte så mycket är en vanlig statistisk metod som en "uppsättning" av olika algoritmer för att "fördela objekt till kluster".

Det finns en synpunkt att, till skillnad från många andra statistiska procedurer, används klusteranalysmetoder i de flesta fall när man inte har några a priori-hypoteser om klasserna, men fortfarande befinner sig i det beskrivande skedet av studien.

Uppmärksamhet!

Det bör förstås att klusteranalys avgör det "mest möjligen meningsfulla beslutet".

Testning för statistisk signifikans är därför inte riktigt tillämpbar här, även i de fall där p-nivåer är kända (som t.ex. i K-means-metoden).

Klustringstekniken används inom en mängd olika områden. Hartigan (1975) har gett en utmärkt översikt över de många publicerade studierna som innehåller resultat erhållna med klusteranalysmetoder.

Till exempel, inom medicinområdet leder klustringen av sjukdomar, behandling av sjukdomar eller symtom på sjukdomar till allmänt använda taxonomier.

Inom psykiatrin är korrekt diagnos av symtomkluster som paranoia, schizofreni etc. avgörande för framgångsrik terapi. Inom arkeologin, med hjälp av klusteranalys, försöker forskare fastställa taxonomier för stenverktyg, begravningsobjekt, etc.

Utbredda tillämpningar av klusteranalys är kända i marknadsundersökning. I allmänhet, närhelst det är nödvändigt att klassificera "berg" av information i grupper som är lämpliga för vidare bearbetning, visar sig klusteranalys vara mycket användbar och effektiv.

Klustring av träd

Exemplet i avsnittet Primary Purpose förklarar syftet med join (trädklustring)-algoritmen.

Syftet med denna algoritm är att kombinera objekt (till exempel djur) till tillräckligt stora kluster med hjälp av något mått av likhet eller avstånd mellan objekt. Ett typiskt resultat av sådan klustring är ett hierarkiskt träd.

Tänk på ett horisontellt träddiagram. Diagrammet börjar med varje objekt i klassen (på vänster sida av diagrammet).

Föreställ dig nu att du gradvis (i mycket små steg) "försvagar" ditt kriterium för vilka föremål som är unika och vad som inte är det.

Med andra ord sänker du tröskeln för beslutet att kombinera två eller flera objekt till ett kluster.

Som ett resultat länkar du fler och fler objekt ihop och aggregerar (kombinerar) fler och fler kluster av allt mer olika element.

Slutligen, i det sista steget, slås alla objekt samman. I dessa diagram representerar de horisontella axlarna poolningsavståndet (i vertikala dendrogram representerar de vertikala axlarna poolningsavståndet).

Så för varje nod i grafen (där ett nytt kluster bildas) kan du se mängden avstånd för vilket motsvarande element är länkade till ett nytt enskilt kluster.

När data har en tydlig "struktur" i form av kluster av objekt som liknar varandra, då kommer denna struktur sannolikt att återspeglas i det hierarkiska trädet av olika grenar.

Som ett resultat av framgångsrik analys med joinmetoden blir det möjligt att upptäcka kluster (grenar) och tolka dem.

Förenings- eller trädklustringsmetoden används vid bildandet av kluster av olikhet eller avstånd mellan objekt. Dessa avstånd kan definieras i endimensionell eller flerdimensionell rymd.

Till exempel, om du måste gruppera typer av mat på ett kafé, kan du ta hänsyn till antalet kalorier som finns i det, priset, den subjektiva bedömningen av smak, etc.

Det mest direkta sättet att beräkna avstånd mellan objekt i ett flerdimensionellt utrymme är att beräkna euklidiska avstånd.

Om du har ett 2D- eller 3D-utrymme, är detta mått det faktiska geometriska avståndet mellan objekt i rymden (som om avstånden mellan objekten mättes med ett måttband).

Poolningsalgoritmen "bryr sig" dock inte om huruvida avstånden "tillhandahålls" för det är verkliga eller några andra härledda avståndsmått, vilket är mer meningsfullt för forskaren; och utmaningen för forskare är att välja rätt metod för specifika tillämpningar.

Euklidiskt avstånd. Detta verkar vara den vanligaste typen av distans. Det är helt enkelt ett geometriskt avstånd i flerdimensionellt utrymme och beräknas enligt följande:

Observera att det euklidiska avståndet (och dess kvadrat) beräknas från originaldata, inte från standardiserade data.

Detta är det vanliga sättet att beräkna det, vilket har vissa fördelar (till exempel ändras inte avståndet mellan två objekt när ett nytt objekt introduceras i analysen, vilket kan visa sig vara en extremvärde).

Uppmärksamhet!

Avstånden kan dock påverkas mycket av skillnader mellan de axlar från vilka avstånden beräknas. Till exempel, om en av axlarna mäts i centimeter och sedan omvandlar den till millimeter (genom att multiplicera värdena med 10), kommer det slutliga euklidiska avståndet (eller kvadraten på det euklidiska avståndet) beräknat från koordinaterna förändras dramatiskt, och som ett resultat av detta kan resultaten av klusteranalysen skilja sig mycket från de tidigare.

Det euklidiska avståndets kvadrat. Ibland kanske du vill kvadratisera det euklidiska standardavståndet för att ge mer vikt åt mer avlägsna föremål.

Detta avstånd beräknas enligt följande:

Stadsblocksavstånd (Manhattan-avstånd). Detta avstånd är helt enkelt medelvärdet av skillnaderna över koordinaterna.

I de flesta fall leder detta avståndsmått till samma resultat som för det vanliga euklidiska avståndet.

Notera dock att för detta mått minskar inflytandet från individuella stora skillnader (utliggare) (eftersom de inte är kvadratiska). Manhattan-avståndet beräknas med formeln:

Chebyshev avstånd. Detta avstånd kan vara användbart när man vill definiera två objekt som "olika" om de skiljer sig åt i en koordinat (vilken som helst dimension). Chebyshev-avståndet beräknas med formeln:

Kraftavstånd. Det är ibland önskvärt att gradvis öka eller minska vikten relaterad till en dimension för vilken motsvarande föremål är mycket olika.

Detta kan uppnås med hjälp av ett kraftlagsavstånd. Effektavståndet beräknas med formeln:

där r och p är användardefinierade parametrar. Några exempel på beräkningar kan visa hur denna åtgärd "fungerar".

Parametern p är ansvarig för den gradvisa viktningen av skillnader i individuella koordinater, parametern r är ansvarig för den progressiva viktningen av stora avstånd mellan objekt. Om båda parametrarna - r och p, är lika med två, så sammanfaller detta avstånd med det euklidiska avståndet.

Procentandelen av oenighet. Detta mått används när uppgifterna är kategoriska. Detta avstånd beräknas med formeln:

Föreningens eller föreningens regler

I det första steget, när varje objekt är ett separat kluster, bestäms avstånden mellan dessa objekt av det valda måttet.

Men när flera objekt länkas samman uppstår frågan, hur ska avstånden mellan kluster bestämmas?

Med andra ord behöver du en join- eller länkregel för två kluster. Det finns olika möjligheter här: till exempel kan du länka samman två kluster när två objekt i de två klustren är närmare varandra än motsvarande länkavstånd.

Med andra ord, du använder "närmaste granne-regeln" för att bestämma avståndet mellan kluster; denna metod kallas singellänkmetoden.

Denna regel bygger "fibrösa" kluster, d.v.s. kluster "sammankopplade" endast av enskilda element som råkar vara närmare varandra än de andra.

Alternativt kan du använda grannar i kluster som är längst ifrån varandra av alla andra funktionspar. Denna metod kallas den fullständiga länkmetoden.

Det finns också många andra metoder för att sammanfoga kluster, liknande de som har diskuterats.

Enkel anslutning (närmaste granne metod). Som beskrivits ovan, i denna metod, bestäms avståndet mellan två kluster av avståndet mellan de två närmaste objekten (närmaste grannar) i olika kluster.

Denna regel måste, på sätt och vis, stränga objekt tillsammans för att bilda kluster, och de resulterande klustren tenderar att representeras av långa "strängar".

Full anslutning (metod för de mest avlägsna grannarna). I denna metod definieras avstånden mellan kluster som det största avståndet mellan två objekt i olika kluster (d.v.s. "mest avlägsna grannar").

Oviktad parvis medelvärde. I denna metod beräknas avståndet mellan två olika kluster som medelavståndet mellan alla par av objekt i dem.

Metoden är effektiv när objekt faktiskt bildar olika "lundar", men den fungerar lika bra i fall av utökade ("kedja"-typ) kluster.

Notera att Sneath och Sokal (1973) i sin bok introducerar förkortningen UPGMA för att hänvisa till denna metod som den ovägda par-gruppmetoden med aritmetiska medelvärden.

Vägt parvis medelvärde. Metoden är identisk med den ovägda parvisa medelvärdesmetoden, förutom att storleken på respektive kluster (dvs. antalet objekt de innehåller) används som en viktningsfaktor i beräkningarna.

Därför bör den föreslagna metoden användas (snarare än den föregående) när olika klusterstorlekar antas.

Sneath och Sokal (1973) introducerar förkortningen WPGMA för att hänvisa till denna metod som den vägda par-gruppmetoden med aritmetiska medelvärden.

Oviktad tyngdpunktsmetod. I denna metod definieras avståndet mellan två kluster som avståndet mellan deras tyngdpunkter.

Uppmärksamhet!

Sneath och Sokal (1973) använder akronymen UPGMC för att hänvisa till denna metod som den ovägda pargruppsmetoden som använder tyngdpunktsgenomsnittet.

Vägt tyngdpunktsmetod (median). Denna metod är identisk med den föregående, förutom att vikter används i beräkningarna för att ta hänsyn till skillnaden mellan klusterstorlekar (dvs. antalet objekt i dem).

Därför, om det finns (eller misstänks) betydande skillnader i klusterstorlekar, är denna metod att föredra framför den föregående.

Sneath och Sokal (1973) använde förkortningen WPGMC för att hänvisa till den som den vägda pargruppsmetoden med tyngdpunktsgenomsnittet.

Avdelningsmetod. Denna metod skiljer sig från alla andra metoder eftersom den använder metoder variansanalys för att uppskatta avstånd mellan kluster.

Metoden minimerar summan av kvadrater (SS) för två (hypotetiska) kluster som kan bildas vid varje steg.

Detaljer finns i Ward (1963). Generellt sett verkar metoden vara mycket effektiv, men den tenderar att skapa små kluster.

Tidigare diskuterades denna metod i termer av "objekt" som borde klustras. I alla andra typer av analyser uttrycks frågan av intresse för forskaren vanligtvis i termer av observationer eller variabler.

Det visar sig att klustring, både genom observationer och av variabler, kan leda till ganska intressanta resultat.

Föreställ dig till exempel att en medicinsk forskare samlar in data om olika egenskaper (variabler) av patienters tillstånd (observationer) med hjärtsjukdom.

Utredaren kan vilja gruppera observationer (av patienter) för att identifiera kluster av patienter med liknande symtom.

Samtidigt kan forskaren vilja klustra variabler för att identifiera kluster av variabler som är associerade med ett liknande fysiskt tillstånd.e

Efter denna diskussion om huruvida man ska klustera observationer eller variabler, kan man fråga sig, varför inte klustera i båda riktningarna?

Modulen Cluster Analysis innehåller en effektiv tvåvägs kopplingsprocedur för att göra just det.

Tvåvägspoolning används dock (relativt sällan) under omständigheter där både observationer och variabler förväntas bidra samtidigt till upptäckten av meningsfulla kluster.

Så, för att återgå till det tidigare exemplet, kan vi anta att en medicinsk forskare behöver identifiera kluster av patienter som är lika i förhållande till vissa kluster av fysiska tillståndsegenskaper.

Svårigheten att tolka de erhållna resultaten beror på att likheterna mellan olika kluster kan komma från (eller vara orsaken till) någon skillnad i delmängder av variabler.

Därför är de resulterande klustren i sig heterogena. Kanske verkar det lite disigt till en början; faktiskt, jämfört med andra beskrivna klusteranalysmetoder, är tvåvägspoolning förmodligen den minst använda metoden.

Vissa forskare anser dock att det erbjuder ett kraftfullt verktyg för utforskande dataanalys (för mer information, se Hartigans beskrivning av denna metod (Hartigan, 1975)).

K betyder metod

Denna klustringsmetod skiljer sig markant från agglomerativa metoder som Union (trädklustring) och Two-Way Union. Anta att du redan har hypoteser om antalet kluster (genom observation eller variabel).

Du kan säga till systemet att bilda exakt tre kluster så att de är så olika som möjligt.

Det är precis den typen av problem som K-Means-algoritmen löser. I allmänhet bygger K-means-metoden exakt K distinkta kluster placerade så långt ifrån varandra som möjligt.

I exemplet med det fysiska tillståndet kan en medicinsk forskare ha en "föraning" från sin kliniska erfarenhet att deras patienter i allmänhet delas in i tre olika kategorier.

Uppmärksamhet!

Om så är fallet, skulle medlen för de olika måtten på fysiska parametrar för varje kluster ge ett kvantitativt sätt att representera utredarens hypoteser (t.ex. patienter i kluster 1 har en hög parameter på 1, en lägre parameter på 2, etc.).

Ur beräkningssynpunkt kan du tänka på denna metod som en variansanalys "omvänt". Programmet startar med K slumpmässigt valda kluster och ändrar sedan objektens tillhörighet till dem för att:

  1. minimera variationen inom kluster,
  2. maximera variationen mellan kluster.

Denna metod liknar omvänd variansanalys (ANOVA) genom att signifikanstestet i ANOVA jämför variabilitet mellan grupper och inom grupp vid test av hypotesen att gruppmedelvärden skiljer sig från varandra.

I K-means klustring flyttar programmet objekt (d.v.s. observationer) från en grupp (kluster) till en annan för att erhålla det mest signifikanta resultatet när man utför variansanalys (ANOVA).

Vanligtvis, när resultaten av en K-means-klusteranalys har erhållits, kan man beräkna medelvärdet för varje kluster för varje dimension för att bedöma hur klustren skiljer sig från varandra.

Helst bör du få väldigt olika medel för de flesta, om inte alla, mätningarna som används i analysen.

Källa: http://www.biometrica.tomsk.ru/textbook/modules/stcluan.html

Klassificering av föremål enligt deras egenskaper

Klusteranalys (klusteranalys) - en uppsättning multidimensionella statistiska metoder för att klassificera objekt enligt deras egenskaper, dela in helheten av objekt i homogena grupper som är nära när det gäller att definiera kriterier, välja objekt i en viss grupp.

Ett kluster är en grupp objekt som identifieras som ett resultat av klusteranalys baserat på ett givet mått på likhet eller skillnad mellan objekt.

Objektet är de specifika studieämnena som behöver klassificeras. Objekten i klassificeringen är som regel observationer. Till exempel konsumenter av produkter, länder eller regioner, produkter osv.

Även om det är möjligt att utföra klusteranalys av variabler. Klassificering av objekt i flerdimensionell klusteranalys sker enligt flera kriterier samtidigt.

Dessa kan vara både kvantitativa och kategoriska variabler, beroende på metoden för klusteranalys. Så, huvudmålet klusteranalys - hitta grupper av liknande objekt i urvalet.

Uppsättningen av multivariata statistiska metoder för klusteranalys kan delas in i hierarkiska metoder (agglomerativa och delande) och icke-hierarkiska (k-means metod, tvåstegs klusteranalys).

Det finns dock ingen allmänt accepterad klassificering av metoder, och ibland inkluderar klusteranalysmetoder även metoder för att konstruera beslutsträd, neurala nätverk, diskriminantanalys och logistisk regression.

Omfattningen av klusteranalys, på grund av dess mångsidighet, är mycket bred. Klusteranalys används inom ekonomi, marknadsföring, arkeologi, medicin, psykologi, kemi, biologi, allmän administration, filologi, antropologi, sociologi och andra områden.

Här är några exempel på tillämpning av klusteranalys:

  • medicin - klassificering av sjukdomar, deras symptom, behandlingsmetoder, klassificering av patientgrupper;
  • marknadsföring - uppgifterna att optimera företagets produktlinje, segmentera marknaden efter grupper av varor eller konsumenter, identifiera en potentiell konsument;
  • sociologi - uppdelning av respondenter i homogena grupper;
  • psykiatri - korrekt diagnos av symtomgrupper är avgörande för framgångsrik terapi;
  • biologi - klassificering av organismer efter grupp;
  • ekonomi - klassificering av ämnen i Ryska federationen efter investeringsattraktionskraft.

Källa: http://www.statmethods.ru/konsalting/statistics-methody/121-klasternyj-analyz.html

Allmän information om klusteranalys

Klusteranalys inkluderar en uppsättning olika klassificeringsalgoritmer. En vanlig fråga som ställs av forskare inom många områden är hur man organiserar observerade data i visuella strukturer.

Till exempel siktar biologer på att bryta in djur olika sorter för att på ett meningsfullt sätt beskriva skillnaderna mellan dem.

Uppgiften med klusteranalys är att dela upp den initiala uppsättningen objekt i grupper av liknande, nära objekt. Dessa grupper kallas kluster.

Med andra ord är klusteranalys ett av sätten att klassificera objekt efter deras egenskaper. Det är önskvärt att klassificeringsresultaten har en meningsfull tolkning.

Resultaten från klusteranalysmetoder används inom olika områden. Inom marknadsföring är det segmenteringen av konkurrenter och konsumenter.

Inom psykiatrin är korrekt diagnos av symtom som paranoia, schizofreni etc. avgörande för framgångsrik terapi.

I förvaltningen är klassificeringen av leverantörer viktig, identifieringen av liknande produktionssituationer där äktenskap förekommer. Inom sociologi, uppdelningen av respondenter i homogena grupper. Vid portföljinvesteringar är det viktigt att gruppera värdepapper genom likhet i lönsamhetstrenden, för att utifrån den information som erhålls om aktiemarknaden upprätta en optimal investeringsportfölj som möjliggör maximering av vinsten från investeringar för en given riskgrad.

I allmänhet, när det är nödvändigt att klassificera en stor mängd information av detta slag och presentera den i en form som lämpar sig för vidare bearbetning, visar sig klusteranalys vara mycket användbar och effektiv.

Klusteranalys gör det möjligt att överväga en ganska stor mängd information och kraftigt komprimera stora mängder socioekonomisk information, vilket gör dem kompakta och visuella.

Uppmärksamhet!

Klusteranalys är av stor betydelse i förhållande till uppsättningar av tidsserier som karakteriserar ekonomisk utveckling(till exempel allmän ekonomisk och råvarukonjunktur).

Här är det möjligt att peka ut de perioder då värdena för motsvarande indikatorer var ganska nära, samt att bestämma grupperna av tidsserier, vars dynamik är mest lika.

I problemen med socioekonomisk prognoser är det mycket lovande att kombinera klusteranalys med andra kvantitativa metoder (till exempel med regressionsanalys).

Fördelar och nackdelar

Klusteranalys möjliggör en objektiv klassificering av alla objekt som kännetecknas av ett antal funktioner. Det finns ett antal fördelar att dra av detta:

  1. De resulterande klustren kan tolkas, det vill säga att beskriva vilken typ av grupper som faktiskt finns.
  2. Enskilda kluster kan tas ut. Detta är användbart i fall där vissa fel gjordes i datamängden, vilket resulterade i att värdena på indikatorer för enskilda objekt avviker kraftigt. När du tillämpar klusteranalys faller sådana objekt i ett separat kluster.
  3. För ytterligare analys kan endast de kluster som har egenskaperna av intresse väljas.

Liksom alla andra metoder har klusteranalys vissa nackdelar och begränsningar. I synnerhet beror sammansättningen och antalet kluster på de valda partitioneringskriterierna.

När den initiala datamatrisen reduceras till en mer kompakt form kan vissa förvrängningar uppstå, och de individuella egenskaperna hos enskilda objekt kan också gå förlorade på grund av att de ersätts med egenskaperna hos de generaliserade värdena för klusterparametrarna.

Metoder

För närvarande är mer än hundra olika klustringsalgoritmer kända. Deras mångfald förklaras inte bara av olika beräkningsmetoder, utan också av olika koncept som ligger till grund för klustring.

Statistica-paketet implementerar följande klustringsmetoder.

  • Hierarkiska algoritmer - trädklustring. Hierarkiska algoritmer är baserade på idén om sekventiell klustring. I det första steget betraktas varje objekt som ett separat kluster. I nästa steg kommer några av de kluster som ligger närmast varandra att kombineras till ett separat kluster.
  • K-means metod. Denna metod är den mest använda. Den tillhör gruppen av så kallade referensmetoder för klusteranalys. Antalet kluster K ställs in av användaren.
  • Tvåvägsförening. När man använder denna metod utförs klustring samtidigt både av variabler (kolumner) och av observationsresultat (rader).

Tvåvägssammanfogningsproceduren utförs när det kan förväntas att samtidig klustring av variabler och observationer ger meningsfulla resultat.

Resultaten av proceduren är beskrivande statistik om variabler och fall, samt ett tvådimensionellt färgdiagram på vilket datavärden är färgkodade.

Genom fördelningen av färg kan du få en uppfattning om homogena grupper.

Normalisering av variabler

Uppdelningen av den initiala uppsättningen objekt i kluster är förknippad med beräkningen av avstånd mellan objekt och valet av objekt, avståndet mellan vilka är det minsta av alla möjliga.

Det vanligaste är det euklidiska (geometriska) avståndet som vi alla känner till. Detta mått motsvarar intuitiva idéer om objekts närhet i rymden (som om avstånden mellan objekt mättes med ett måttband).

Men för en given måttenhet kan avståndet mellan objekt påverkas starkt av förändringar i skalor (måttenheter). Till exempel, om en av funktionerna mäts i millimeter och sedan dess värde omvandlas till centimeter, kommer det euklidiska avståndet mellan objekt att förändras dramatiskt. Detta kommer att leda till att resultaten av klusteranalys kan skilja sig betydligt från de tidigare.

Om variablerna mäts i olika måttenheter, krävs deras preliminära normalisering, det vill säga omvandlingen av de initiala uppgifterna, som omvandlar dem till dimensionslösa kvantiteter.

Normalisering förvränger kraftigt geometrin hos det ursprungliga utrymmet, vilket kan förändra resultaten av klustring

I Statistica-paketet normaliseras valfri variabel x enligt formeln:

För att göra detta, högerklicka på variabelnamnet och välj sekvensen av kommandon från menyn som öppnas: Fyll/Standardisera block/Standardisera kolumner. Värdena för den normaliserade variabeln blir lika med noll, och varianserna blir lika med en.

K-means metod i Statistica

K-means-metoden delar upp en uppsättning objekt i ett givet antal K av olika kluster belägna på största möjliga avstånd från varandra.

Vanligtvis, när resultaten av en K-means-klusteranalys har erhållits, kan man beräkna medelvärdena för varje kluster för varje dimension för att bedöma hur klustren skiljer sig från varandra.

Helst bör du få väldigt olika medel för de flesta av de mätningar som används i analysen.

De F-statistiska värdena som erhålls för varje dimension är ytterligare en indikator på hur väl motsvarande dimension skiljer mellan kluster.

Ta som ett exempel resultaten av en undersökning av 17 anställda på ett företag om nöjdhet med karriärkvalitetsindikatorer. Tabellen innehåller svaren på enkätfrågorna på en tiogradig skala (1 är lägsta poäng, 10 är maxpoäng).

Variabelnamnen motsvarar svaren på följande frågor:

  1. SLT - en kombination av personliga mål och organisationens mål;
  2. OSO - en känsla av rättvisa i löner;
  3. TBD - territoriell närhet till huset;
  4. PEW - en känsla av ekonomiskt välbefinnande;
  5. CR - karriärtillväxt;
  6. ZhSR - önskan att byta jobb;
  7. OSB är en känsla av socialt välbefinnande.

Med hjälp av dessa data är det nödvändigt att dela upp de anställda i grupper och välja de mest effektiva kontrollspakarna för var och en av dem.

Samtidigt ska skillnaderna mellan grupper vara uppenbara och inom gruppen ska respondenterna vara så lika som möjligt.

Hittills ger de flesta sociologiska undersökningar endast en procentandel av rösterna: det största antalet positiva svar beaktas, eller andelen av dem som är missnöjda, men denna fråga övervägs inte systematiskt.

Oftast visar undersökningen inga trender i situationen. I vissa fall är det nödvändigt att inte räkna antalet personer som är "för" eller "emot", utan avståndet, eller måttet på likhet, det vill säga för att bestämma grupper av människor som tycker om detsamma.

Klusteranalysprocedurer kan användas för att identifiera, på basis av undersökningsdata, några verkligt existerande särdrag och generera deras typologi på denna grund.

Uppmärksamhet!

Förekomsten av några a priori-hypoteser från en sociolog när han arbetar med klusteranalysprocedurer är inte ett nödvändigt villkor.

I programmet Statistica utförs klusteranalys enligt följande.

När du väljer antalet kluster, vägleds av följande: antalet kluster, om möjligt, bör inte vara för stort.

Avståndet på vilket objekten i ett givet kluster sammanfogades bör om möjligt vara mycket mindre än det avstånd på vilket något annat ansluter sig till detta kluster.

Vid val av antal kluster finns det oftast flera korrekta lösningar samtidigt.

Vi är till exempel intresserade av hur svaren på frågorna i enkäten korrelerar med vanliga anställda och företagsledningen. Därför väljer vi K=2. För ytterligare segmentering kan du öka antalet kluster.

  1. välj observationer med det maximala avståndet mellan klustercentrum;
  2. sortera avstånd och välj observationer med jämna mellanrum (standardinställning);
  3. ta de första observationscentrumen och fäst resten av föremålen på dem.

Alternativ 1 är lämpligt för våra syften.

Många klustringsalgoritmer "påtvingar" ofta en struktur som inte är inneboende i data och desorienterar forskaren. Därför är det extremt nödvändigt att tillämpa flera klusteranalysalgoritmer och dra slutsatser utifrån övergripande bedömning algoritmresultat

Resultaten av analysen kan ses i dialogrutan som visas:

Om du väljer fliken Diagram över medel, kommer en graf över koordinaterna för klustercentrum att ritas:


Varje streckad linje på denna graf motsvarar ett av klustren. Varje delning av grafens horisontella axel motsvarar en av variablerna som ingår i analysen.

Den vertikala axeln motsvarar medelvärdena för variablerna för objekten som ingår i vart och ett av klustren.

Det kan noteras att det finns betydande skillnader i de två gruppernas inställning till en tjänstekarriär i nästan alla frågor. Endast i en fråga råder fullständig enighet - i betydelsen socialt välbefinnande (OSB), eller snarare avsaknaden av det (2,5 poäng av 10).

Det kan antas att kluster 1 representerar arbetare och kluster 2 representerar ledning. Chefer är mer nöjda med karriärutveckling (CR), en kombination av personliga mål och organisationsmål (SOL).

De har en högre känsla av ekonomiskt välbefinnande (SEW) och en känsla av lönelikviditet (SWA).

De är mindre bekymrade över närheten till hemmet än arbetare, förmodligen på grund av mindre transportproblem. Dessutom har chefer mindre lust att byta jobb (JSR).

Trots att arbetarna är indelade i två kategorier ger de relativt samma svar på de flesta frågor. Med andra ord, om något inte passar den generella gruppen anställda så passar det inte ledande befattningshavare och vice versa.

Harmoniseringen av graferna gör att vi kan dra slutsatsen att en grupps välbefinnande återspeglas i en annans välbefinnande.

Kluster 1 är inte nöjd med den territoriella närheten till huset. Denna grupp är huvuddelen av arbetarna som huvudsakligen kommer till företaget från olika delar av staden.

Därför är det möjligt att erbjuda högsta ledningen att allokera en del av vinsten till byggandet av bostäder för företagets anställda.

Betydande skillnader ses i de två gruppernas inställning till en tjänstekarriär. De anställda som är nöjda med karriärutveckling, som har en hög sammanträffande av personliga mål och organisationens mål, har inte en önskan om att byta jobb och känner tillfredsställelse med resultatet av sitt arbete.

Omvänt är anställda som vill byta jobb och är missnöjda med resultatet av sitt arbete inte nöjda med ovanstående indikatorer. Högsta ledningen borde Särskild uppmärksamhet till den nuvarande situationen.

Resultaten av variansanalysen för varje attribut visas genom att trycka på knappen Variansanalys.

Summorna av kvadrater av avvikelser för objekt från klustercentrum (SS Within) och summan av kvadrater av avvikelser mellan klustercentrum (SS Between), F-statistikvärden och p-signifikansnivåer visas.

Uppmärksamhet!

För vårt exempel är signifikansnivåerna för de två variablerna ganska stora, vilket förklaras av det lilla antalet observationer. I den fullständiga versionen av studien, som finns i arbetet, förkastas hypoteserna om likvärdiga medel för klustercentra vid signifikansnivåer mindre än 0,01.

Knappen Spara klassificeringar och avstånd visar antalet objekt som ingår i varje kluster och avstånden för objekt till mitten av varje kluster.

Tabellen visar fallnummer (CASE_NO) som utgör klustren med CLUSTER-nummer och avstånden från mitten av varje kluster (DISTANCE).

Information om objekt som hör till kluster kan skrivas till en fil och användas i vidare analys. I detta exempel Jämförelse av de erhållna resultaten med frågeformulär visade att kluster 1 huvudsakligen består av vanliga arbetare och kluster 2 - av chefer.

Således kan man se att vid bearbetning av resultaten från undersökningen visade sig klusteranalys vara en kraftfull metod som gör det möjligt att dra slutsatser som inte kan nås genom att konstruera ett histogram av medelvärden eller genom att beräkna procentandelen av dem som är nöjda med olika indikatorer för arbetslivets kvalitet.

Trädklustring är ett exempel på en hierarkisk algoritm, vars princip är att sekventiellt klustera först de närmaste och sedan fler och mer avlägsna element från varandra i ett kluster.

De flesta av dessa algoritmer utgår från en matris av likheter (avstånd), och varje enskilt element betraktas först som ett separat kluster.

Efter att ha laddat klusteranalysmodulen och valt Sammanfogning (trädklustring), kan du ändra följande parametrar i inmatningsfönstret för klusterparametrar:

  • Initial data (Input). De kan vara i form av en matris av studerade data (Rådata) och i form av en matris av avstånd (Avståndsmatris).
  • Clusterobservationer (Cluster) (Cases (rå)) eller variabler (Variable (kolumner)), som beskriver objektets tillstånd.
  • Avståndsmått. Här kan du välja följande mått: Euklidiska avstånd, Kvadratiska Euklidiska avstånd, Stadsblock (Manhattan) avstånd, Chebychev avståndsmått, Power ...), andelen oenighet (Procent oenighet).
  • Klustringsmetod (regel för sammanslagning (länkning). Följande alternativ är möjliga här: Enkellänkning (enkellänkning), Komplett länkning (metod för de mest avlägsna grannarna) (Fullständig länkning), Oviktat par-gruppmedelvärde, Vägt pargruppmedelvärde ), Oviktat pargruppscentroid, Viktat par -grupp centroid (median), Wards metod.

Som ett resultat av klustring byggs ett horisontellt eller vertikalt dendrogram - en graf på vilken avstånden mellan objekt och kluster bestäms när de kombineras sekventiellt.

Trädstrukturen i grafen låter dig definiera kluster beroende på den valda tröskeln - ett givet avstånd mellan kluster.

Dessutom visas matrisen av avstånd mellan originalobjekten (Avståndsmatris); medelvärde och standardavvikelser för varje källobjekt (Distiptiv statistik).

För det övervägda exemplet kommer vi att utföra en klusteranalys av variabler med standardinställningar. Det resulterande dendrogrammet visas i figuren.


Dendrogrammets vertikala axel plottar avstånden mellan objekt och mellan objekt och kluster. Så avståndet mellan variablerna SEB och OSD är lika med fem. Dessa variabler i det första steget kombineras till ett kluster.

De horisontella segmenten av dendrogrammet ritas på nivåer som motsvarar de valda tröskelavstånden för ett givet klustringssteg.

Det framgår av grafen att frågan ”önskemål att byta jobb” (JSR) bildar ett separat kluster. I allmänhet besöker viljan att dumpa var som helst alla lika. Ett separat kluster är vidare frågan om territoriell närhet till hemmet (LHB).

Viktigt sett ligger den på andra plats, vilket bekräftar slutsatsen om behovet av bostadsbyggande, gjord enligt studiens resultat med K-medelmetoden.

Känslor av ekonomiskt välbefinnande (PEW) och lönelikviditet (PWA) kombineras - detta är ett block av ekonomiska frågor. Karriärutveckling (CR) och kombinationen av personliga mål och organisationsmål (COL) kombineras också.

Andra klustringsmetoder, liksom valet av andra typer av avstånd, leder inte till en signifikant förändring av dendrogrammet.

Resultat:

  1. Klusteranalys är ett kraftfullt verktyg för explorativ dataanalys och statistisk forskning inom vilket ämnesområde som helst.
  2. Statistica-programmet implementerar både hierarkiska och strukturella metoder för klusteranalys. Fördelarna med detta statistiska paket beror på deras grafiska kapacitet. Tvådimensionella och tredimensionella grafiska representationer av de erhållna klustren i utrymmet för de studerade variablerna tillhandahålls, liksom resultaten av den hierarkiska proceduren för att gruppera objekt.
  3. Det är nödvändigt att tillämpa flera klusteranalysalgoritmer och dra slutsatser baserat på en allmän bedömning av algoritmernas resultat.
  4. Klusteranalys kan anses vara framgångsrik om den utförs på olika sätt, resultaten jämförs och hittas allmänna mönster, och stabila kluster hittas oavsett klustringsmetod.
  5. Klusteranalys låter dig identifiera problemsituationer och skissera sätt att lösa dem. Därför kan denna metod för icke-parametrisk statistik betraktas som en integrerad del av systemanalys.

Förra året höll Avito ett antal tävlingar. Inklusive - en tävling för att erkänna bilmärken, vars vinnare, Evgeny Nizhibitsky, talade om sitt beslut vid ett träningspass.


Formulering av problemet. Från bilderna av bilarna måste du bestämma märke och modell. Måttet var noggrannheten av förutsägelser, det vill säga andelen korrekta svar. Provet bestod av tre delar: den första delen var tillgänglig för träning initialt, den andra gavs senare och den tredje krävdes för att visa de slutliga förutsägelserna.


Datorresurser. Jag använde hemdatorn som höll mitt rum varmt hela tiden och servrarna som fanns på jobbet.

Modellöversikt. Eftersom vår uppgift är att känna igen, är det första vi vill göra att dra nytta av framstegen i kvalitetsnivån för bildklassificering på det välkända ImageNet. Som ni vet gör moderna arkitekturer det möjligt att uppnå ännu högre kvalitet än en persons. Så jag började med att granska de senaste artiklarna och satte ihop en sammanfattande tabell över arkitekturer, implementeringar och kvaliteter baserat på ImageNet.


Observera att nai den bästa kvaliteten uppnått på arkitekturer och .

Finjustera nätverk. Att träna ett djupt neuralt nätverk från grunden är en ganska tidskrävande uppgift, och dessutom är det inte alltid effektivt sett till resultatet. Därför används ofta tekniken för omskolning av nätverk: ett nätverk som redan tränats på ImageNet tas, det sista lagret ersätts med ett lager med erforderligt antal klasser, och sedan ställs nätverket in med en låg inlärningshastighet, men redan på data från tävlingen. Detta schema låter dig träna nätverket snabbare och med högre kvalitet.

Det första tillvägagångssättet för omträning av GoogLeNet visade ungefär 92 % noggrannhet under valideringen.

Skördförutsägelser. Genom att använda ett neuralt nätverk för att förutsäga ett testprov kan du förbättra kvaliteten. För att göra detta, skär ut fragment av lämplig storlek i olika platser originalbilden och sedan genomsnittet av resultaten. En 1x10 beskärning innebär att bildens mitt tas, fyra hörn, och sedan är allt sig likt, men reflekteras horisontellt. Som du kan se ökar kvaliteten, men prediktionstiden ökar.

Validering av resultat. Efter att den andra delen av provet dök upp, delade jag provet i flera delar. Alla ytterligare resultat visas på denna partition.

ResNet-34 ficklampa. Du kan använda det färdiga arkivet för författarna till arkitekturen, men för att få förutsägelser om testet i önskat format måste du fixa några skript. Dessutom måste du lösa problemen med hög minnesförbrukning genom dumpningar. Valideringsnoggrannheten är cirka 95 %.


Inception-v3 TensorFlow. Även här användes en färdig implementering, men bildförbehandlingen ändrades och även beskärningen av bilder under batchgenerering begränsades. Resultatet är nästan 96% noggrannhet.


Ensemble av modeller. Som ett resultat fick vi två ResNet-modeller och två Inception-v3-modeller. Vilken valideringskvalitet kan erhållas genom att blanda modeller? Klasssannolikheterna beräknades med hjälp av det geometriska medelvärdet. Vikter (in det här fallet- grader) valdes ut på ett försenat prov.


resultat. ResNet-träning på GTX 980 tog 60 timmar och Inception-v3 på TitanX tog 48 timmar. Under tävlingen hann vi pröva nya ramverk med nya arkitekturer.


Uppgiften att klassificera bankkunder

Länk till Kaggle.

Stanislav Semyonov berättar hur han och andra medlemmar av Kaggle-toppen slog sig ihop och vann ett pris i tävlingen för att klassificera ansökningar från kunder till en stor bank - BNP Paribas.


Formulering av problemet. De obfuskerade uppgifterna från försäkringskraven behöver förutsäga om skadeanmälan kan godkännas utan ytterligare manuella kontroller. För en bank är detta processen att automatisera behandlingen av applikationer, och för dataanalytiker är det helt enkelt en uppgift för maskininlärning på binär klassificering. Det finns cirka 230 tusen objekt och 130 funktioner. Måttet är LogLoss . Det är värt att notera att det vinnande laget dechiffrerade data, vilket hjälpte dem att vinna tävlingen.

Att bli av med artificiellt brus i funktioner. Det första steget är att titta på data. Några saker dyker genast upp. För det första tar alla funktioner värden från 0 till 20. För det andra, om du tittar på fördelningen av någon av funktionerna, kan du se följande bild:

Varför är det så? Faktum är att vid anonymiseringsstadiet och bullriga data lades slumpmässigt brus till alla värden, och sedan utfördes skalning med ett segment från 0 till 20. Den omvända transformationen utfördes i två steg: först värdena ​avrundades till en viss decimal och sedan nämnaren . Krävdes detta om trädet fortfarande tar upp tröskeln vid klyvning? Ja, efter den omvända transformationen börjar skillnaderna mellan variablerna bli mer meningsfulla, och för kategoriska variabler blir det möjligt att utföra en varm kodning.

Ta bort linjärt beroende funktioner. Vi märkte också att vissa tecken är summan av andra. Det är klart att de inte behövs. Delmängder av funktioner togs för att bestämma dem. På sådana delmängder byggdes en regression för att förutsäga någon annan variabel. Och om de förutsagda värdena var nära de sanna (det är värt att överväga artificiellt brus), kan funktionen tas bort. Men laget brydde sig inte om detta och använde en färdig uppsättning filtrerade funktioner. Setet förbereddes av någon annan. En av egenskaperna hos Kaggle är närvaron av ett forum och offentliga lösningar, genom vilka deltagarna delar sina resultat.

Hur förstår man vad man ska använda? Det finns ett litet hack. Låt oss säga att du vet att någon i en gammal tävling använde någon teknik som hjälpte dem att placera sig högt (på de forum de brukar skriva korta lösningar). Om denna deltagare i den aktuella tävlingen återigen är bland ledarna, kommer troligen samma teknik att fungera även här.

Kodning av kategoriska variabler. Det var slående att en viss variabel V22 har ett stort antal värden, men samtidigt, om vi tar ett delsampling för ett visst värde, minskar antalet nivåer (olika värden) av andra variabler markant. Det finns också en god korrelation med målvariabeln. Vad kan göras? Den enklaste lösningen är att bygga en separat modell för varje värde av V22, men det är samma sak som att dela över alla värden på variabeln i den första delningen av trädet.

Det finns ett annat sätt att använda den mottagna informationen - kodning med medelvärdet för målvariabeln. Med andra ord ersätts varje värde för den kategoriska variabeln med medelvärdet för målet för objekt där denna funktion har samma värde. Det är omöjligt att utföra sådan kodning direkt för hela träningsuppsättningen: i processen kommer vi implicit att införa information om målvariabeln i funktionerna. Vi talar om information som nästan alla modeller säkert kommer att upptäcka.

Därför räknas sådan statistik av veck. Här är ett exempel:

Låt oss anta att uppgifterna är uppdelade i tre delar. För varje veck av träningsprovet kommer vi att beräkna en ny funktion för de andra två vecken, och för testprovet, för hela träningsuppsättningen. Då kommer inte informationen om målvariabeln att ingå i urvalet så explicit, och modellen kommer att kunna använda den kunskap som vunnits.

Kommer det att bli problem med något annat? Ja - med sällsynta kategorier och korsvalidering.

Sällsynta kategorier. Låt oss säga att en viss kategori bara förekommer några få gånger och att motsvarande objekt tillhör klass 0. Då blir även medelvärdet för målvariabeln noll. En helt annan situation kan dock uppstå på ett testprov. Beslutet är det utjämnade genomsnittet (eller den utjämnade sannolikheten), som beräknas med följande formel:

Här är globalt medelvärde medelvärdet av målvariabeln över hela urvalet, nrows är antalet gånger ett visst värde av den kategoriska variabeln inträffar, alfa är regulariseringsparametern (till exempel 10). Nu, om något värde inträffar sällan, kommer det globala genomsnittet att ges mer vikt, och om det inträffar tillräckligt ofta kommer resultatet att vara nära det initiala kategorigenomsnittet. Förresten, den här formeln låter dig bearbeta tidigare okända värden för en kategorisk variabel.

Korsvalidering. Låt oss säga att vi har beräknat alla utjämnade medelvärden för kategoriska variabler för andra veck. Kan vi utvärdera modellens kvalitet genom standardk-faldig korsvalidering? Nej. Låt oss titta på ett exempel.

Till exempel vill vi utvärdera modellen på tredje vecket. Vi tränar modellen på de två första vecken, men de har en ny variabel med medelvärdet på målvariabeln, som vi redan har använt det tredje testvecket för att beräkna. Detta tillåter oss inte att korrekt utvärdera resultaten, men problemet som uppstått löses genom att beräkna statistik på veck inom veck. Låt oss titta på exemplet igen:

Vi vill fortfarande utvärdera modellen på tredje vecket. Låt oss dela upp de två första vecken (träningsprovet för vår bedömning) i några andra tre veck, i dem kommer vi att beräkna en ny funktion enligt det redan analyserade scenariot, och för det tredje vecket (detta är testprovet av vår bedömning) vi kommer att beräkna de två första vecken tillsammans. Då kommer ingen information från tredje vecket att användas vid träning av modellen, och uppskattningen kommer att vara ärlig. I tävlingen som vi diskuterar var det bara sådan korsvalidering som gjorde det möjligt att korrekt bedöma modellens kvalitet. Naturligtvis kan det "externa" och "interna" antalet veck vara vilket som helst.

Feature byggnad. Vi använde inte bara de redan nämnda utjämnade medelvärdena av målvariabeln, utan också bevisvikter. Det är nästan samma, men med en logaritmisk transformation. Dessutom visade sig funktioner som skillnaden i antalet objekt av positiva och negativa klasser i gruppen vara användbara utan någon normalisering. Intuitionen här är följande: skalan visar graden av förtroende i klassen, men vad ska man göra med kvantitativa egenskaper? När allt kommer omkring, om de behandlas på ett liknande sätt, är alla värden "tilltäppta" med reglering av det globala genomsnittet. Ett alternativ är att dela upp värdena i papperskorgar, som sedan betraktas som separata kategorier. Ett annat sätt är helt enkelt att bygga någon form av linjär modell på samma funktion med samma mål. Totalt erhölls cirka två tusen tecken från 80 filtrerade.

stapling och blandning. Som med de flesta tävlingar är modellsatsning en viktig del av lösningen. Kort sagt, kärnan i stapling är att vi skickar förutsägelserna av en modell som en funktion till en annan modell. Det är dock viktigt att inte överträna en gång till. Låt oss bara ta ett exempel:


Taget från Alexander Dyakonovs blogg

Till exempel bestämde vi oss för att dela upp vårt prov i tre veck vid utsättningsstadiet. I likhet med att räkna statistik måste vi träna modellen på två veck och lägga till de förutsagda värdena för den återstående vecken. För ett testprov kan du genomsnittliga modellförutsägelserna från varje par av veck. Varje staplingsnivå är processen att lägga till en grupp nya funktioner – förutsägelser av modeller baserade på den befintliga datamängden.

På den första nivån hade teamet 200-250 olika modeller, på den andra - ytterligare 20-30, på den tredje - några fler. Resultatet är blandning, det vill säga blandning av olika modellers förutsägelser. Olika algoritmer användes: gradientförstärkning med olika parametrar, slumpmässiga skogar, neurala nätverk. huvudtanken- tillämpa de mest olika modellerna med olika parametrar, även om de inte ger högsta kvalitet.

Lagarbete. Vanligtvis är deltagarna förenade i lag innan tävlingen är slut, när alla redan har sina egna prestationer. Vi slog oss ihop med andra caglers från första början. Varje teammedlem hade en mapp i det delade molnet där datauppsättningar och skript placerades. Det allmänna korsvalideringsförfarandet godkändes i förväg så att det kunde jämföras med varandra. Rollerna fördelade sig enligt följande: Jag kom på nya funktioner, den andra deltagaren byggde modeller, den tredje valde dem och den fjärde skötte hela processen.

Var får man ström. Att testa ett stort antal hypoteser, bygga flernivåstapling och träningsmodeller kan ta för mycket tid när man använder en bärbar dator. Därför använder många deltagare datorservrar med stor mängd kärnor och random access minne. Jag använder vanligtvis AWS-servrar, och mina teammedlemmar verkar använda maskiner på jobbet för tävlingar medan de är inaktiva.

Kommunikation med arrangörsföretaget. Efter ett lyckat framträdande i tävlingen sker kommunikationen med företaget i form av ett gemensamt telefonkonferenssamtal. Deltagarna berättar om sitt beslut och svarar på frågor. I BNP blev folk inte förvånade över stakning på flera nivåer, men de var naturligtvis intresserade av konstruktion av funktioner, lagarbete, validering av resultat - allt som kunde vara användbart för dem för att förbättra sitt eget system.

Behöver jag dekryptera datamängden. Det vinnande laget märkte en funktion i datan. Vissa funktioner saknar värden och vissa saknar det. Det vill säga, vissa egenskaper berodde inte på specifika personer. Dessutom erhölls 360 unika värden. Det är logiskt att anta att vi talar om några tidsmärken. Det visade sig att om vi tar skillnaden mellan två sådana tecken och sorterar hela provet efter det, kommer det först att bli nollor oftare och sedan ettor. Detta är precis vad vinnarna gjorde.

Vårt lag tog tredjeplatsen. Nästan tre tusen lag deltog totalt.

Uppgift för igenkänning av annonskategori

Länk till DataRing .

Detta är en annan tävling "Avito". Det ägde rum i flera etapper, varav den första (liksom den tredje, förresten) vanns av Arthur Kuzin.


Formulering av problemet. Enligt bilderna från annonsen måste du bestämma kategorin. Varje annons matchades från en till fem bilder. Måttet tog hänsyn till sammanträffandet av kategorier på olika nivåer i hierarkin - från allmänna till smalare (den sista nivån innehåller 194 kategorier). Totalt fanns det nästan en miljon bilder i träningsprovet, vilket är nära storleken på ImageNet.


Svårigheter att känna igen. Det verkar som att du bara behöver lära dig att skilja en TV från en bil och en bil från skor. Men det finns till exempel en kategori "Brittiska katter", och det finns "andra katter", och bland dem finns det mycket liknande bilder - även om du fortfarande kan skilja dem från varandra. Hur är det med däck, fälgar och hjul? Det är här en person inte kan göra det. Dessa svårigheter är orsaken till uppkomsten av en viss gräns för resultaten för alla deltagare.


Resurser och ramar. Jag hade tre datorer med kraftfulla grafikkort till mitt förfogande: en hem som tillhandahålls av laboratoriet vid Moskvainstitutet för fysik och teknik, och en dator på jobbet. Därför var det möjligt (och var tvungen) att träna flera nätverk samtidigt. MXNet valdes som huvudramverket för att träna neurala nätverk, skapat av samma killar som skrev den välkända XGBoost. Bara detta var en anledning att lita på deras nya produkt. Fördelen med MXNet är att en effektiv iterator med standardförstärkning är tillgänglig direkt från lådan, vilket räcker för de flesta uppgifter.


Nätverksarkitekturer. Erfarenheten av att delta i en av de tidigare tävlingarna visade att arkitekturerna i Inception-serien visar den bästa kvaliteten. Jag har använt dem här. Det lades till GoogLeNet eftersom det påskyndade utbildningen av modellen. Vi använde också arkitekturerna Inception-v3 och Inception BN från Model Zoo-modellbiblioteket, som lade till ett bortfall före det sista helt anslutna lagret. På grund av tekniska problem var det inte möjligt att träna nätverket med stokastisk gradientnedstigning, så Adam användes som en optimerare.



Dataökning. För att förbättra kvaliteten på nätverket användes förstärkning - att lägga till förvrängda bilder till provet för att öka mångfalden av data. Transformationer som slumpmässig beskärning av fotot, reflektion, rotation med en liten vinkel, ändring av bildförhållandet och skiftning var inblandade.

Noggrannhet och inlärningshastighet. Först delade jag provet i tre delar, men sedan övergav jag ett av valideringsstegen för att blanda modeller. Därför lades senare den andra delen av urvalet till utbildningssetet, vilket förbättrade kvaliteten på nätverken. Dessutom tränades GoogLeNet ursprungligen på Titan Black, som har halva minnet jämfört med Titan X. Så detta nätverk tränades om med en större batchstorlek, och dess noggrannhet ökade. Om du tittar på träningstiden för nätverk kan vi dra slutsatsen att det under förhållanden med begränsad tid inte är värt att använda Inception-v3, eftersom träning är mycket snabbare med de andra två arkitekturerna. Anledningen är antalet parametrar. Den som lär sig snabbast är Inception BN.

Byggnadsförutsägelser.

Precis som Eugene i tävlingen med bilmärken, använde Arthur skördeförutsägelser - men inte i 10 sektioner, utan i 24. Sektionerna var hörnen, deras reflektioner, mitten, svängarna på de centrala delarna och ytterligare tio slumpmässiga.

Om du sparar nätverkets tillstånd efter varje epok blir resultatet många olika modeller, inte bara det slutliga nätverket. Med tanke på den tid som återstår till slutet av tävlingen skulle jag kunna använda förutsägelserna från 11 epokmodeller - eftersom att bygga förutsägelser med hjälp av nätverket också tar lång tid. Medelvärdet för alla dessa förutsägelser beräknades enligt följande schema: först med det aritmetiska medelvärdet inom grödegrupperna, sedan med det geometriska medelvärdet med vikter valda på valideringsuppsättningen. Dessa tre grupper blandas, sedan upprepar vi operationen för alla epoker. I slutet beräknas medelvärdet av klasssannolikheterna för alla bilder av en annons med ett geometriskt medelvärde utan vikter.


resultat. Vid montering av vikter under valideringsfasen användes ett tävlingsmått eftersom det inte korrelerade bra med normal noggrannhet. Förutsägelse i olika bildområden ger bara en liten del av kvaliteten jämfört med en enskild förutsägelse, men det är på grund av denna ökning som det är möjligt att visa det bästa resultatet. I slutet av tävlingen visade det sig att de tre första platserna skiljer sig i resultat med tusendelar. Till exempel hade Zhenya Nizhibitsky den enda modellen som var något sämre än min ensemble av modeller.


Att lära sig från grunden vs. finjustering. Efter avslutad tävling visade det sig att trots den stora urvalsstorleken var det värt att träna nätverket inte från grunden, utan att använda ett förutbildat nätverk. Detta tillvägagångssätt visar bättre resultat.

Förstärkningsinlärningsproblem

Black Box Challenge, om vilken , var inte riktigt som den vanliga "cagle". Faktum är att det för lösningen inte räckte att markera något "test"-prov. Det krävdes att programmera och ladda in i systemet "agent"-koden, som placerades i en miljö okänd för deltagaren och självständigt fattade beslut i den. Sådana uppgifter hör till området förstärkningsinlärning.

Mikhail Pavlov från 5vision talade om tillvägagångssätt för lösningen. Han tog andraplatsen i tävlingen.


Formulering av problemet. För en miljö med okända regler var det nödvändigt att skriva en "agent" som skulle interagera med den angivna miljön. Schematiskt är detta en sorts hjärna som tar emot information om tillstånd och belöning från den svarta lådan, fattar ett beslut om åtgärden och sedan får ett nytt tillstånd och en belöning för åtgärden. Handlingar upprepas en efter en under spelet. Det aktuella tillståndet beskrivs av en vektor med 36 tal. Agenten kan vidta fyra åtgärder. Målet är att maximera mängden belöningar för hela spelet.


Miljöanalys. Studien av fördelningen av miljötillståndsvariabler visade att de första 35 komponenterna inte beror på den valda åtgärden, och endast den 36:e komponenten ändras beroende på den. Samtidigt påverkade olika handlingar olika: vissa ökade eller minskade, vissa förändrades inte alls. Men det kan inte sägas att hela miljön beror på en komponent: det kan finnas några dolda variabler i den. Dessutom visade experimentet att om du utför mer än 100 identiska åtgärder i rad, så blir belöningen negativ. Så strategier som "gör bara en åtgärd" försvann omedelbart. Några av deltagarna i tävlingen märkte att belöningen är proportionell mot samma 36:e komponent. Det har föreslagits på forumet att den svarta lådan härmar finansmarknad, där portföljen är den 36:e komponenten, och åtgärderna handlar om att köpa, sälja och besluta att inte göra någonting. Dessa alternativ korrelerades med förändringen i portföljen, och innebörden av en åtgärd var inte klar.


Q-lärande. Under deltagandet var huvudmålet att prova olika tekniker för förstärkningsinlärning. En av de enklaste och mest kända metoderna är q-learning. Dess kärna är ett försök att bygga en Q-funktion som beror på tillståndet och den valda åtgärden. Q utvärderar hur "bra" det är att välja en viss handling i ett visst tillstånd. Begreppet "bra" inkluderar belöningen som vi kommer att få inte bara nu, utan också i framtiden. Denna funktion tränas iterativt. Under varje iteration försöker vi föra funktionen närmare sig själv i nästa steg i spelet, med hänsyn tagen till den belöning som vi fått nu. Du kan läsa mer. Användningen av q-learning innebär att man arbetar med helt observerbara Markov-processer (med andra ord bör det aktuella tillståndet innehålla all information från omgivningen). Trots att miljön, enligt arrangörerna, inte uppfyllde detta krav kunde q-learning tillämpas ganska framgångsrikt.

Anpassning till black box. Empiriskt fann man att n-stegs q-lärande lämpade sig bäst för miljön, där belöningen inte användes till en sista åtgärd, utan till n handlingar framåt. Miljön gjorde det möjligt för dig att spara det aktuella tillståndet och gå tillbaka till det, vilket gjorde det lättare att samla in ett prov – du kunde försöka utföra varje åtgärd från ett tillstånd, och inte bara ett. Allra i början av utbildningen, när q-funktionen ännu inte kunde utvärdera åtgärder, användes strategin "utför åtgärd 3". Det antogs att det inte förändrade någonting och det gick att börja träna på datan utan brus.

Lärningsprocess. Träningen gick så här: med den nuvarande policyn (agentens strategi) spelar vi hela avsnittet, samlar ett prov, använder sedan det erhållna provet, uppdaterar q-funktionen och så vidare - sekvensen upprepas under en viss antal epoker. Resultaten var bättre än när q-funktionen uppdaterades under spelets gång. Andra metoder - replay-minnestekniken (med en gemensam databank för träning, där nya spelavsnitt läggs in) och samtidig träning av flera agenter som spelar asynkront - visade sig också vara mindre effektiva.

Modeller. Lösningen använde tre regressioner (var och en gång per åtgärd) och två neurala nätverk. Vissa kvadratiska funktioner och interaktioner har lagts till. Den slutliga modellen är en blandning av alla fem modellerna (fem Q-funktioner) med lika vikt. Dessutom användes online-omskolning: i testprocessen blandades vikterna av de gamla regressionerna med de nya vikterna som erhölls på testsetet. Detta gjordes endast för regressioner, eftersom deras lösningar kan skrivas analytiskt och räknas om ganska snabbt.


Andra idéer. Naturligtvis förbättrade inte alla idéer det slutliga resultatet. Till exempel gav belöningsrabatter (när vi inte bara maximerar den totala belöningen, utan anser varje nästa drag mindre användbar), djupa nätverk, duellarkitektur (med en bedömning av nyttan av staten och varje åtgärd separat) ingen ökning i resultat. På grund av tekniska problem var det inte möjligt att använda återkommande nätverk - även om de i en ensemble med andra modeller kan ge viss fördel.


Resultat. Team 5vision tog andraplatsen, men med mycket liten marginal från ägarna till "brons".


Så varför delta i en dataanalystävling?

  • Priser. Framgångsrika prestationer i de flesta tävlingar belönas med kontantpriser eller andra värdefulla gåvor. Över sju miljoner dollar har lottats ut på Kaggle på sju år.
  • Karriär. Ibland ett pris.
  • En upplevelse. Detta är naturligtvis det viktigaste. Du kan utforska ett nytt område och börja lösa problem som du inte har stött på tidigare.

För närvarande hålls träningspass för maskininlärning på lördagar varannan vecka. Platsen är Yandex-kontoret i Moskva, standardantalet gäster (gäster plus Yandexoids) är 60-80 personer. Huvuddraget i träningarna är deras aktualitet: varje gång löses tävlingen, som avslutades för en eller två veckor sedan. Det gör det svårt att planera allt exakt, men tävlingen är fortfarande i färskt minne och det samlas många i hallen som provat sig fram. Träningen handles av Emil Kayumov, som för övrigt hjälpt till med att skriva detta inlägg.

Dessutom finns det ett annat format: lösningar, där nybörjarspecialister gemensamt deltar i befintliga tävlingar. Beslut fattas de lördagar då det inte finns några träningar. Vem som helst kan komma till båda typerna av evenemang, utlysningar publiceras i grupp