kimfalk

  • kimfalk wrote a new post, Uregerlig data, on the site Kim Falk 6 years, 11 months ago

    Big data er over det hele, og man skal gemme så meget data som man kan, og hele tiden prøve at indsamle mere.

    Men hvad gør man så når man har alt det data, som er så stort at ens database spørger efter mere kaffe, hver gang man prøver at køre en forespørgsel på data, hvis din maskine ikke bare dør, og skal genstartes. Når man snakker om store mængder data handler det ikke kun om store kvantiteter, men også om mange features (eller kolonner i sql sprog)

    Hvis man har penge og tid nok, kan man selvfølgelig købe større og hurtigere udstyr og lade det tage den tid det tager at tygge på det. Men hvad skal den overhovedet tygge på?

    Bare fordi man har data, så er det jo ikke givet at der springer noget i øjnene ved at kigge på de ti første observationer. Hvordan finder man ud af om der er sammenhænge i data, eller mulighed for at bruge det til at forudsige andre ting.

    Et spændende datasæt som er nemt tilgængeligt er Diamonds, der kommer med script sproget R (link), det spændende ved det her sæt er at det ikke er entydigt hvad der giver prisen på en diamant, en stor diamand kan godt være billig hvis dens klarhed er dårlig, men en klar stor diamant kan også være relativ billig hvis andre forhold ikke er til stedet, altså mange forskellige ting man skal tage i betragtning hvis man bruge det data sæt til at forudsige diamant priser. Så rigtig et sæt hvor man har mulighed for at slå sig løs.

    Hvis nu man skal lave et site der forudsiger diamant priser, så er det en god ide at lave en analyse af de data man har til rådighed og tjekker om man faktisk kan lave sådanne forudsigelser. Og her er det at flere script sprog og frameworks er gode, da man hurtigt kan hacke et script sammen som viser resultater.

    Exploratory Data Analysis (EDA) er en egenskab som mange snakker om for tiden, og definere den proces som bruges til at finde hoved og hale i data. Men fordi datasæt er så forskellige er det et område der er forholdsvist svært at lære, den største autoritet på området er en bog fra 1970 (link). Men den er så dyr at jeg er for nærig til at købe den. Men i takt med big data bølgen raser er der mere og mere interesse for EDA.

    Til Årets Goto konference er der mulighed for at høre historier fra frontlinen i “Explorations in Interactive Visual Analytics: Supporting Analysis and Data Visualization at Scale”, hvor der bliver snakket scripts og metoder.

    Følgende diagram er laver med et R library ved navnet GGally, det viser 2d grafer af hver feature med hver feature:

    Rplot

    Det er en af måderne at starte på. Diagrammet er genereret med følgende R-script:

    library(GGally)
    theme_set(theme_minimal(20))
    ggpairs(diamonds)

    Og illustrere et godt eksempel på hvorfor så mange bruger R (link) til at forstå data, for det kan så utroligt meget.

  • Jeg fik adgang til Azure Machine Learning, og har leget lidt med det! Det er sjovt og virker rigtigt nemt at gå til.

    Azure machine learningAzure ML studio

    Jeg har fundet ud af hvordan man læser en CSV fil ind i systemet, hvordan man konvertere de indlæste data til et dataset, hvordan man fortæller systemet hvilke kolonner som er input og hvilke er output.

    Mine data er også blevet delt, således at jeg har et trænings sæt og et test sæt. Som det jo forskrevet, således jeg kan træne min algoritme på trænings sættet og verificere performance med test sættet.

    Jeg har også fundet den machine learning algoritme som jeg gerne vil bruge.

    Men så holdte festen også!

    Hvordan får jeg indsat mit trænings-sæt i algoritmen? Algoritmen kræver en instance af et IClusterDotNet object. som jeg ikke har, og ikke rigtig er beskrevet noget steder. Søger man på IClusterDotNet er der kun et hit og den side forklarer ikke noget. Så jeg har data som jeg tror er på det rigtige format, men ikke understøtter det rigtige interface.

    Min Azure review adgangs periode slutter på søndag, så jeg tror ikke jeg når at prøve at køre en algoritme og se resultater inden da. “Hello world” eksemplet er nemt nok og kan hurtigt implementeres (link), men det var et eksempel på regression og ikke klassificering.

    Så min konklusion er at det ser nemt og hurtigt ud, men dokumentationen mangler og jeg sidder tilbage med en frustede følelse af at jeg måske kunne have fået det hele til at virke på 5 minutter eller 5 timer.

    Men det er noget som jeg ofte oplever, når jeg prøver nye frameworket, der er et “hello world” type eksempel som får det til at se ud som om det er det nemmeste i verden, men det betyder ikke det er nemt at lave andre ting med frameworket. Skridtet fra “hello world” implementering til at prøve at lave noget selv er ofte svær.

  • Jeg er i gang med at tage endnu et online kursus som hedder DATA ANALYTICS IN R. Som navnet antyder handler det om at lave data analyser i sproget R. Den seneste opgave vi blev stillet var at indsamle alle dine facebook venners fødselsdage og prøve at undersøge hvilken måned der er fleste der har fødselsdage og hvem der har fødselsdag samme dag som dig osv. Opgaven i sig selv er ikke så interessant da data mængden ikke er vanvittig stor, det der var den store udfordring var at få data ud af Facebook. Ifølge flere blogs kan man gøre det direkte gennem facebook, som har noget funktionalitet til at lave sådan en export, men desværre har de skiftet design og i det nye design er det ikke længere tilladt. Til gengæld er der noget som hedder developer.facebook.com der blandt andet tillader at man kan søge i facebooks nye graph database. Og det er jo spændende!

    facebook developer apifacebook developer api

    På developer.facebook.com i tools menuen finder man Graph API Explorer, som netop tillader at man søger i grafen. Søgninger kan gøres gennem interfacet på siden eller gennem http requests direkte, som returnere json. Her ses web interfacet.

    Facebook GraphAPIfacebook Graph Api

    Man kan nu vælge mellem at bruge http requests eller FQL queries. http requests er Restfull, mens FQL er et SQL ligende sprog. Følgende er et eksempel på hvordan det ser ud.


    SELECT name, birthday, birthday_date, concat(substr(birthday_date,0,6),"2013")
    FROM user
    WHERE uid in (SELECT uid2
    FROM friend
    WHERE uid1 = me())
    AND birthday_date != 'null'

    Hvilket skulle finde alle dine venners fødselsdag.Men det gjorde det så ikke, og nu skal i høre hvorfor;

    Facebook FQL interface
    Facebook FQL interface

    Her begyndte jeg for alvor at syntes det var sjovt, for man skal selv vælge hvilke data der må returneres fra din facebook profil, når man forespørger et ”Access Token”. Her kan man se hvad man giver andre applikationer tilladelse til at se når man installere en facebook app.

    privacy setting in developer.facebook
    privacy settings in developer.facebook

    Med de nye privacy regler (new facebook login) har man lavet restriktioner så det ikke er muligt for mig at tillade at en app kan se mine venners fødselsdag (hvilket jeg faktisk godt kan lide), men det betyder at man kun kan søge begrænset mængder af data, og derfor fik jeg kun 2 fødselsdage ud af den søgning jeg lavede ovenfor, og det er fordi der kun er to af mine facebook venner som også bruger developer.facebook, og derfor har givet app tilladelse til at returnere deres data, og jeg har givet tilladelse til at vise dem.

    Men husk næste gang at du bruger facebook login på en 3 parts side, så tillader du også den side at tilgå det her graph API og trække de data som du giver tilladelse, heldigvis kan du ikke bestemme om siden må se dine venners data, men de kan nemt for tilladelse til at se dine posts, billeder ect. Tilsidst endte jeg med at lave en grim export a mine facebook data ind i en Google Calendar (link) (i dag kan jeg ikke tilgå denne funktionalitet mere (link)) , som jeg så exportede som CSV, som jeg så læste ind i R. Ved at udføre følgende script:


    library(lubridate)
    data <- read.csv('C: \birthdays.CSV', header=TRUE)
    data$Month <- month(dmy(data$Start.Date))
    qplot(data$Month, binwidth=1)
    ggsave('bithdayPerMonthHistogram.png')

    Fik jeg følgende:

    fødselsdags histogramfødselsdags histogram

    Som viste at hovedparten af mine venner har fødselsdag i september, hvilket jo er pudsigt. I hvertfald indtil jeg kiggede lidt nærmere i mine data og opdagede at jeg også havde exportede de entries i google calendar jeg havde indsat for at huske at min hund skulle have antibiotika 3 gange dagligt i september sidste år. Men graf databaser er sjove, så jeg tror jeg skal i gang med at lave en facebook app, som ikke gør meget udover at spørge om tilladelse til at kigge i brugernes data, således jeg kan få et ordenligt datasæt at lege med, det er det de fleste facebook apps tjener penge på alligevel.

  • kimfalk commented on the post, De fem dysfunctions af managers., on the site Kim Falk 7 years ago

    Jeg vil godt gå så langt som at gå med til at pyramiden og tingene som bliver adresseret er relevante for teams 🙂

    Men jeg syntes stadig det giver et ret skræmmende billede af hvad der sker i manager teams, særligt når du siger at de ikke er særligt karrikerede.

  • kimfalk commented on the post, De fem dysfunctions af managers., on the site Kim Falk 7 years ago

    Tak fordi du læste min anmeldelse 🙂

    Jeg er helt enig i at kernen i alle gode teams er indbyrdes tillid. Jeg er også enig i at folk sjældent tænker rationelt, og at de dysfunctions som bliver nævnt i bogen ofte er at finde i ikke fungerende teams.

    Det jeg ikke kan lide ved bogen er sikkert hvad du ligger i ordene “lidt amerikansk”, som jeg…[Read more]

  • For ikke så længe siden skrev jeg om H2O (link) , der er et nyt open source machine learning platform, som skulle gøre machine learning tilgængelig for folket. Nu har en anden platform netop meldt sig på banen, måske på en lidt større skala, eller ihvertfald med et lidt større navn bag, men ikke særlig open source. Microsoft har netop annonceret Azure ML, som er en cloud service der kan bruges til at lave business analytics og machine learning. Som forestiller sig en verden hvor elevatorer altid venter på dig, hvor fly aldrig kommer for sent. Ved brug af predictive maintenance, som er baseret på predictive analyser som i bund og grund er machine learning, bliver alle problemer løst dagen før de opstår. Igen er jeg altid lidt skeptisk hvad sådan noget angår, men det er da en vision, og hvad jeg har set af Azure ML så ser det virkelig nemt ud, i hvert fald med “hello world” type scenarier, så det bliver sikkert et skridt i den rigtige retning.

    Som sagt har jeg stadig ikke prøvet med egne data, men det ser ret fikst ud, og lige til at gå til. Ved hjælp af simple drag and drop interface kan man hurtigt bygge analyser op, et eksempel kan ses i nedenstående screenshot.

    Azure ML screenshot

    Basalt set virker alle business analyser på samme måde. Man har følgendende skridt som skal følges:

    Indlæs data
    Rengør data
    Split data
    Træn algoritme
    Score model.
    (Udfør forudsigelser)

    Og det gør Azure ML brug af til inddeling af de forskellige faser. Indlæs data handler selvfølgelig om at vi skal indlæse nogle historiske data, som skal bruges som base for vores læring. Data skal rengøres så algoritmen ikke ender i udefineret tilstande fordi data er duplikeret eller en værdi ikke er defineret osv. Derefter deles data op i to sæt, et trænings sæt og et testsæt. Det første bruges til at træne algoritmen med, og det andet til at verificere om modellen kan forudsige værdier givet i testsættet.

    Der er flere ting som jeg synes ser rigtig smarte ud, for det første kommer Azure ML med en masse readers som gør det nemt at indlæse data, samt mulighed for at lave egne readers så man kan hente data fra f.eks. Mongo også. Problemet ved at have analysen kørende i skyen er at alt koster penge, så man vil sikkert lave noget data aggregering inden det bliver indlæst, for at reducere trafikken og dermed omkostningerne.

    Når man har lavet et forsøg med en algoritme, præsenteres resultatet på en overskuelig måde, med statistik for hvor god denne algoritme har været. Hvis man ikke er tilfreds så kan man trække en anden algoritme ind, og der er rigeligt at vælge imellem, køre dem parallelt og så sammenligne resultaterne.

    Når man er tilfreds trykker man på en knap og vupti så er der en webservice klar til at forudsige nye ting.

    Det er da nemt. Som sagt skal man altid være varsom med at rose sådan en platform før man har prøvet den. Men det her ser rigtigt godt ud.

    Selvom det hele ser nemt og ligetil ud tror jeg hurtigt man kan komme ud i at skulle specificere en masse forskellige queries, og kodestumper i de forskellige opgaver (tasks), der ville jeg ønske der var noget Visual Studio integration, således man kunne have en solution med det hele i. Jeg kunne også godt have tænkt mig at der var en desktop version med algoritmerne, så man kunne lege med dem uden at skulle bruge penge – Tilbage er de gode gamle terminal dage. Derfor bliver det også spændende at se pris modellerne.

  • Jeg er med i en bogklub. En klub som mest består af folk fra gruppen der kalder sig managers. Jeg er ikke normalt en del af den gruppe, og jeg tror de har inviteret mig med hovedsaglig for at de kan prøve at få et indblik i en verden de sikkert aldrig forstår, nemlig udvikling. Jeg er der af samme grund.

    Den sidste bog på stakken er en lille fable ved navnet “The Five Dysfunctions of a Team” som ifølge beskrivelsen fundet på Amazon.co.uk er efterfølgeren til den berømte klassiker “The Five Temptations of a CEO”.

    Bogen handler ikke om udviklingsteams, men management teams, og beskriver et sådan team der har fem dysfunctions, som kan ses på pyramiden nedenfor:

    The five dysfunctions

    Der er stor forskel på folk og historier, og kigger man på amazon eller hører snakken ved kaffemaskinen, så er den her bog virkelig god.

    Jeg er ikke så imponeret (men jeg er også mest til bøger enten med matematiske fomler eller rumskibe, og ikke så meget til bøger som reducere folk til lemmings). Jeg læste den færdig, fordi jeg syntes det var et skræmmende billede af hvad ledere i firmaer rundt omkring synes er spændende.

    I fablen er CEO’en Kathrine den usansynlige helt, som kommer ind og tager de forvildede top-performing managers ved hånden – eller direct reports som de kaldes i bogen, og hjælper dem ud på en rejse hvor de selv indser fejlen i deres måde at være på.

    Bogen er meget firkantet med alt, alle er specifikke stereotyper, alle er skakbrikker som kan rykkes uden hensyn til spilleregler, blot så chefens opfattelse af næste træk kan blive forberedt. Et godt eksempel på bogens syn på hvordan folk ses som resourcer er følgende afsnit:

    “Finally, it was Jeff who offered a solution. He proposed cutting one future product line entirely and delaying another for at least six months. Nick then suggested redeploying the engineers from those projects and training them to assist sales reps with product demonstrations.”

    Lencioni, Patrick M. (2011-11-17). The Five Dysfunctions of a Team: A Leadership Fable (J-B Lencioni Series) (pp. 144-145). Wiley. Kindle Edition.

    Gad godt at vide hvor mange udvikler-teams der lige kan laves om til salgsrepræsentanter. Men okay det er jo bare udviklere, men hvad jeg næsten syntes er endnu værre er at de her top-manager bliver fremstillet som en flok aber der udelukkende lader sig drive af følelser. Selvfølgelig skal en fabel karikere og overdrive stereotyper, men de her opfører sig virkeligt som en flok teenagers med tømmermænd, mens deres nye leder holder hovedet koldt, og klarer det hele med anekdoter om hendes mands baseball-team og allestedsværende overblik.

    Men på trods af mine forbehold synes jeg, at der var nogle ting, som er værd at tænke over, som bliver nævnt i bogen:

    Et møde er ligesom en film, der er altid en konflikt som skal løses, hvis der ikke er nogen konflikt bliver mødet kedeligt og burde afbrydes.
    Alle beslutninger der tages skal bakkes op af teamet, ikke kun den person hvis område den ligger i, og alle er derfor også lige vigtige, og alle står inden for beslutningerne.
    Man skal sørge for at det er vigtigere for hvert medlem af teamet at teamet performer end at medlemmet selv ser godt ud. Husk at du kun ser så godt ud som det dit team producerer.

    Hvad jeg ikke kan forstå er at der ingen steder står noget om at hjælpe hinanden, det lyder mere som klingon-officer-håndbog end noget jeg ville forvente at læse omkring management.

    Lad os ende denne post med endnu et citat fra bogen:

    “In spite of her limitations as a public speaker, Kathryn had a knack for telling stories.”

    Lencioni, Patrick M. (2011-11-17). The Five Dysfunctions of a Team: A Leadership Fable (J-B Lencioni Series) (p. 164). Wiley. Kindle Edition.

    Ville ønske vi kunne sige det samme om Patrick!

    • Tak fordi du læste min anmeldelse 🙂

      Jeg er helt enig i at kernen i alle gode teams er indbyrdes tillid. Jeg er også enig i at folk sjældent tænker rationelt, og at de dysfunctions som bliver nævnt i bogen ofte er at finde i ikke fungerende teams.

      Det jeg ikke kan lide ved bogen er sikkert hvad du ligger i ordene “lidt amerikansk”, som jeg finder meget udansk, og ofter virker kontraproduktivt i danske firmaer – faktisk i mange ikke-engelsktalende lande.

      Jeg kan rigtig godt lide storytelling, men tingene skal give mening, jeg syntes at personerne er så karikerede at jeg sad og krummede tær over hvor dårligt de blev fremstillet, men endnu værre syntes jeg at historien indeholder en masse problematiske synspunkter, som ikke burde blive brugt i praktis.

      Faktisk synes jeg at udvikleren er den mest virkelige person, men det har også noget at gøre med at han sidder der fordi han startede firmaet, mens de andre sidder der fordi du skulle være top perfomer ledere. Men igen, jeg er jo selv udvikler, så jeg ved ikke om bare viser at jeg mangler empati for managers :).

    • Jeg vil godt gå så langt som at gå med til at pyramiden og tingene som bliver adresseret er relevante for teams 🙂

      Men jeg syntes stadig det giver et ret skræmmende billede af hvad der sker i manager teams, særligt når du siger at de ikke er særligt karrikerede.

  • Når der er nogen som siger at de har løst alle de store udfordringer i et komplekst problemområde, så bliver jeg normalt lidt skeptisk, men alligevel nysgerrig (om ikke andet bare for at finde huller i det). Så da jeg læste om en ny machine learning open source platform, begyndte jeg straks at downloade.

    Den bliver præsenteret som skruetrækkeren der passer på alle bigdata-skruer, og den skulle dreje meget hurtigt. Introvideoen nævner 1000 gange hurtigere end R, så må man jo prøve.

    Vidunderet er navngivet H2O, og skulle kunne håndtere store datamængder, problemer med langsomme algoritmer, og gøre det at lave analytics for dit firma…. en simple sag. Og så laver den også cappuccino med ekstra cremefuld skum, eller? Nej. Det er en data-engine, som betyder at det er god til at tage store mængder af data og lave beregninger med det. Map Reduce er det gamle sort i Big data-moden, men mange er begyndt at kigge på andre mønstre for at processering af data[1], og her skulle H2O være stedet og gå hen, da det både skulle være hurtigt, men også virke sammen med Hadoop. Forvirret? Det er jeg.

    For at teste hvor nemt det er, besluttede jeg at prøve at udnytte samme algoritme som beskrevet i en tidligere indlæg ved navnet K-means og se om jeg kan slå min nuværende position på den Kaggle-konkurrence som jeg skrev om i samme indlæg.

    H2O er nem at få op at køre, blot download en jar fil, og kør den, og vupti har du et web interface som kan indlæse dataset og lave segmentering og regression.

    h2oJarrunning

     

    Det virker som om at der er stadig nogle børnesygdomme og det er ikke altid klart, hvad det er man skal fylde i de forskellige felter, hvad betyder f.eks. “type Iced”? , men jeg er sikker på at det bare kræver lidt ekstra tid, og så snart man har kravlet lidt længere op af indlærings kurven, giver det hele mening.

    Den time jeg havde sat af til at prøve at få H2O til at løse min kaggle opgave var ikke nok. Det lykkes mig at indlæse data, 73Mb, det tog cirka 10 sek, og en stikprøveudtagelse siger at data ser okay ud.

    image00

    det samme med testdata. Man da jeg nu gerne vil lave en prediction på mine testdata, går det galt: Hver gang jeg prøver får jeg fejlen:

    Error: water.fvec.Frame cannot be cast to water.OldModel

    hvilket sikkert giver god mening for dem der har implementeret det men for mig er det lidt af en showstopper. For at se hvor hurtigt den faktisk er, prøvede jeg at lave en klassificering af testsættet, det gik ret hurtigt, men det fandt ikke noget der ligner de samme clusters som var givet, men om det er data eller algoritmen kan jeg ikke svare på, men under alle omstændigheder så der er måske også lidt mere der skal undersøges.

    Alt i alt virker det som en spændende platform, som jeg har tænkt mig at lege lidt mere med. I dokumentationen står der noget om et RESTfull api også, hvilket jo kunne være sjovt at snakke med gennem noget C# kode. Men som med de fleste ting, kræver det lidt tid at sætte sig ind i hvordan det fungerer. Jeg er ikke helt overbevist om at det er så simpelt som introvideoen lover.

    Men kan man overhovedet forvente at det er muligt at lave et simpelt værktøj til noget så komplekst som machine learning algoritmer? Jeg ville være nervøs for, at nogle af de ting som udelades i et simpelt interface er de parametre som gør forskellen på en god analyse eller ej.

    Også nysgerrig? Så kan det være vi ses på GOTO enten København eller Århus og høre chefen bag firmaet OxData som står bag H2O, præsentere vidunderet i en talk. Præsentationen hedder “Fast Analytics on Big Data” og gives fredag i København d. 26 september på GOTO konferencen. Her håber jeg på at han vil fortælle noget mere om de datastrukturer som bliver brugt internt, og om algoritme-implementeringer. Men er også meget nysgerrig for at høre om hvilke løsninger der er blevet lavet omkring platformen.

  • Cousera er rigtigt godt, der er mange kurser omkring machine learning og Big Data. Jeg har taget flere af dem og nyder den frihed der. Specielt vil jeg anbefale Ng’s Machine learning course(https://www.coursera.org/course/ml), som iøvrigt lige netop er opstartet igen, så hvis man er hurtig kan man lære machine learning hen over sommeren.

    Me…[Read more]

  • Jeg har brugte nogle hektiske måneder på at prøve at balancere et arbejde og familie samtidig med at jeg har taget et kursus på KU ved navnet ”Statistical Method in Machine learning”.

    Kurset var fedt og jeg kan varmt anbefale det, specielt hvis du kan gå ned i arbejdstid mens det står på, for ellers er det noget af en mundfuld der kan blive lidt for meget både for dig selv og dine omgivelser.

    ”Men hvad kan man egentlig bruge sådan et universitets kursus til?”, blev jeg ofte spurgt om, når jeg har fortalt at jeg var i gang med et kursus på uni. Så med kurset veloverstået og eksamensopgaven uploaded, tænkte jeg, at jeg skulle se hvad jeg egentlig kunne bruge de algoritmer til, som jeg havde implementeret i opgaven. Så jeg prøvede at logge ind på Kaggle.com(*).

    Digit recognizer, er en konkurrence der handler om at genkende håndskrevne cifre. Jeg valgte problemet fordi det minder om et problem som også blev stillet til eksamen, og faktisk er et meget ret almindeligt klassificerings problem. Jeg brugte en klassificerings algoritme med det sexede navn k-nearest neighbors, der kan findes i maven på mange forskellige systemer, dels fordi den er forholdsvis nem at implementere og rimelig nem at optimere til at give gode resultater.

    For at forstå hvad k-nearest neighbors algoritmen gør, kan man forstille sig et koordinatsystem som indeholder en mængde punkter (eller bare kigge på koordinatsystemet nedenfor), til hvert punkt er der en klassifikation (som er repræsenteret som en farve). Mængden som indeholder disse punkter, med klassifikationer, kaldes for et træningssæt.

    For at klassificere et nyt punkt kigger man blot på de k nærmeste naboer og beregner hvilken klassificering er bedst repræsenteret. Så f.eks. hvis du skal klassificere punktet (1,-1) er det nemt at se at det skal være blåt.

    Normalt prøver man nogle forskellige værdier Koordinat system.for k og laver noget som hedder krydsvalidering, men i mit hovmod tænkte jeg at vi jo lige kunne prøve at køre den med k=9, som var det optimale i eksamen.

    Hvilket k der er optimalt, afhænger meget af den type data man bruger den på, så normalt går der en del arbejde forud for at vælge det rette k. At vælge det rette k har stor betydning og kan betyde meget store udsving i kvaliteten af de svar som den giver. F.eks. i eksemplet ovenfor kan det have stor betydning hvis man forstiller sig at man skal klassificere punktet (1,-0.5) hvis k = 3 er det klart at det nye punkt skal være grønt også, mens hvis k = 9 bliver det rødt.

    Eksamensprojektet have 6 dimensioner og et trænings sæt på 300, mens træningssættet for digit recognizer har 726 dimensioner og 42 000 observationer (billeder med en klassifikation). Så det tog noget længere at udregne svaret som bestod i at klassificer 28 000 billeder af håndskrevne cifre, faktisk en hel det. Det tog lidt over 21 timer.

    Uden at have analyseret data, kunne min simple implementation klassificere 91.957 % rigtigt, hvilket gav mig den ringe position af 285 på listen. Hvilket jo ikke er i toppen, men jeg var ret overrasket over at koden kunne bruges til noget som ikke var akademisk, så nemt.

    Der er en del tricks som man kan gøre for at forbedre denne algoritme, men mere om det i en anden blog.

    (*) Kaggle.com er et konkurrence site, hvor man får et dataset med observationer og klassifikationer som kaldes et træningsset, man skal så baseret på sit træningsset, klassificere et sæt med nye observationer. I ovenstående digit recognizer konkurrence får man givet et datasæt hvor observationerne er en liste af intensitet for hver pixel i et billede af et håndskrevet ciffer samt en klassificering, altså hvad for et tal det er.

     

    • Cousera er rigtigt godt, der er mange kurser omkring machine learning og Big Data. Jeg har taget flere af dem og nyder den frihed der. Specielt vil jeg anbefale Ng’s Machine learning course(https://www.coursera.org/course/ml), som iøvrigt lige netop er opstartet igen, så hvis man er hurtig kan man lære machine learning hen over sommeren.

      Men når det er sagt så må jeg også hellere pointer at der er meget stor forskel på hvad du kan og har lært efter et coursera kursus og efter et KU kursus,

    • Fantastisk link! Tak for det Morten.

  • Alle 3 af Gartners V’er er vigtige og interessante i mine øjne.

    Men hvis du en dag skal implementere en big data løsning vil du opdage at du kommer til at bruge langt mere end en tredje del af tiden på at […]

  • Så vidt jeg ved så har hjernen to steder den gemmer ting, den ene er den hurtige med parat viden og ting som man bruger ofte, og en anden som er langsommere, og som vi ikke kan hente data fra direkte, men som […]

  • ThumbnailInspireret af Biffen, som er en ivrig debattør på vores side, og blandt andet skrev en masse kommentar på Thereses post [Problemet med big data], skrev jeg til DMI for at høre hvordan de rent faktisk håndterede […]

  • Hej Andes,

    Først vil jeg lige sige undskyld at din kommentar var så længe om at komme på, jeg havde ikke helt forstået godkendelses proceduren endnu.

    Det er en god pointe, har hørt om såkaldte […]

  • Inovation kommer af mange ting, og ofte tales der om organiseret inovation.

    Men ofte syntes jeg at det kan koges ned til at man kun kan være innovativ på et område som man kan overskue. I mange firmaer bliver […]

  • “Behovet opstår før produktet. Dermed skal det gode produkt designes ud fra en forståelse af brugerens liv.” Men hvad så med de apps som man ikke vidste man havde brug for, men som man ikke kan undvære efter 10 […]

  • Det lyder ikke dårligt med lidt havudsigtstid, specielt ikke hvis det er ud over en thailandsk strand.

    Kom til at tænke på om firmaer overhovedet er interesseret i at folk er innovative, eller er det bedre for […]

  • ThumbnailI en tid hvor alting skal være optimeres og strømlines. Hvor alting bliver målt i målbare enheder, er det svært at finde plads til kaos og tid til at være kreativ, hvor man kommer op med nye ideer, som ikke […]

  • Faktisk burde man kun tage beslutninger baseret på alt data i hele verden, men siden det ikke er muligt prøver man an approximer baseret på de data man har. Sådan er det med statistik såvel som machine learning. […]

  • Load More