Masjienleer sonder Python, Anaconda en ander kruip

Nee, wel, natuurlik is ek nie ernstig nie. Daar moet 'n beperking wees op die mate waarin dit moontlik is om die onderwerp te vereenvoudig. Maar vir die eerste fases, om die basiese konsepte te verstaan ​​en vinnig die onderwerp te "betree", kan dit aanvaarbaar wees. En hoe om hierdie materiaal korrek te noem (opsies: "Masjienleer vir dummies", "Data-analise van luiers", "Algorithmes vir die kleinstes"), sal ons aan die einde bespreek.

Na besigheid. Het verskeie toepassingsprogramme in MS Excel geskryf om die prosesse wat in verskeie masjienleermetodes plaasvind te visualiseer en te visualiseer wanneer data ontleed word. Sien is op die ou end glo, soos die draers van die kultuur wat die meeste van hierdie metodes ontwikkel het sê (terloops, nie almal nie. Die kragtigste "ondersteuningsvektormasjien", of SVM, ondersteuningsvektormasjien is 'n uitvinding van ons landgenoot Vladimir Vapnik, Moscow Institute of Management. 1963, terloops! Nou gee hy egter onderrig en werk in die VSA).

Drie lêers vir hersiening

1. Groepering deur k-betekenis

Probleme van hierdie soort verwys na "ontoesighoudende leer", wanneer ons die brondata in een of ander voorafbekende aantal kategorieë moet opdeel, maar terselfdertyd nie 'n aantal "korrekte antwoorde" het nie, moet ons dit onttrek uit die data self. Die fundamentele klassieke probleem om subspesies van irisblomme te vind (Ronald Fisher, 1936!), wat as die eerste teken van hierdie kennisveld beskou word, is van so 'n aard.

Die metode is redelik eenvoudig. Ons het 'n stel voorwerpe wat voorgestel word as vektore (stelle van N getalle). By irisse is dit stelle van 4 getalle wat die blom kenmerk: die lengte en breedte van die buitenste en binneste blomdeksegmente, onderskeidelik (Visser se irisse - Wikipedia.). As 'n afstand, of 'n mate van nabyheid tussen voorwerpe, word die gewone Cartesiese metriek gekies.

Verder, arbitrêr (of nie arbitrêr nie, sien hieronder) word die middelpunte van die trosse gekies, en die afstande van elke voorwerp na die middelpunte van die trosse word bereken. Elke voorwerp by 'n gegewe iterasiestap word gemerk as behoort aan die naaste sentrum. Dan word die middelpunt van elke tros oorgedra na die rekenkundige gemiddelde van die koördinate van sy lede (na analogie van fisika word dit ook die "massamiddelpunt" genoem), en die prosedure word herhaal.

Die proses konvergeer redelik vinnig. Op die prente in twee dimensies lyk dit so:

1. Aanvanklike ewekansige verspreiding van punte op die vlak en die aantal trosse

Masjienleer sonder Python, Anaconda en ander kruip

2. Stel die sentrums van trosse op en toekenning van punte aan hul trosse

Masjienleer sonder Python, Anaconda en ander kruip

3. Die oordrag van die koördinate van die middelpunte van trosse, herberekening van die behoort van punte totdat die middelpunte stabiliseer. Die trajek van die beweging van die trossentrum na die finale posisie is sigbaar.

Masjienleer sonder Python, Anaconda en ander kruip

Jy kan enige tyd nuwe groepsentrums instel (sonder om 'n nuwe verdeling van punte te genereer!) en sien dat die partisieproses nie altyd ondubbelsinnig is nie. Wiskundig beteken dit dat die geoptimaliseerde funksie (die som van die kwadraatafstande vanaf die punte na die middelpunte van hul trosse) ons nie 'n globale, maar 'n plaaslike minimum vind. Hierdie probleem kan oorkom word deur 'n nie-ewekansige keuse van aanvanklike sentrums van trosse, of deur die opsomming van moontlike sentrums (soms is dit voordelig om hulle presies in een van die punte te plaas, dan is daar ten minste 'n waarborg dat ons nie kry leë trosse). In elk geval het 'n eindige versameling altyd 'n infimum.

Jy kan met hierdie lêer speel by hierdie skakel (moenie vergeet om makro-ondersteuning te aktiveer nie. Lêers is vir virusse nagegaan)

Beskrywing van die metode op Wikipedia − k-beteken metode

2. Benadering deur polinome en uiteensetting van data. Heropleiding

'n Merkwaardige wetenskaplike en gewilder van datawetenskap K.V. Vorontsov praat kortliks oor masjienleermetodes as "die wetenskap om kurwes deur punte te teken." In hierdie voorbeeld sal ons 'n patroon in die data vind deur die kleinste vierkante metode te gebruik.

Die tegniek om die aanvanklike data te verdeel in "opleiding" en "beheer", sowel as so 'n verskynsel soos oorpassing, of "heraanpassing" by die data, word getoon. Met 'n korrekte benadering sal ons 'n fout hê op die opleidingsdata en 'n effens groter fout op die kontroledata. Indien verkeerd, fyn aanpassing aan die opleidingsdata en 'n groot fout op die kontroles.

(Dit is 'n bekende feit dat dit deur N punte moontlik is om 'n enkele kromme van die N-1de graad te teken, en hierdie metode gee gewoonlik nie die gewenste resultaat nie. Lagrange interpolasie polinoom op Wikipedia)

1. Stel die aanvanklike verspreiding

Masjienleer sonder Python, Anaconda en ander kruip

2. Ons verdeel die punte in "opleiding" en "beheer" in die verhouding van 70 tot 30.

Masjienleer sonder Python, Anaconda en ander kruip

3. Ons teken 'n benaderde kurwe langs die oefenpunte, ons sien die fout wat dit op die kontroledata gee

Masjienleer sonder Python, Anaconda en ander kruip

4. Ons trek 'n presiese kurwe deur die oefenpunte, en ons sien 'n monsteragtige fout op die kontroledata (en nul op die oefenpunte, maar wat is die punt?).

Masjienleer sonder Python, Anaconda en ander kruip

Natuurlik word die eenvoudigste weergawe getoon met 'n enkele partisie in "opleiding" en "beheer" subsets; in die algemene geval word dit herhaaldelik gedoen vir die beste aanpassing van die koëffisiënte.

Die lêer is hier beskikbaar, gekontroleer deur antivirus. Aktiveer makro's om korrek te werk

3. Gradiënt afkoms en foutdinamika

Daar sal 'n 4-dimensionele geval en lineêre regressie hier wees. Lineêre regressiekoëffisiënte sal stap vir stap bepaal word deur gebruik te maak van die gradiënt daalmetode, aanvanklik is alle koëffisiënte nul. 'n Aparte grafiek toon die dinamika van die foutafname namate die koëffisiënte meer en meer verfyn word. Dit is moontlik om al vier 2D-projeksies te sien.

As ons die gradiënt-dalingstap te groot stel, dan is dit duidelik dat ons elke keer die minimum sal oorslaan en die resultaat in meer stappe sal bereik, alhoewel ons op die ou end steeds sal kom (tensy ons die daalstap te veel vertraag - dan sal die algoritme "in wanorde" gaan. En die grafiek van die afhanklikheid van die fout op die iterasiestap sal nie glad wees nie, maar "twitchy".

1. Genereer data, stel die gradiënt afkomstap

Masjienleer sonder Python, Anaconda en ander kruip

2. Met die korrekte keuse van die gradiënt daalstap kom ons glad en vinnig genoeg tot 'n minimum

Masjienleer sonder Python, Anaconda en ander kruip

3. As die gradiënt daalstap verkeerd gekies is, slaan ons die maksimum oor, die foutgrafiek is "twitchy", konvergensie neem 'n groter aantal stappe

Masjienleer sonder Python, Anaconda en ander kruip
и

Masjienleer sonder Python, Anaconda en ander kruip

4. Met 'n heeltemal verkeerde keuse van die gradiënt daalstap, beweeg ons weg van die minimum

Masjienleer sonder Python, Anaconda en ander kruip

(Om die proses te reproduseer by die gradiënt-afkomsstapwaardes wat in die prente gewys word, merk die "verwysingsdata"-blokkie).

Lêer - volg hierdie skakel, jy moet makro's aktiveer, daar is geen virusse nie.

Is so 'n vereenvoudiging en metode om materiaal aan te bied, volgens die gerespekteerde gemeenskap aanvaarbaar? Moet die artikel in Engels vertaal word?

Bron: will.com

Voeg 'n opmerking