Procesvejlednings møde 11-05-2020

forskel på det man har arbejdet tidligere

hvorfor er det man netop skal bruge det

aflevere litteratur liste hvis man har i portefølje så det fint

udsøge de dele du skal bruge i forhold til litteratur liste

video med sin app og laver en overfladisk det skal man lade være med

her ligger der noget kompleksitet

begge emner skal inddrages

hvad i har lært hvad i har lavet og hvordan i er kommet frem til det.

Powerpoint:

Link til diverse sider:
Portefolio
Github
Andre links?
Læringsplan som er inde på min portefolio
Som viser viden, kompetencer og færdigheder
ETC Point
Produkt video
Video der viser det man har lavet (måske også side projekter)

ERFA Møde 07-11-2020

  • Anvendelsen af heat map til at visualisere data
  • Confusion matrix
  • Det er svært når det ikke realistisk
  • I forhold til NOSQL afprøve samme data flere steder = bredde
  • Hvordan ændres i det hvordan søges i det
  • Fordele og ulemper i forhold til andre databaser
  • Joins indexes specifikke funktioner specielle for nosql noget man kan med nosql som man ikke kan med andre db
  • Kigge på jobindex databaseadminstration og hvad de skal kunne og kigge på nosql

Sideprojekt – Neural Netværk – League of legends

Dette opslag omhandler et sideprojekt jeg har lavet i Machine Learning med algoritmen af neurale netværk. Sideprojektet omdrejer sig om spillet League of legends som jeg er stor fan af. Det er et spil jeg har brugt meget tid på at spille.

Jeg fandte det derfor interessant at lave et projekt omkring det. Derfor har jeg udviklet en beregner som skal forudse om man har spillet dårligt eller spillet godt. Det er et strategisk spil hvor man spiller 5 mod 5 og omhandler om at dræbe hinanden og ødelægge hinandens baser.

Det neurale netværk algoritme skal kunne forudse om man har spillet dårligt eller spillet godt ved at pumpe data ind:

  • Antal dræbte
  • Antal gange man har været død
  • Antal assisterende dræbte
  • Antal Wards placeret
  • Antal Pinkwards placeret
  • Antal wards ødelagte
  • Hvor meget skade man har lavet
  • Hvor mange CS (Creep store) man har

Udefra de værdier skal algoritmen fortælle om man har klaret det godt eller ej.

Der er blevet lavet en neural netværk algoritme. En kunstige neural netværk bentter matematiske værktøjer til at implementere algoritmen. Det neurale netværk er inspieret af den menneskelig hjerne og derfor navnet.

Det neurale netværk der anvendes er indenfor paradigmet for Supervised Learning som er et princip i machine learning som man kan anvende når man har med Labeled data at gøre. Under det princip har vi valgt tilgangen for classification. Classification omhandler at man klassificere sit output enten boolske eller lignende (dvs enten ja/nej, true/false, 0/1) der er dog blevet anvendt et karakter lignende skema hvor man får en karakter på hvor godt man har spillet og derfor klassificere det således.

Neural network - Wikipedia

Som vi kan se på ovenstående billede har vi input layer det er det data der bliver pumpet ind i algoritmen – i dette tilfælde af det spillets data. Det kaldes også input dimensions som i teorien bare er de features som datasættet har.

Så har vi hidden layer som ligger imellem input og output noderne, og som indeholder nogle BIAS værdier som laver en udregning og udefra uderegninger aktivere den noget der hedder (activiation function) og producere et output.

Så har vi vores output layer som er den endelig klassificering altså forudsigelsen.

Pilene kaldes for weights parameters som repræsentere værdier som bliver brugt til styrken i forbindelsen mellem neuronerne. Det var meget abstrakt forklaret – men jeg håber i forstår pointen.

I starten af projektet har vi følgendes implementering vi tager det linje for linje

Numpy biblioteket indeholder stor samling af matematiske funktioner på højt niveau og understøtter multidimensionelle arrays og matrixer. Vi anvender det i hele projektet.

Vi starter med at definere en funktion og denne funktion tager brug af numpy biblioteket. Vi køre linjen random seed som skal give os de samme random værdier til vores bias hidden layer så vi hele tiden har samme random værdier hver gang. Derefter Sætter vi vores synaptics weights til at være 8×1 matrix da vi har 8 features. med værdierne mellem -1 til 1. Så vi hele tiden arbejder i små værdier.

Så definere vi en sigmoid funktion. Sigmoid funktionen anvendes til at beslutte om en neuron skal aktiveres eller ej. Om informationen som det neurale netværk får er relevant for aktivationen af et neural netværk eller ej.

Vi definere også en sigmod derivative funktion som bliver brugt til at justere vores synaptic weights efter hver iteration.

Så definere vi en trænings funktion. Som får noget træningsinput (som er feature værdier i vores data) nogle træningsoutputs(som er outputted i vores datasæt) og hvor mange iterationer vi gerne vil igennem. Funktionens body indeholder et for each loop som siger at for hver iteration vi har i vores training_iterations vil vi gerne kalde metoden think som er i selve klassen og giver den trænings input som parameter. Derefter finder vi resultat af fejl ved at trække træningsoutput fra det beregenede output. Derefter justere vi vores synaptic weights ved at inkludere vores trænings input, fejl resultat og vores sigmoid deritative funktion.


Som vi kan se på ovenstående function er vores think function som tager imod et input og caster det til en float. Det er input brugeren indtaster i consolen. Vi får så returneret et output ved brug af sigmoid funktionen som tager imod inputsne og de predefinered synaptic weigthts.

np.dot hvis det ene array er et multidimensional array og b er et 1-D array som det er i vores tilfælde er det summen af produktet over den sidste axe af a og b. Derefter returnere vi outputtet.

Ovenstående billede er vores trainings input. Vi anvender numpys biblioteket igen til at lave det om til et numpy array grunden til vi bruger et numpy array er fordi at man så har adgang til en masse vector og matrix operationer samt er numpy arrays meget mere effektiv i runtime.

Værdierne er i arrayet er kronologisk rækkefølge: Antal dræbte, antal gange man har været død, antal assist, mængde af damage, antal wards placeret, antal pinkwards placeret, antal wards ødelagte og CS(creep store)

så har vi vores training output som indeholder karakteren i tal for 1 er det bedste og 4 er det laveste. Vi derefter laver det til et np array hvor vi transposer det således at værdierne er proportional.

Som det sidste kodestykke – viser ovenstående billede hvordan vi kalder vores train metoder som vi fik defineret tidligere, og giver den vores training inputs, training outputs og trainings iteration altså hvor mange gange vi vil itere igennem. Derefter printer vi synaptic weights efter at vi har trænet vores model.

Derefter udskriver vi til consollen som venter på at modtage input fra brugeren. Når brugeren har indtastet dataen vil vi smide dem ind som parameter inde i vores think metode som vi defineret før. Den går ind og anvender sigmoid funktionen med synaptics weight og udregner en beregning på korrekthed.

På ovenstående billede kan vi se resultatet vi får 99% korrekthed med at finde en karaktere til spilleren efter at have indtastet dataen. Det er meget præcist, fordi vi har trænet modellen med mange iterationer.

Refleksion

Under udførelsen af dette projekt stødte vi på nogle problemer i forhold til hvor store tallene var i vores data. da vi endte med weights der havde så mange decimaler at det ikke var muligt at regne med dem f.eks. 3.6234474e-20, derfor var vi nødt til at gå ind og mindske størrelsen på tallene for vores inputs. Først prøvede vi med at reducere, så der kun var tal mellem 40 – 0, men det virkede stadig ikke, så vi gik ind og dividerede det hele med 10, så vi endte med tal mellem 4 og 0, der lykkedes det os endeligt at få det til at fungere. Dette kan være problematisk da vi ikke har ændret noget i koden, kun i de inputs vi arbejder med, så hvis en person ville bruge vores pogram og taster inputs fra spillet uden at vide hvilket format tallene skal omregnes til, vil det fejle og personen vil få et forkert resultat ud.

Procesvejledning 27-04-2020

  • sådan hænger det sammen når man arbjeujder på den måde med hensyn til læring. At det bliver mere kompleks mere over tiden
  • tage udgangspunkt i vinduer kode når man skal snakke om det
    tage udgangspunkt i praksis hop direkt i det
  • tager den fra den anden ende så vi kommer igennem fra komepetencer og hen mod viden
  • bruger det aktivt frem for at snakke om det. Herunder refleksion -> snakke mod teori bruge den praktisk
    Tage udgangspunkt i jeres produkt konkrete ting og forklare udeaf

ERFA Vejledning 23-04-2020

  • Kigge på ANALYTICS Vidhya artikler omkring time series -> snakkede lidt omkring det problem jeg havde i projektet hvor vi arbejder med tidspunkter på hvornår der holdes pause
  • Når vi ikke har rigtige data så ved vi ikke hvor præcis modellen kan blive.
  • Kigge på classification altså holder han pause eller ikke
  • Timeseries vs classification
  • Drage konklusioner af sin data -> er det virkeligheden?

Specifikke Læringsmål og Læringsplan – 4.Iteration

Specifikke læringsmål og læringsplan – 4.Iteration

MålTeknik/VærktøjKriterierEvaluering
Anvende en databasegrænseflade til et Machine Learnings projekt Jeg vil gerne finde ude af hvordan jeg opretter en connection til MongoDB:

– Brug af erfagruppen til at diskutere måder på at kunne oprette en forbindelse.

– Søg efter viden på Youtube, Forums, Google og andre litteratur.
Kan jeg redegøre for hvordan jeg har implementeret min databasegrænseglade til min ERFA Gruppe og min produktgruppe samt diskutere relevante emner deromkring. Jeg kunne repræsentere det for min erfa gruppe og fremlagde hvordan jeg fik det integerede ind i et projekt jeg havde lavet i machine learning. Jeg kunne også indsætte et specifikt datasæt hvilket gjord det effektivt at bruge når jeg skulle trække data fra databasen ind til mit projekt.
Jeg vil gerne finde ude af hvordan jeg importere og eksportere data til og fra min databasegrænseflade:

– Brug af erfagruppen til at diskutere måder at gøre det på

– Anvendelse af Linkedin/Google/Youtube

– Netværk / venner / bekendte
Arbejde med et datasæt som er relevant for vores ProduktJeg inspecter datasættet, for at finde ude af om der er nogle problematikker som skal løses før vi kan udføre vores machine learnings algoritme:

– Jeg anvender pandas biblioteket til at læse datasættet

– Jeg anvender Python Programmering til at udskrive et læsbart datasæt

– Bruger linkedin/Youtube for at finde video omkring emnet

– Anvender litteratur herunder Bøger omkring emnet


Kan jeg fremvise mit datasæt for min erfa gruppe?

Kan jeg redegøre for de ædnringer der er blevet foretaget undervejs?

efter snak med produktvejlednings mødre ente jeg med ændre kurs og nedprioritere denne del så jeg kunne lægge vægt på andre side projekter i nosql og i machine learning. Jeg fik også dermed snakket i erfa gruppen angående at anvende andre måder at datavisualisere.
Jeg undersøger missing values, non-numerical features samt overflødiske features for modellen:

– Jeg anvender Numpy biblioteket til at fikse de steder hvor der er missing values

– Jeg anvender scikitlearn Biblioteket til at ændre non-numerical features til numerical features

– Jeg anvender pandas biblioteket til at fjerne ikke-relevante features

– Jeg anvender google for at finde artikler omkring emnet

– Bruger netværk herunder ERFA grupper/Bekendte

– Bruger linkedin/Youtube for at finde video omkring emnet


Generelle læringsmål

Viden – Den studerende har viden om
  • Det/de valgte emners teori og praksis
  • Det/de valgte emners relevans i forhold til IT-fagets teori og praksis
Færdigheder – Den studerende kan
  • Udvælge, beskrive og foretage litteratursøgning af en selvvalgt it-faglig pro-blemstilling
  • Diskutere samfundsmæssige aspekter knyttet til det/de valgte emner
  • Vurdere problemstillinger og opstille løsningsmuligheder i forhold til det/de valgte emner
  • Formidle centrale resultater
Kompetencer – Den studerende kan
  • Selvstændigt sætte sig ind i nye emner inden for fagområdets teori og/eller praksis
  • Perspektivere og relatere det/de valgte emner i forhold til uddannelsens øv-rige emneområder

Produktvejledning – 17-04-2020

  • Nødvendigheden / vigtigheden i at arbejde sammen, arrangere nogle dage f.eks mandag, onsdag og fredag som gruppe online og arbejde sammen, planlæg og snakke med hinanden og få holdt hinanden op på det. Så det giver mening
  • Fremlagde vores portfolio og lidt at de sideprojekter vi havde lavet.
  • Ricki viste sine sideprojekter i datavisualisering webudvikling flask
  • Daniel viste sit sideprojekt i datacamp og sin portfolio
  • Vi skulle få fat i Frank endnu engang.

Side Projekt – Supervised Learning

Denne post indeholder mit sideprojekt for Supervised Learning (Machine Learning) som jeg har taget i Datacamp. Den indeholder et projekt som omhandler at lave forudsigelser på Kredit Kort godkendelse.

Dette er link til mit github som indeholder både datasættet og min Python Fil.

https://github.com/musl0074/CreditCardSupervisedLearning

Jeg har brugt PyCharm fra Jetbrains – som er et super fint IDE til at lave Python projekter i. Dermed er biblioteker som Numpy, Pandas og sklearn blevet installeret til mit projekt.

ERFA Vejledning 26-03-2020

NOSQL

  • Skulle fremvise det type af NOSQL der findes i dette tilfælde havde jeg NOSQL GRAPH Databaser -> lagt tutorial oppe på min portefølje
  • Snakke lidt om de andre NOSQL typer som de andre havde om
  • Kigge på til næste gang hvordan man kan anvende document database i et Machine Learnings projekt og prøv og se om man kan få en integration mellem de to projekter database og machinelearning

Machine Learning

  • Jeg havde ligget syg så jeg snakkede om hvorvidt jeg skulle catch up på det jeg har været bagud med.
  • Hvad jeg kan gøre for at indhente -> færdiggøre credit card approval projektet i Datacamp
  • Arbejde med et datasæt som er relevant og som peger lidt mere mod projektet -> herunder snakke med Ricki som simon også snakkede med
Design a site like this with WordPress.com
Get started