Kan vi bestemme forbryderens udseende ud fra et DNA-spor?
Forstil dig, at politiet finder et DNA-spor på et gerningssted. I dag kan politiet bruge DNA-sporet til at undersøge om det passer til en DNA-profil for en kriminel i politiets registre. Politiet kan også sammenligne en mistænkt persons DNA-profil med et DNA-spor fra forbrydelsen. I fremtiden kan politiet bruge DNA-spor til at forudse forbryderens udseende, så udseendet kan bruges i opklaringsarbejdet. Man begynder at kunne forudse dele af et menneskes udseende ud fra DNA-materiale. Øjenfarve er en af de første karakteristika, man kan forudse. Du har nok hørt om AI = Artificial Intelligens eller kunstig intelligens. I dette forløb vil vi vise dig et eksempel på, hvordan AI kan bruges. Machine learning (ML) er et bedre navn end AI. Machine Learning fortæller nemlig, at computeren lærer ud fra noget data og derefter forudser nyt.Tak til
Vi er blevet inspireret til dette forløb af Morten Wiuf og Marie-Louise Kampmann på Retsmedicinsk Institut på Københavns Universitet. Hvis du er blevet interesseret i lave SRP indenfor dette emne, holder instituttet en gang om året en SRP-dag for 3.g-elever, som vil skrive SRP i et emne indenfor det restmedicinske område.
Projektet er en del af dataekspeditioner, som huses af Datalogisk Institut på Københavns Universitet og finansieres af Novo Nordisk Fonden.
Videoer med hjælp til orange
I værktøjskassen ligger videoer om Machine Learning modeller til billedegenkendelse. Ikke alle bruges i matematikforløbet, men kan være interessant for elever, som ønsker at lave SRP om Machine LearningImport af data til Orange
Her kan du se hvordan du importerer data til Orange og hvordan du viser de data, du har importeret.Forbered Orange til billedanalyse
Her kan du se hvordan du får installeret udvidelsen “Image Analytics” i OrangeHent billeder ind i Orange
Her kan du se hvordan du henter billeder ind i Orange og hvordan billeder skal behandles, så de kan bruges i Machine Learning modeller.Træn Orange til at kategorisere billeder
Her kan du se hvordan du træner Machine Learning modeller i Orange til at kategorisere billeder og hvordan du kan undersøge hvilke billeder modellen har svært ved at kategorisere.Brug en model til at forudse kategori for nye billeder
Her kan du se hvordan du kan bruge din Machine Learning model til at kategorisere nye billeder.Videoer med baggrundsviden om biologien
Melanin og øjenfarve
Genome wide association study
En video om hvordan man bestemmer hvilke mutationer, der kan have betydning for øjenfarven.1 - Intro til Machine Learning
Du skal
- undersøge Machine Learning modellen kNN sammen med dine klassekammerater
- se en video om Machine Learning
- installere programmet Orange
- se en video om programmering i Orange
- lave dit første Machine Learning program i Orange
- læse om bias i træningsdata og lave en øvelse om bias
- Billedet illustrerer Machine Learning modellen k-Nearest-Neighbors (kNN). Et blad af en iris-blomst har længden 4.8 cm og bredden 3.2 cm. Kan man forudse hvilken Iris-art det er vha. modellen?
- Billedet illustrerer Machine Learning modellen k-Nearest-Neighbors (kNN). Et blad af en iris-blomst har længden 6.8 cm og bredden 3.2 cm. Kan man forudse hvilken Iris-art det er vha. modellen?
- Hvad står k for i k-Nearest-Neighbors?
Problemer med afspilning af videoen: Klik her
Forstå lighederne mellem lineær regression og en Netflix’s algoritmer
I videoen får du forklaret nogle vigtige begreber om Machine Learning. Du kender det måske som AI eller kunstig intelligens. Læg mærke til:
- Machine Learning (ML) – og forskellen mellem almindelige computerprogrammer og ML
- Træningsdata
- Forudsigelse
Installer programmet Orange
Programmet Orange hentes her
Installer Orange på din computer
På mac
- Download programmet
- Åben dmg-filen i din overførselsmappe
- Træk Orange ikonet til din Applications mappe
På Windows
- Download programmet
- Åbn Orange Setup-programmet og følg instruktionerne – check på billederne nedenfor, hvad du skal vælge
- Vælg: “Install for anyone using this computer”
- Accepter “installation af required packages” – også Anaconda
- Tryk “Next” ved de næste step af installationen
- Afslut Setup-programmet
Opgave: Hent data ind i Orange
- Download datasæt (CSV-format): “HoejdeSko“. Du skal højre-klikke på linket, så du får muligheden for at hente filen ned på din computer.
- Tilføj “CSV File Import” til dit workflow – du finder ikonet til venstre i paletten “Data”
- Dobbelt klik på “CSV File Import” – klik derefter på mappen med de tre prikker
- Find filen “HoejdeSko.csv” på din computer
- Vælg “Semicolon” ud for “Cell delimiter” – tallene placeres nu i 3 kolonner
- Klik “Ok” – og luk vinduet “CSV File Import”
Opgave: Vis de importerede data
- Tilføj “Scatter Plot” fra paletten “Visualize”
- Forbind “CSV File Import” til “Scatter Plot”
- Dobbelt klik på “Scatter Plot” – nu kan du se data i et plot og vælge, hvordan du vil undersøge data. Du kan vælge hvilke egenskaber som vises som x- og y-værdier. Prøv at sætte “Color” eller “Label” til Køn.
- Undersøg de importerede data og besvar spørgsmålene: – Hvilken skostørrelse har den mand, som har den største skostørrelse? – Hvilken højde har den højeste kvinde?
Forudse kategorier
Ofte træner man Machine Learning modeller til at forudse om en person eller en ting passer i en bestemt kategori. I denne øvelse træner vi modellen med data om højde og skostørrelse og vil derudfra forudse køn. Højde og skostørrelse er egenskaber (Engelsk: features). Kønnet er den kategori, vi bruger som mål (target) i træningen.Opgave: vælg features og mål
- Tilføj “Select Columns” fra paletten “Transform”
- Forbind “CSV File Import” til “Select Columns”
- Dobbelt klik på “Select Columns”
- Check, at de data, du vil bruge som input til forudsigelserne, står under features.
- Flyt “Køn” til “Target” – da det er køn du vil forudse med modellen
- Luk vinduet igen
Machine Learning modeller
Udtrykket kunstig intelligens eller Machine Learning dækker over mange forskellige modeller. Nogle modeller er gode til at genkende ting på billeder, andre egner sig til at forudse, om vi vil vælge en film, klikke på en nyhed, eller forudse vores køn. Modellen k-Nearest-Neighbors (kNN) er ofte god til at klassificere ting, når man kender nogle numeriske egenskaber for tingene. I dette eksempel prøver vi at forudse kønnet ud fra højde og skostørrelse med en kNN-model. Support Vector Machine (SVM) og Decision Tree (Tree) er andre modeller, som også kan bruges til at klassificere ting. Neurale Netværk er en ML-model, som ofte bruges til at genkende billeder eller tolke håndskrift.Opgave: Vælg ML-model
- Tilføj “kNN” fra paletten “Model” – det er modellen k-Nearest-Neighbors
- Forbind “Select Columns” til “kNN”
- Dobbelt klik på “kNN”
- Nu skal du vælge antallet af nærmeste naboer, som du vil bruge til at forudse, kønnet for en ny elev med nye værdier for højde og skostørrelse – normalt vælger vi 3 eller 5 naboer
- Vi skal også vælge “Metric” dvs. den måde vi måler afstande – normalt afstandsmål er Euclidean – det svarer til det du kender fra matematik \(d=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\)
- “Weight” vælges til “Uniform” – så vægter det valgte antal naboer (fx 5) lige højt, når kønnet for en ny elev skal bestemmes. Alternativet er “Distance” – hvor de naboer der er tættest på vægtes højere i bestemmelse af kønnet for en ny elev.
Først træner man, derefter tester man modellen
I afsnittet “1.2.4 – Vælg ML-model” har du trænet din kNN-model med et træningsdatasæt. Det gør Orange automatisk, når du forbinder træningsdata til en ML-model. Nu skal du teste, hvor god modellen er til at forudse køn. Man måler hvor mange gange modellen laver den rigtige forudsigelse i forhold til antallet af forudsigelser \(\frac{Antal\ rigtige}{Antal\ test}\). På engelsk kaldes det accuracy (AUC) og angives som et decimal tal eller i %. Modellen vil altid være bedst, når man tester den med nogle data, som ligner træningsdatasættet. Vi starter derfor med at teste med de samme data, som vi brugte til træning af kNN-modellen.Sådan skal workflowet se ud, inden du går videre til næste opgave
Opgave: Test din kNN-model
- Tilføj “Predictions” fra paletten “Evaluate”
- Forbind “kNN” til “Predictions”
- Forbind “Select Columns” til “Predictions”
- Dobbelt klik på “Predictions”
- Vælg “Classes known to the model” ud for “Show probabilities for”
- Kolonnen kNN viser hvor sikker modellen er på forudsigelserne af køn. For at se alle detaljer, skal du gøre første kolonne bredere. Træk der hvor pilene peger
- I linje 9 kan man se, at modellen med 60%-sikkerhed forudser, at en person på 174 cm med skostørrelse 40 vil være en kvinde. Modellen angiver samtidigt 40%-sikkerhed for, at det er en mand. Derfor forudser modellen, at denne person er en kvinde.
- Hvor mange personers køn forudses forkert i denne model?
- Nederst i vinduet er der nogle flere mål for modellens evne til at lave rigtige forudsigelser. AUC beregner, hvor god modellen er til at lave rigtige forudsigelser. Når det er bedst, er AUC = 1. Gætter den altid forkert er AUC = 0.
Optimering af Machine Learning modeller
Machine Learning modeller skal optimeres, så de virker bedst muligt. Det gør man ved at justere på modellens parametre. I kNN-modeller er det bl.a. antallet af naboer, man bruger. Bruger man 5 naboer, bestemmer flertallet af de 5 naboer, hvilken kategori det nye punkt tilhører. Hvis 3 naboer er kvinder og 2 er mænd, vil modellen forudse, at det nye punkt er en kvinde. Man kan også justere måden man måler afstand (Metric) og om de nærmeste punkter vægter mere end punkterne længere væk (Weight).Opgave: hvor mange naboer skal vi bruge i kNN?
- Dobbelt klik på “kNN” – her ændrer du parametre til modellen Derefter kan du se resultatet i “Predictions”
- Undersøg om modellen bliver dårligere eller bedre til at forudse køn ud fra højde og skostørrelse, når modellen bruger 1, 2, 3, 4 eller 5 naboer til at forudse kønnet.
- Undersøg om modellen bliver bedre ved at sætte “Weight” til “Distance“, når du bruger 5 naboer. “Distance” betyder, at naboer tæt på, vægter højere end naboer længere væk, når modellen skal forudse kønnet for et nyt datapunkt.
Opgave: Support Vector Machine
I denne opgave skal du undersøge, om SVM-modellen fungerer bedre end kNN. kNN-modellen bruger de k nærmeste naboer i forudsigelser med modellen. SVM-modellen deler koordinatsystemet op i områder. Træningen af modellen svarer til at bestemme områderne, dvs. hvor skal den blå linje placeres. Når modellen bruges til forudsigelser, undersøger den, på hvilken side af den blå streg det nye punkt ligger.- Tilføj “SVM” fra paletten “Model”
- Forbind “Select Columns” til “SVM”
- Forbind “SVM” til “Predictions”
- Nu kan du sammenligne “kNN” med “SVM” i “Predictions” – dobbelt klik på “Predictions” og sammenlign AUC for kNN- og SVM-modellerne.
Testdata
Når modellen er optimeret, skal den testes igen med et helt nyt datasæt. Download datasættet (CSV-format): “HoejdeSko2” – Højre-klik og gem filen på din computer. Vi tester for at vide, hvordan modellen vil virke, hvis vi vil bruge den rigtigt.Opgave: test modellen med HoejdeSko2-datasættet
- Tilføj en ny “CSV File Import” fra paletten “Data”
- Indlæs den nye fil
- Tilføj en ny “Select Columns” fra paletten “Transform”
- Forbind den nye “CSV File Import” til den nye “Select Columns”
- Vælg “Køn” til “Target” i “Select Columns”
- Tilføj en ny “Predictions”
- Forbind “kNN” til den nye “Predictions“
- Forbind den nye “Select Columns” til den nye “Predictions“
- Dobbelt klik på “Predictions” og undersøg, hvor godt modellen virker. Vælg “Classes known to the model” og check om AUC er bedre eller dårligere med det nye datasæt.
Bias i træningsdata
Bias henviser til menneskers fordomme og stereotype opfattelser om andre. I Machine Learning henviser bias til systematiske fejl, som f.eks. kan opstå fordi træningsdatasættet ikke repræsentere omverdenen præcist. En gruppe af “midaldrende hvide mænd” beskriver kun en begrænset del af verdens befolkning. ML-modeller trænet med træningsdata, som kun repræsenterer en begrænset gruppe eller inkluderer egenskaber som favorisere en bestemt gruppe, vil give et meget skævt billede af den verden som modellen skal beskrive. I denne opgave skal du kort beskrive et muligt problem, som dårligt valgte træningsdata kan skabe. Overvej:- Hvad vil ML-modellen forudse forkert?
- Hvorfor vil ML-modellen forudse dette, dvs. hvilken bias er der i data?
2 - Forudse øjenfarve ud fra DNA
Hjælpe politiet med at forudse 3 gerningsmænds øjenfarve
Forestil dig, at politiets efterforskere sender dig DNA-materiale fra 3 forskellige forbrydelser. Du har derefter behandlet DNA-sporene og undersøgt dem for mutationer, som bestemmer øjenfarven. Nu skal du lave en ML-model, der kan forudse gerningsmændenes øjenfarve.
DNA-fænotyping: fra DNA til gerningsmand
DNA-fænotyping er at bruge DNA til at forudsige, hvordan en person ser ud. Har politiet fundet et DNA-spor som ikke matcher tidligere gerningsmænd i deres database, kan de bruge DNA-fænotyping til at få information om gerningsmandens udseende. Det svarer til politiets fantomtegninger, men her laves tegningen ud fra DNA sporets information.
I dette modul skal du
- læse om hvorfor øjne har forskellige farver
- læse om forskellen på statistisk og Machine Learning
- lave et program i Orange
- træne din ML-model
- teste din ML-model
- forudse øjenfarven for de 3 DNA-spor, du har modtaget
- undersøge hvilke mutationer ML-modellen bruger til forudsigelser
Melanin i øjnene bestemmer øjenfarven
Dit DNA bestemmer, hvor meget af farvestoffet melanin, der dannes i de forreste lag i din øjne. Der er flere gener, som koder for produktionen af melanin.
Nogle mennesker har mutationer i de gener, som koder for melanin. Derfor har de nedsat eller ingen melanin i øjnene, og øjnene er grønne eller blå.
I dette modul skal vi lave en Machine Learning model, som kan forudse øjenfarve ud fra mutationer i de gener, som styrer produktionen af melanin.
Vil du vide mere?Se videoen “Melanin og øjenfarve” i værktøjskassen – du finder den nederst. |
I matematik har du lært at lave statistik. Du kan beregne gennemsnittet af kvinders højde eller lave et boksplot, som viser fordelingen af højder. Du kender også sandsynligheds regning, som du kan bruge til at forudse sandsynligheden for, at en tilfældig person er 172 cm høj eller har blå øjne.
Machine learning går skridtet videre. Her kan du ud fra nogle oplysninger om personen, forudse andre egenskaber. Computeren undersøger data om mange personer og laver en model ud fra data. Når modellen derefter fordres med data om en ny person, kan den f.eks. forudse personens øjenfarve..
Øjenfarve | Frekvens |
Blå | 70% |
Grøn | 14% |
Brun | 16% |
Statistik
I statistik beskriver man data med frekvens, middelværdi, spredning og andre statistiske deskriptorer. F.eks. kan øjenfarven for befolkningen i Danmark beskrives i en tabel med frekvensen for hver øjenfarve.
Sandsynlighedsregning
Her kan vi besvare spørgsmål af typen:
- Hvor stor er sandsynligheden for, at en tilfældigt valgt person i Danmark har blå øjne?
- Hvor stor er sandsynligheden for, at en blåøjet mor og en brunøjet far får et blåøjet barn?
Svaret på det første spørgsmål er “sandsynligheden for at en tilfældigt valgt person har blå øjne er 70%”. Sandsynlighedsregning bygger ofte videre på statistikken. Man skal først observere mange personers øjenfarve = statistik, før man har en sandsynlighed for, at en persons øjenfarve er blå.
Korrelationer i statistik
Ofte undersøger man sammenhængen mellem 2 hændelser, f.eks. sammenhængen mellem mutationer i vores DNA og øjenfarve. Hvis alle eller næsten alle med blå øjne også har den samme mutation i DNA, siger man, at der er en sammenhæng. Sammenhængen kalder man en korrelation.
Korrelation forklarer ikke sammenhængen mellem hændelser. Kun at de to hændelser optræder hos de samme mennesker. Hvis mutation A giver blå øjne og mutation B giver lys hud, vil vi ofte se, at personer med blå øjne også har mutation B, selv om mutation B ikke påvirker øjenfarven.
Genome-wide association study (GWAS)
Søger man efter den genestiske årsag til en sygdom eller f.eks. øjenfarve, skal man først finde de DNA-mutationer, som optræder sammen med sygdommen. Man finder altså korrelationer (associations) mellem bestemte mutationer i DNA’et og den hændelse, at personen har en bestemt egenskab eller sygdom.
Korrelationerne hjælper med at finde de mutationer, som kan være årsag til sygdommen. Man skal derfor undersøge færre mutationer for at finde årsagen til sygdommen, da man kun behøver at undersøge betydningen af de mutationer, der optræder sammen med sygdommen.
Med resultaterne fra GWAS kan man igen svare på sandsynlighedsspørgsmål, f.eks. hvor stor er sandsynlighed for, at en tilfældig person med mutation A, B og C har blå øjne.
Machine Learning
I Machine Learning (ML) går vi skidtet videre. Med Machine Learning vil vi gerne kunne forudse om en bestemt person har en bestemt sygdom eller en bestemt egenskab f.eks. øjenfarve. I ML træner man en ML-model på en computer med DNA-data for nogle personer, hvor øjenfarven også er kendt.
Efter træning af ML-modellen, kan den forudse en persons øjenfarve, når ML-modellen får DNA-data om en person. Finder politiet et DNA-spor fra en gerningsmand, kan man derfor forud se gerningsmandens øjenfarve f.eks. blå øjne og dermed udelukke alle mistænkte med brune øjne.
ML-modeller kan bruge mange forskellige metoder. Nogle metoder kan vi forstår og i princippet regne efter i hånden. Det gælder kNN og SVM, som vi brugte i 1. modul. Andre ML-modeller kalder vi black-boks, fordi vi ikke kan forstå præcis, hvordan ML-modellen når frem til resultaterne ud fra træningsdata. Det gælder f.eks. Neurale netværk.
Vil du vide mere om Machine Learning og Neurale netværk?Elements of AI tilbyder et gratis online kursus, hvor du bliver introduceret til Machine Learning. På 3blue1brown kan du få forklaret, hvordan et neuralt netværk genkender håndskrevne tal |
Vil du vide mere om Genome Wide Association Study og analyse af DNA?Se videoen Genome Wide Association Study i værktøjskassen – du finder den nederst. |
Opgave 1
Svar på følgende spørgsmål:
- Hvilken øjenfarve har du?
- Hvilken hårfarve har du?
- Er dine øreflipper fastgroede eller frie?
- Er du højrehåndet, venstrehåndet eller lige god til at bruge venstre og højre hånd?
- Hvilken af dine tær er længst? Fx. storetåen eller nr. 2 tå.
- Har du fregner?
- Har du kløftet eller ikke kløftet hage?
Opgave 2
Denne øvelse laver I fælles i klassen – du skal bruge dine svar fra øvelse 1
Genetisk mutationer
Du har to kopier af hvert gen i dit DNA. Den ene kopi af genet har du arvet fra din mor og den anden fra din far. Har du en mutation, kan mutationen findes enten i den ene kopi eller i begge kopier af genet. Har du arvet mutationen fra begge forældre, har du altså den samme mutation i begge kopier af genet.
I det datamateriale, du skal arbejde med, er mutationerne navngivet med rs efterfulgt af 8 tal. Hver række svarer til en person. Label angiver øjenfarve for personen. For hver person angives om mutationen findes i ingen (0), den ene (1) eller begge kopier (2) af genet.
I den første opgave skal du undersøge, hvilke mutationer, som optræder oftere hos personer med blå øjne eller hos personer med brune øjne.
Opgave 1: indlæs DNA-data om mutationer, samt øjenfarve
Download først filen “gendata” til din computer.
Åben et nyt workflow i programmet Orange.
- Tilføj “CSV File Import” fra paletten “Data”
- Dobbelt klik “CSV File Import” og vælg filen “gendata.csv” – er vedhæftet nederst på denne side
- Vælg “Semicolon” ud for “Cell delimiter”
- Marker alle kolonner og vælg “Categorical” ud for “Column type”
- Klik ok
- Du kan altid komme tilbage til dette vindue ved at klikke på “Import Options…” i “CVS File Import“-vinduet.
- Husk at gemme dit workflow, så du ikke mister det, du har lavet
Opgave 2: Statistik over mutationer
- Tilføj “Distributions” fra paletten “Visualize”
- Forbind “CSV File Import” og “Distributions”
- Dobbelt klik på “Distributions”
- I Distributions-vinduet kan du undersøge fordelingen for antallet af mutationer for de forskellige gener. Her kan du se fordelingen for mutationen rs12913832. Der er lidt mere end 100 personer som har mutationen på begge kopier af genet, og lidt færre end 20 personer som ingen mutationer har på dette gen.
- Undersøg de forskellige mutationer på listen
Opgave 3: Sammenhængen mellem mutationer og øjenfarve
- Nederst i Distributions-vinduet sættes “Split by” til “label”
- Nu skal du undersøge alle mutationerne og se om mutationerne optræder forskelligt for de forskellige øjenfarver. Vælg én mutation, 1 efter 1, og noter de mutationer, hvor der er stor forskel på de 3 øjenfarver
- Noter hvilke mutationer, der kan være med til at bestemme øjenfarven = er forskelligt fordelt
– noter de 3 du synes ser mest betydningsfulde og diskuter jeres resultater i klassen
Forudsigelse af øjenfarve vha. DNA-spor
Først skal du træne en Machine Learning model, som du kan bruge til at forudse øjenfarve ud fra nye DNA-spor.
Opgave: Træning af modellen
Åben dit workflow fra aktivitet “2.4 – Øjenfarve go mutationer”
- Tilføj “Select Columns” fra paletten “Transform”
- Forbind “CSV File Import” og “Select Columns”
- Dobbelt klik på “Select Columns”
- I “Select Columns”-vinduet flyttes “label” til Target-feltet – dermed har du valgt at modellen skal trænes til at forudse øjenfarve – luk vinduet
- Tilføj “Tree” fra paletten “Model“
- Forbind “Select Columns” og “Tree”
Hvordan virker en træ-model
I 1. modul arbejdede du med ML-modellerne kNN og SVM. I dette modul bruger du Decision Tree (beslutningstræ). Det passer bedre til de data vi har her, da alle features har værdierne 0, 1 eller 2.
Træ-modeller deler træningsdatasættet i mindre og mindre grupper, indtil alle eller næsten alle i gruppen har sammen label. Her deler vi ud fra mutationerne, indtil alle i en gruppe har samme øjenfarve.
For hver mutation udregner træ-modellen, hvor stor procentdel der har brun, blå og anden øjenfarve. For rs12913832 kan du se i tabellen at både 0 og 1 mutation stort set kun forekommer for brun og anden øjenfarven. Godt halvdelen med 2 mutationer har blå øjne.
Træ-modellen deler derfor personerne i 2 grupper. Dem med 0 og 1 mutation (mest brune og andet) , og dem med 2 mutationer (fleste med blå). Derefter undersøges de 2 grupper hver for sig. Og grupperne deles i mindre grupper vha. de mutationer for andre gener.
Øjenfarve | |||
---|---|---|---|
Antal mutationer for rs12913832 | Blå | Brune | Andet |
0 | 0% | 100% | 0% |
1 | 7,8% | 73,4% | 18,8 |
2 | 52,1% | 19,3% | 28,6% |
Illustration af Decision Tree
Træ-modellen vises som et omvendt træ, hvor man begynder øverst. I den øverst boks vises at 43,5% af de 200 personer i datasættet har brune øjne. Derefter deles datasættet ud fra mutationen rs12913832. Den ene gruppe består af 81 personer med 0 eller 1 mutation på rs12913832. Af dem har 79% brune øjne. Af de 119 med 2 mutationer har 52% blå øjne.
Når man bruger modellen til forudsigelser, følger man træet fra top til bund. Hvis vi begynder med en person med 1 mutation på rs12913832, går vi til højre i træet. Da der står “Brown” på højre boks vil vi forudse at personen med 79% sikkerhed har brune øjne.
Tag et skærmbillede af dit workflow i Orange, hvor man kan se, hvordan dit program ser ud nu. Sæt billedet ind i dine noter, så du kan finde tilbage til hvordan programmet så ud, og du kan vise det til din lærer.
Forudsigelse af øjenfarve vha. DNA-spor
Nu skal du teste din Machine Learning model for at se, hvor god den er til at forudse øjenfarve ud fra DNA-spor.
Opgave: test din Machine Learning model
- Tilføj “Predictions” fra paletten “Evaluate”
- Forbind “Select Columns” til “Predictions”
- Forbind “Tree” til “Predictions”
- Dobbelt klik på “Predictions” og undersøg, hvor god modellen er til at forud se øjenfarve
– gør det samme som i aktivitet “1.2.6 – Test din ML-model” i 1. modul. - Svar på spørgsmålene nedenfor ud fra “Predictions”-vinduet
- Hvilken øjenfarve forudser modellen for person nr. 1?
- Hvilken sikkerhed giver modellen for denne forudsigelse af øjenfarven for person nr. 1?
- Hvilken øjenfarve forudser modellen for person nr. 15?
- Hvilken sikkerhed giver modellen for denne forudsigelse af øjenfarven for person nr. 15?
- Er forudsigelsen for person nr. 15 korrekt?
Nu er du klar til at hjælpe politiet
Vi har 3 forskellige DNA-spor fra 3 forskellige forbrydelser. Du skal forudse øjenfarve i alle 3 sager og angive hvor sikker modellen er i forudsigelserne.
Retsmedicinsk institut laver analyser for politiet. De kan f.eks. hjælpe politiet med at bestemme alder, øjen-, hår- og hudfarve, samt etnisk oprindelse. Når politiet afleverer et DNA-spor fra en gerningsmand til analyse, kan de få disse oplysninger om gerningsmandens udseende.
Det er også vigtigt at beregne, hvor sikker modellen er i forudsigelsen af f.eks. øjenfarve. Hvis modellen er meget usikker på øjenfarven, kan politiet ikke bruge oplysningen som bevis i en retssag.
Opgave: Bestem gerningsmandens øjenfarve
Vi vil bruge den trænede model til at forudse gerningsmændenes øjenfarver. Du har modtaget DNA-sporene i en csv-fil. Du kan downloade filen her: DNA_spor_farve.
Du skal fortsætte i det workflow, du har lavet i 2.5.3
- Tilføj “CSV File Import” fra paletten “Data”
- Dobbelt klik på “CSV File Import” og indlæs det DNAsporet i filen “DNA spor farve.csv” – husk at vælge “Semicolon” i “Cell delimiter” og “Categorial” i “Column Type”
- Tilføj “Select Columns” fra paletten “Transform”
- Forbind “CSV File Import” og “Select Columns”
- Dobbelt klik på “Select Columns”
- I “Select Columns”-vinduet flyttes alle DNA-data til Features-feltet
Nu er du klar til at bestemme øjenfarven
- Tilføj “Predictions” fra paletten “Evaluate”
- Forbind “Select Columns” til “Predictions”
- Forbind “Tree” fra den tidligere opgave til den nye “Predictions”
- Dobbelt klik på den nye “Predictions”
- I Predictions-vinduet skal du vælge “Classes known to the model”
gøre Tree-kolonnen bredere så du kan se sandsynlighederne - Hvilken øjenfarve forudser modellen for de 3 DNA-spor?
- Hvilke sandsynligheder angives for de 3 mulige øjenfarver?
Noter svarene og sammenlign i klassen
Sådan ser dit workflow ud nu
White box og Black box modeller i Machine Learning
Nogle Machine Learning modeller kan vi undersøge og forstå, hvordan de når frem til et bestemt svar. Vi kalder dem White Box modeller. kNN og SVM modellerne fra 1. modul er White Box modeller, fordi vi kan undersøge placeringen af træningsdata i et koordinatsystem, og hvor de forskellige kategorier er placeret i koordinatsystemet.
Neurale Netværk kan ikke analyseres på samme måde og vi kalder dem derfor for Black Box modeller. De bruges ofte til billedegenkendelse – f.eks. når computeren skal afgøre, om der er et ansigt på et foto.
I dette modul bruger du Decision Tree (beslutningstræ). Det passer bedre til de data vi har her, da alle features har værdierne 0, 1 eller 2. Træ-modeller er også White Box. I træ-modellen deles data i grupper ud fra forskellige features, så man hver gang får delt træningsdata bedst muligt i forhold til de kategorier man skal forudse.
Hvordan virker en træ-model?
Træ-modeller deler træningsdatasættet i mindre og mindre grupper, indtil alle eller næsten alle i gruppen tilhører samme kategori. Her deler vi ud fra mutationerne, indtil alle i en gruppe har samme øjenfarve.
For hver mutation udregner træ-modellen, hvor stor procentdel der har brun, blå og anden øjenfarve. For rs12913832 kan du se i tabellen, at både 0 og 1 mutation stort set kun forekommer for brun og anden øjenfarven. Godt halvdelen med 2 mutationer har blå øjne.
Træ-modellen deler derfor personerne i 2 grupper. gruppen med 0 og 1 mutation (mest brune og andet) , og gruppen med 2 mutationer (fleste med blå). Derefter undersøges de 2 grupper hver for sig. Og grupperne deles i mindre grupper vha. mutationer for andre gener.
Øjenfarve | |||
---|---|---|---|
Antal mutationer for rs12913832 | Blå | Brun | Anden |
0 | 0% | 100% | 0% |
1 | 7,8% | 73,4% | 18,8 |
2 | 52,1% | 19,3% | 28,6% |
Illustration af Decision Tree
Træ-modellen vises som et omvendt træ, hvor man begynder øverst. I den øverst boks vises at 43,5% af de 200 personer i datasættet har brune øjne. Derefter deles datasættet ud fra mutationen rs12913832. Den ene gruppe består af 81 personer med 0 eller 1 mutation på rs12913832. Af dem har 79% brune øjne. Af de 119 med 2 mutationer har 52% blå øjne.
Når man bruger modellen til forudsigelser, følger man træet fra top til bund. Hvis vi begynder med en person med 1 mutation på rs12913832, går vi til højre i træet. Da der står “Brown” på højre boks vil vi forudse, at personen med 79% sikkerhed har brune øjne.
Opgave 1: forstå hvilke gener som bruges i forudsigelsen af øjenfarven
Åben dit workflow fra aktivitet 2.5.4
- Tilføj “Tree Viewer” fra paletten “Visualize”
- Forbind “Tree” og “Tree Viewer”
- Dobbelt klik på “Tree Viewer”
- I vinduet “Tree Viewer” kan du undersøge hvilke mutationer modellen bruger til at forudse øjenfarve.
De små cirkler viser fordelingen af øjenfarver i denne gruppe. - Indstil Depth til “2 levels”.
- Hvilken mutationer bruger modellen til at forudse øjenfarven?
- Indstil Depth til “3 levels”.
- Hvilke ekstra mutationer bruger modellen nu til at forudse øjenforfarven?
Opgave 2
Om en person får du følgende information:
- rs12913832 har 1 mutation
- rs11800407 har 2 mutationer
Hvilken øjenfarve forudser modellen?
Hvilken sandsynlighed giver modellen for denne øjenfarve?
Du får nu den ekstra information, at rs7170852 har 0 mutationer.
Ændrer denne oplysning på modellens forudsigelse?
3 - Projekt informatik B
Hvad skal vi?
I dette lille projektforløb skal I lave jeres egen ML-model og bruge den til forudsigelser.
- Brainstorm og Idéudvikling
- Dataindsamling
- Træning af modellen
- Test af modellen og fremlæggelser
Brainstorm
I jeres brainstorm skal I fokusere på 2 spørgsmål:- Hvilket problem vil I løse med en ML-model?
- Hvem (målgruppe) har det problem I vil løse?
Undersøgelse
Her skal I nå frem til at kunne svare på spørgsmål som- Hvad skal man kunne forudse med ML-modellen?
- Hvilke data skal bruges til at lave forudsigelsen?
- Hvornår kan målgruppen bruge denne forudsigelsen?
- Hvordan kan de bruge denne forudsigelse?
- Hvorfra og hvordan skaffer I træningsdata til ML-modellen?
Hvad skal vi?
I dette modul skal I indsamle data og gøre dem klar til brug i ML-modellen Nogle datatyper skal samles i det regneark og eksporteres i en csv-fil Billeder skal samles i mapper, en mappe for hver kategori i jeres model Test at data kan importeres i Orange.Diskuter bias i jeres data
Hvilke bias kan I have i jeres træningsdata? Hvad kan man gøre for at mindske betydningen af bias?Hvad skal vi?
I dette modul skal I implementere jeres ML-model i Orange. Derefter skal I teste modellen og optimere ML-modellen Evt. indsamle mere data.Valg af ML-model
Undersøg hvilken ML-model passer bedst til jeres problem- kNN
- SVM
- Tree
- Neuralt Netværk
- Logistic Regression
Hvad skal vi?
Test af modellen
I dette modul skal I test modellen på nye data, gerne fra en person i målgruppen.Fremlæggelse
Formatet på præsentationer er en kort præsentation af jeres idé / it-produkt, hvor I skal overbevise en investor eller chefen i den virksomhed I arbejder for om, at det er et godt projekt de skal investere i. I jeres fremlæggelse skal I svare på følgende spørgsmål:- Hvilket problem vil I løse (løser I) med en ML-model?
- Hvem (målgruppe) har det problem I vil løse?
- Hvad skal man kunne forudse med ML-modellen?
- Hvilke data skal bruges til at lave forudsigelsen – dvs. hvilke data som målgruppen kommer med?
- Hvornår kan målgruppen bruge denne forudsigelse?
- Hvordan kan de bruge denne forudsigelse?
- Hvorfra og hvordan har I skaffet trænings- og testdata til ML-modellen?
- Hvilke ML-model bruger I?
- Hvilken behandling af træningsdata har i lavet, før data bruges af ML-modellen?
- Hvordan har I testet jeres ML-model og hvor godt forudser den det ønskede?
- Hvilke typer problemer har jeres model pga. bias i træningsdata?
4- projekt informatik C
Hvad skal vi?
I dette miniprojekt skal I lave jeres egen ML-model og bruge den til forudsigelser
- Brainstorm og Idéudvikling
- Dataindsamling
- Træning af modellen
- Test af modellen
Allerførst skal du tilmelde dig til en projektgruppe
Billedegenkendelse
I billedegenkendelse dele man ofte billeder i 2 eller flere kategorier. Det kan fx. være:- Genkendelse af billeder med mennesker: Kategori 1: billeder med mennesker Kategori 2: billeder uden mennesker
- Genkendelse af billeder med bogstaver: Kategori 1: billeder med bogstavet a Kategori 2: billeder med bogstavet b …. Kategori 29: billeder uden bogstaver eller billeder, hvor bogstavet ikke kan genkendes
Jeres miniprojekt
I skal bruge højest 15 minutter på at bestemme rammerne for jeres projekt.Runde 1 – Hvilken billedegenkendelse? – max 5 minutter
Svar på spørgsmålene- Hvilke typer billeder vil I kategorisere?
- Hvilke kategorier vil I bruge?
Runde 2 – Målgruppe – max 5 minutter
Svar på spørgsmålene- Hvem (målgruppe) har et problem som kan løses med denne kategorisering af billeder?
- Hvornår kan målgruppen bruge kategoriseringen af billederne?
- Til hvad eller hvordan kan målgruppen bruge kategoriseringen af billederne?
Runde 3 – Data til træning af modellen – max 5 minutter
Svar på spørgsmålene- Hvilke data skal I bruge til at træne ML-modellen?
- Hvorfra og hvordan skaffer I træningsdata til ML-modellen?
- Skal billederne behandles inden I kan bruge dem til forudsigelse? Kunne være at de skal beskæres så kun dele af billedet bruges eller laves om til sort/hvid
I skal indsamle træningsdata til jeres ML-model
I skal finde billeder, som I kan bruge til træning af jeres ML-model. Billederne må gerne hentes på internettet
- I skal bruge mindst 20 billeder pr. kategori
- Billederne lægges i én mappe pr. kategori på jeres computer
- Mapperne navngives så det svarer til kategorierne
- Data importeres i Orange som vist i videoen og forbehandles til brug i en ML-model
I videoen kan du se:
- hvordan du henter billeder ind i Orange
- hvordan billeder skal behandles, så de kan bruges i Machine Learning modeller
Husk at installere “Image analytics” til Orange: klik her
Træning og test af ML-modellen
I dette modul skal I implementere jeres ML-model i Orange.
Træning af ML-modellen
Opbyg modellen som vist i videoen.
Tilføj modellerne
- Neuralt Netværk
- Logistic Regression
så I kan sammenligne dem og se, hvilken model er bedst til jeres problem. Man kan også tilføje andre modeller og undersøge om de kan bruges.
Test af ML-modellen
Test og optimer ML-modellen som vist i videoen.
- Hvilken ML-model virker bedst til jeres problem?
Indsamling af mere data
Når I har testet modellen, skal I måske indsamle mere data for at få et bedre resultat.
I videoen kan du se
- hvordan du træner Machine Learning modeller i Orange til at kategorisere billeder
- hvordan du kan undersøge hvilke billeder modellen har svært ved at kategorisere
I videoen kan du se:
- hvordan du kan bruge din Machine Learning model til at kategorisere nye billeder
Test af modellen
Nu skal I test modellen på nye data. Find nogle nye billeder, som kan bruges til at test jeres model. Find gerne både nogle eksempler, som I regner med at modellen let kan kategoriserer og nogle der kan give problemer.
Fremlæggelser for de andre grupper
Formatet på præsentationen er en kort præsentation af jeres idé / it-produkt. I skal forestille jer, at I er til en messe, hvor mulige investorer går rundt og ser præsentationer af projekter, som de måske vil investere I. I skal derfor overbevise “en investor” om, at jeres projekt, er godt at investere i.
I jeres præsentation skal I svare på følgende spørgsmål:
- Hvilket problem vil I løse (løser I) med jeres ML-model?
- Hvem (målgruppe) har det problem I vil løse?
- Hvad skal man kunne forudse med ML-modellen?
- Hvilke data skal bruges til at lave forudsigelsen – dvs. hvilke data som målgruppen kommer med?
- Hvornår kan målgruppen bruge denne forudsigelse?
- Hvordan kan de bruge denne forudsigelse?
- Hvorfra og hvordan har I skaffet trænings- og testdata til ML-modellen?
- Hvilke ML-model bruger I? Det er typisk Neuralt Netværk eller Logistisk regression
- Hvordan har I testet jeres ML-model og hvor godt forudser den det ønskede?
- Hvilke typer fejl laver jeres ML-model pga. bias i træningsdata?
Mens I fremlægger, kan I vise jeres model i Orange – så man kan se, hvordan den virker.
Fremlæggelser
I første runde har halvdelen af grupperne en “messestand”, hvor de står og præsenterer for de andre elever , som har rollen som mulige investorer. I anden runde bytter grupperne roller.
Efter fremlæggelserne stemmer alle om hvilket projekt, der har størst potentiale til at blive et godt produkt.