Kan vi genkende håndskrevne tal?

C-niveau
Kort
Informatik

Forløbet kræver kendskab til:

  • Deskriptiv statistik.
  • Koordinatsystemer.
  • Rette linjer.

Tidsforbrug: Ca. 90 minutter.

Formål

Nogle gange har man brug for, at håndskreven tekst kan digitaliseres. Det kan for eksempel være i en eksamenssituation, hvor din lærer og censor skriver din karakter på en liste, som efterfølgende skal tastes ind på en computer. Det ville være smart, hvis man kunne scanne listen eller tage et billede af den, hvorefter alle tal korrekt vil blive genkendt (så du ikke får en forkert karakter!). Dette forløb handler om, hvordan det kan gøres.

RGB-farvemodellen

Vi skal først se lidt på, hvordan billeder bliver repræsenteret i en computer. Prøv at finde et billede på din computer og zoom ind så meget som muligt. Du vil opdage, at billedet i virkeligheden består en masse små kvadrater, som hver især har én farve. Sådan et kvadrat kaldes for en pixel.

Hver pixel består af tre subpixels. Den første subpixel kan lyse Rød, den anden Grøn og den trejde Blå:

Figur 1: Subpixel.

Fordi alle farver bliver repræsenteret ved disse tre farver, taler man om en RGB-farvemodel.

Vi kan skrue på lysstyrken i hver af de tre subpixels. Hvis der er skruet fuldt op for farven, er værdien 255, mens helt slukket svarer til værdien1 0.

1 Tallene fra 0 til 255 kan i det binære talsystem repræsenteres ved 8 bits svarende til 1 byte.

Vores øje opfatter ikke farven på de tre subpixels individuelt, men vi vil i stedet se en blandingsfarve. Hvis der for eksempel er skruet fuldt op på alle tre farver, så vil vores øje opfatte det som hvid. Det vil sige, at den pixel, som er vist i figur 1 lyser hvid for os!

Skruer vi helt op for rød og blå, men slukker for grøn fås en pink farve (som kaldes for magenta):

Figur 2: Farven magenta - repræsenteret ved rgb(255,0,255).

Farven skrives:

rgb(255,0,255)

Hvis der er skruet lige meget op for den røde, grønne og blå subpixel, fås forskellige nuancer af grå. Det er der vist eksempler på her:

Figur 3: Forskellige toner af grå.

Det betyder, at hvis man udelukkende er interesseret i gråskalaværdier, så kan vi nøjes med én værdi, som er den fælles værdi for rød, grøn og blå:

Figur 4: Forskellige toner af grå repræsenteret ved én værdi.

MNIST datasættet

Der findes et stort datasæt – det såkaldte MNIST2 datasæt, hvor man har samlet 60000 håndskrevne cifre. Datasættet består af 60000 rækker, som hver repræsenterer et håndskrevet ciffer mellem \(0\) og \(9\). Der er i alt 785 kolonner. Den første kolonne kaldet "label" angiver hvilket ciffer, der er tale om. Det er den værdi, som vi i sidste ende gerne vil kunne forudsige. En sådan værdi kaldes også for en targetværdi. De resterende 784 kolonner angiver gråskalaværdierne fra et \(28 \times 28\) pixel billede af et håndskrevet ciffer.

2 MNIST står for "Modified National Institute of Standards".

figur 5 ses et håndskrevet "0" fra MNIST datasættet.

Figur 5: Et håndskrevet "0" fra MNIST datasættet.

Bemærk, at der er skrevet med hvid på sort baggrund. Når vi i det følgende viser billederne af de håndskrevne tal, har vi valgt at vende farveskalaen om, så vi i stedet for gråskalaværdien \(x\) tegner en pixel med gråskalaværdi

\[ 255-x \]

Det betyder, at vi i stedet for sort viser hvid og omvendt. Dette er illustreret på figur 6.

Figur 6: Et håndskrevet "0" fra MNIST datasættet, men hvor farveskalaen er vendt om.

Vi skal nu prøve, om vi ud fra de 784 gråskalaværdier kan "udvinde" nogle få, men sigende værdier, som kan bruges til at forudsige, hvilket ciffer der er på billedet. I første omgang vil vi prøve, om vi kan kende forskel på 0- og 1-taller.

Det første, vi vil gøre, er at lave billederne i en lavere opløsning svarende til, at billederne bliver mere pixeleret. Vi vil for eksempel lave et \(7 \times 7\) pixel billede ved at inddele det oprindelige \(28 \times 28\) pixel billede i \(2 \times 2\) pixels, hvor vi så tager gennemsnittet af de pixelværdien. Et eksempel på det ses i figur 7:

Figur 7: Et billede af et 0 med en oprindelige opløsning på \(28 \times 28\) pixels og det samme billede i en opløsning på \(7 \times 7\) pixels.

Til trods for at billedet er meget mere pixeleret, kan man faktisk stadigvæk tydeligt se konturerne af 0’et. Til sammenligning er et billede af et 1-tal vist i figur 8:

Figur 8: Et billede af 1 med en oprindelige opløsning på \(28 \times 28\) pixels og det samme billede i en opløsning på \(7 \times 7\) pixels.

Kan vi kende forskel på 0 og 1?

Idéen er, som nævnt tidligere, at vi ud fra \(7 \times 7\) billederne vil udvinde nogle nye og få værdier, som kan bruges til at kende forskel på \(0\)- og \(1\)-tallerne. Vi vil altså gerne koge de ialt 49 pixelværdier ned til en til tre værdier, som er nok til at adskille 0 fra 1. Sådanne værdier kaldes for features.

NoteOpgave 1: Beregning af featuers

Det kunne godt se ud som om, at der bruges flere farvede pixels på at skrive et 0, end der bliver brugt på at skrive et 1-tal. Vi vil derfor helt enkelt udregne den gennemsnitlige pixelværdi af hele billedet.

  • Udregne den gennemsnitlige pixelværdi for nedenstående to billeder:

Et andet bud på en feature er helt enkelt, hvor mange pixels, der er helt hvide (det vil her sige med en pixelværdi på 0). Vi vil nemlig forvente, at et 1-tal fylder mindre end et 0, så antallet af helt hvide pixels må forventes at være større på billederne af 1-taller.

  • Tæl antallet at hele hvide pixels på ovenstående to billeder.

  • Vi har nu beregnet to forskellige features for de to billeder. Er værdierne som forventet?

  • Det er klart, at den gennemsnitlige pixelværdi og antallet af helt hvide pixels hænger sammen. Forklar med ord hvilken sammenhæng, man vil forvente.

Det bliver selvfølgelig lidt møjsommeligt at udregne disse to features for mange billeder. Derfor skal vi nu bruge en app, som gør arbejdet for dig.

NoteOpgave 2: MNIST datasættet

Åbn denne app. Øverst kan du vælge hvilket ciffer fra MNIST datasættet, du vil se. Dernæst kan du vælge pixelopløsning (\(7 \times 7\), \(14 \times 14\) eller det oprindelige \(28 \times 28\)). Herefter kan du vælge, om du vil have vist pixelværdierne på det pixelerede billede eller ej. Endelig kan du trykke på "Forrige billede" eller "Næste billede" for at bladre i de forskellige billeder fra MNIST datasættet.

  • Start med at bladre lidt rundt blandt de forskellige cifre, så du får et indtryk af datasættet.

I tabellen under det oprindelige billede, kan du se de to features "pixel_gns" og "antal_tomme", som er de to features, du udregnede i opgave 1.

  • Det første 0 (med et id på 0) og det første 1-tal (med id på 100) svarer til de to billeder, som du regnede på i opgave 1. Kontrollér, om du har regnet rigtigt!
NoteOpgave 3: Download af datasæt

Vi skal nu have downloadet et datasæt, hvor disse to features er udregnet for i alt 100 billeder af henholdsvis 0 og 1-taller.

Gå til fanen "Download". Her vælger du:

  • En pixelopløsning på 7.
  • Sæt flueben ved 0 og 1.
  • Under "Hele billedet" sætter du flueben både ved "Gennemsnit" og "Antal tomme pixel".
  • Resten af fluebenene fjerner du.
  • Tryk på "Download data".

Når du åbner datasættet i Excel, skulle det gerne se sådan her ud:

Den første kolonne ("label") angiver, om der er tale om et billede af et 0 eller et 1-tal. Den anden kolonne ("id") er billedets id (det kan du bruge til at få vist billedet i app’en), de to sidste kolonner ("pixel_gns") og ("antal_tomme") svarer til de features, som vi beregnede i opgave 1.

NoteOpgave 4: Boksplots

Vi vil starte med at undersøge de to features hver for sig.

  • Tegn i samme figur et boksplot af "pixel_gns" for både 0 og 1.

  • Forklar niveau- og spredningsforskelle i de to boksplots.

  • Gentag ovenstående, men for "antal_tomme".

  • Vil man kunne bruge enten "pixel_gns" eller "antal_tomme" alene til at kende forskel på 0 og 1?

NoteOpgave 5: Plot af to features
  • Lav et punktplot med "pixel_gns" ud af \(x\)-aksen og "antal_tomme" op af \(y\)-aksen. Sørg for at alle punkter, som svarer til billeder af 0’er er farvet røde og alle punkter, som svarer til billeder af 1-taller er farvet blå.
Sådan gør du i GeoGebra

Åbn datasættet i Excel og kopiere det hele over i et "Regneark" i GeoGebra (tryk på "Vis" \(\rightarrow\) "Regneark").

  • Stil dig i celle E2 (det skulle gerne være den første tomme celle i anden række).
  • Skriv (C2,D2) (det skulle give dig værdien for "pixel_gns" og "antal_tomme" for det første billede).
  • Markér cellen. Tag ved den lille firkant nederst til højre og træk ned, så du får punkter for alle 200 billeder.
  • Justér på akserne på tegneblokken, så du kan se alle punkterne. Markér alle punkterne, højreklikke og trykke på "Basis". Sæt flueben ved "Fast objekt" (det sikrer, at du ikke ved en fejl kan flytte på punkterne). Hvis der er vist et navn ved punkterne i tegneblokken, fjerner du også fluebenet ved "Vis navn".
  • Markér alle de punkter i regnearket, som har en "label" værdi på 0. Højreklik og vælg "Egenskaber". Under fanen "Farve" vælger du rød.
  • Farv på tilsvarende måde alle punkterne med en "label" værdi på 1 blå.
  • Højreklik på tegneblokken og vælg "Tegneblok". Gå ind under fanen "xAkse". Under "Navn" skriver du "pixel gns" og tilsvarende navngiver du \(y\)-aksen "antal tomme".
NoteOpgave 6: Klassifikation baseret på en eller to features

Vi vil starte med at undersøge, om vi kan kende forskel på 0 og 1 alene baseret på én af de to features.

Gennemsnitlig pixelværdi

  • Indtegn en lodret linje ved for eksempel at skrive \(x=20\). Hvilken lodret linje er bedst til at adskille de blå punkter fra de røde?

  • Hvor mange punkter kommer som minimum til at ligge på den forkerte side af linjen?

  • Find id’et på de punkter, som ligger på den forkerte side af linjen. Man siger, at disse punkter er blevet klassificeret forkert. Brug app’en til at få vist et billede af disse tal. Kan du forklare, hvorfor disse billeder bliver klassificeret forkert, når vi ser på pixel gennemsnittet alene?

Klassifikationsnøjagtigheden (CA for classification accuracy på engelsk) angiver hvor stor en procentdel af data, som er blevet klassificeret korrekt.

  • Udregn klassifikationsnøjagtigheden.

Antal hvide pixels

Vi vil nu undersøge, hvor mange billeder vi kan klassificere korrekt, ved kun at se på antallet af hvide pixels i billedet.

  • Indtegn en vandret linje ved for eksempel at skrive \(y=20\).

  • Svar på de samme spørgsmål som ovenfor, men nu baseret på den vandrette linje.

Begge features

Til sidst vil vi prøve at undersøge, om vi kan gøre det bedre ved at bruge begge features.

  • Indtegn en ret linje i koordinatsystemet.

  • Svar på de samme spørgsmål som ovenfor, men nu baseret på den generelle rette linje.

I opgave 6 ovenfor kom du formentlig frem til, at hvis vi alene skal adskille 0’er fra 1-taller, så er det faktisk nok at tælle antallet af hvide pixels i billedet! Gør vi det, kan vi med vores træningsdata få en klassifikationsnøjagtighed på \(98.5\%\).

NoteOpgave 7: Hjælper det med højere opløsning? (valgfri)
  • Undersøg, om du kan få en højere klassifikationsnøjagtighed ved at bruge en pixelopløsning på \(14 \times 14\) eller \(28 \times 28\) pixels.

Kan vi kende forskel på 0 og 3?

Det går jo strygende! Tæl antallet af hvide pixels i billedet, og du kan kende forskel på 0 og 1. Men hvad nu, hvis vi vil kende forskel på 0 og 3. Går det mon lige så nemt? Et eksempel på et håndskrevet 0 og 3-tal er vist i figur 9.

Figur 9: Et billede af et håndskrevet 0 og 3-tal med en opløsning på \(28 \times 28\) pixels.

Lad os prøve igen med de to features: gennemsnitlig pixelværdi og antal hvide pixels.

NoteOpgave 8: Download af nyt datasæt

Brug igen app’en, som viser MNIST datasættet.

  • Start med at bladre lidt rundt blandt 3-tallerne, så du får en fornemmelse for, hvordan de er skrevet.

  • Download et datasæt bestående af 0 og 3-taller i en pixelopløsning på \(7 \times 7\) pixels.

NoteOpgave 9: Punktplot
  • Lav et punktplot af de to features (gennemsnitlig pixelværdi og antal hvide pixels), som du gjorde det i opgave 5. Farv alle de punkter, som svarer til billeder af 0 røde, og farv alle de punkter, som svarer til billeder af 3-taller grønne.

  • Kan du på nogen måde indlægge en linje i dette plot, som på fornuftig vis kan bruges til at adskille de røde punkter fra de grønne?

Det er ret tydeligt, at den gennemsnitlige pixelværdi og antallet af hvide pixels i billedet på ingen måde kan bruges til at kende forskel på 0 og 3. Det skyldes, at man åbenbart bruger cirka lige meget "blyantsfarve" på at skrive 0, som man gør på at skrive 3. Det viser med al tydelighed, at de features, man vælger, er fuldstændig afhængig af det klassifikationsproblem, som man står med. To features kan være formidable til ét klassifikationsproblem (at kende forskel på 0 og 1), mens de er elendige til at andet klassifikationsproblem (at kende forskel på 0 og 3). Det betyder, at vi må på jagt efter nye features!

Vandrette lokale maksima

figur 10 ses et billede af et håndskrevet 0 og 3-tal i en opløsning på \(7 \times 7\) pixels, og vi skal prøve at finde nogle karakteristika ved de to billeder, som kan bruges til at adskille dem.

Figur 10: Et billede af et håndskrevet 0 og 3-tal med en opløsning på \(7 \times 7\) pixels.

figur 13 har vi lagt et vandret vindue ind over en række af pixels på de to billeder. Vi vil her tælle, hvor mange gange pixelværdierne "topper". En sådan "top" kalder vi for et lokalt maksimum. På billedet af 0, kan vi se, at der er to lokale maksima, mens der på billedet af 3-tallet kun er ét lokalt maksimum. Hvis vi ser på de vandrette pixelværdier på et billede af et 0, vil vi i "toppen" og "bunden" af 0’et forvente ét lokalt maksimum, men vi i mange af de vandrette vinduer i midten af 0’et vil tænke, at der ofte vil være to lokale maksima. Dette er illustreret på figur 11.

Figur 11: Antallet af vandrette lokale maksima på et billede af et håndskrevet 0.

Ser vi derimod på vandrette pixelværdier på et billede af et 3-tal, vil der både være ét og to lokale maksima, som illustreret på figur 12.

Figur 12: Antallet af vandrette lokale maksima på et billede af et håndskrevet 3-tal.

Idéen med at tælle antallet af vandrette lokale maksimaer baseret på pixelværdi er illustreret i figur 13. For de to vandrette vinduer, som er lagt ind på billedet, kan vi se, at 0’et har to vandrette maksima, mens 3-tallet har ét.

Figur 13: Et billede af et håndskrevet 0 og 3-tal med et vandret vindue indlagt.

Lodrette lokale maksima

Lægger vi derimod et lodret vindue ind, vil der på et 0 typisk være ét eller to lokale maksima (se figur 14).

Figur 14: Antallet af lodrette lokale maksima på et billede af et håndskrevet 0.

På et 3-tal kan være derimod være mellem en og tre lokal maksima (se figur 15).

Figur 15: Antallet af lodrette lokale maksima på et billede af et håndskrevet 3.

Princippet baseret på pixelværdier er illustreret i figur 16.

Figur 16: Et billede af et håndskrevet 0 og 2-tal med et lodret vindue indlagt.
NoteOpgave 10: Vandrette og lodrette lokale maksima

Med udgangspunkt i ovenstående billede af et 0 og et 3-tal skal du:

  • Bestem antallet af lokale maksima i alle vandrette rækker.

  • Udregn det gennemsnitlige antal vandrette lokale maksima.

  • Bestem det største antal lokale maksima i alle vandrette rækker.

  • Bestem antallet af lokale maksima i alle lodrette rækker.

  • Udregn det gennemsnitlige antal lodrette lokale maksima.

  • Bestem det største antal lokale maksima i alle lodrette rækker.

NoteOpgave 11: Vandrette og lodrette lokale maksima

Brug igen app’en. Sæt under "Features" flueben ved "Vis lodrette lokale maksima" og "Vis vandrette lokale maksima".

Billederne fra opgave 10 har id 0 og 300.

  • Kontroller ved hjælp af app’en dit resultat fra opgave 10.

Vælg nu en opløsning på \(28 \times 28\) pixels og sæt under "Features" flueben ved "Vis lodrette lokale maksima" og "Vis vandrette lokale maksima.”

  • Se på de første ti billeder af håndskrevne 0’er. Er antallet af vandrette og lodrette lokale maksima som forventet? Hvis ikke – kan du forklare hvorfor?

  • Gentag ovenstående men se nu på de første ti billeder af håndskrevne 3-taller.

NoteOpgave 12: Download af data

I det følgende vælger vi, at arbejde med en opløsning på \(28 \times 28\) pixels, så vi får et lidt mere finkornet billede at arbejde videre med.

Under fanen "Download data" vælger du derfor:

  • En pixel-opløsning på 28.
  • Under "Tal" sætter du flueben ved 0 og 3.
  • I det følgende sætter du flueben ved alle seks features.
  • Tryk på "Download data".

I opgave 11 så vi, at de håndskrevne tal ikke altid helt opfører sig, som vi kunne forvente i forhold til antallet af lodrette og vandrette lokale maksima. De er simpelthen nogle gange skrevet lidt skørt, så der enten er flere eller færre lokale maksima end forventet. Men det kunne jo godt være, at der vil være information at hente, hvis vi ser på de gennemsnitlige værdier af de lodrette og vandrette lokale maksima. Det prøver vi i næste opgave.

NoteOpgave 13: Plot af gennemsnitsværdier
  • Lav et punktplot med "lodret_gns" ud af \(x\)-aksen og "vandret_gns" op af \(y\)-aksen. Sørg for at alle punkter, som svarer til billeder af 0’er repræsenteres ved røde krydser og alle punkter, som svarer til billeder af 3-taller repræsenteres ved grønne cirkler (det er for bedre at kunne se, at nogle af punkterne ligger oveni hinanden).
Sådan gør du i GeoGebra

Åbn datasættet i Excel og kopiere det hele over i et "Regneark" i GeoGebra (tryk på "Vis" \(\rightarrow\) "Regneark").

  • Stil dig i celle I2 (det skulle gerne være den første tomme celle i anden række).
  • Skriv (C2,E2) (det skulle give dig værdien for "lodret_gns" og "vandret_gns" for det første billede).
  • Markér cellen. Tag ved den lille firkant nederst til højre og træk ned, så du får punkter for alle 200 billeder.
  • Justér på akserne på tegneblokken, så du kan se alle punkterne. Markér alle punkterne, højreklikke og trykke på "Basis". Sæt flueben ved "Fast objekt" (det sikrer, at du ikke ved en fejl kan flytte på punkterne). Hvis der er vist et navn ved punkterne i tegneblokken, fjerner du også fluebenet ved "Vis navn".
  • Markér alle de punkter i regnearket, som har en "label" værdi på 0. Højreklik og vælg "Egenskaber". Under fanen "Farve" vælger du rød. Under fanen "Stil" vælger du under "Punktmarkering" et kryds.
  • Farv på tilsvarende måde alle punkterne med en "label" værdi på 3 grønne og vælg en cirkel som punktmarkering.
  • Højreklik på tegneblokken og vælg "Tegneblok". Gå ind under fanen "xAkse". Under "Navn" skriver du "lodret gns" og tilsvarende navngiver du \(y\)-aksen "vandret gns".
  • Sammenlign med det punktplot, som du lavede i opgave 9. Egner de to nye features sig bedre til at kende forskel på 0’er og 3-taller?

  • Indtegn i dit (nye) punktplot en ret linje, som så godt som muligt kan adskille de røde krydser fra de grønne cirkler. Nedskriv ligningen for denne linje.

  • Udvælg et 0 og et 3-tal, som ligger "på den forkerte" side af din linje og som vi altså har svært ved at kende forskel på. Find id’et på cifret og slå det op i app’en. Kan du ud fra billedet forklare, hvorfor det er svært at kende forskel?

  • Tæl (så godt som muligt – der kan være punkter, som ligger oveni hinanden) hvor mange cifre, som bliver klassificeret forkert, og udregne på den baggrund en klassifikationsnøjagtighed.

Klassificering ved beregning (kan udelades)

Det er desværre ikke muligt præcist at tælle, hvor mange cifre der er klassificeret forkert, fordi nogle af punkterne ligger oveni hinanden. Men vi kan heldigvis beregne om et punkt ligger over eller under linjen. Det gøres ved at betragte den lodrette forskel fra et punkt og ned til linjen3.

3 Med mindre skillelinjen er lodret!

Dette er illustreret i figur 17:

Figur 17: Beregning af den lodrette forskel fra et punkt til en linje.

Den lodrette forskel fra punktet \(P(x_1,y_1)\) ned til linjen med ligning \(y= a \cdot x + b\) må være (se figur 17):

\[ y_1 - (a \cdot x_1 + b) \] Hvis denne forskel er positiv ligger punktet over linjen og omvendt, hvis forskellen er negativ.

NoteOpgave 14: Klassificering ved beregning (kan springes over)
  • Brug ligningen for den ligning du fandt i opgave 13. Hvis din ligning er på formen \(ax+by+c=0\), så start med at isolere \(y\).

  • For hvert punkt i dit punktplot skal du udregne den lodrette forskel fra punktet til din linje.

  • Lav nu en klassificering ved hjælp af fortegnet på den beregnede forskel.

Sådan gør du i GeoGebra

Hvis du i kolonne J har udregnet den lodrette forskel, så vil vi i kolonne K skrive et 1-tal, hvis det tilhørende punkt er klassificeret korrekt og 0 ellers. Det gør sådan her:

De røde punkter

  • Skriv i celle K2 følgende: =Hvis(J2 ≥ 0, 1, 0). Det betyder, at der skrives 1 i celle K2, hvis forskellen i J2 er positiv (eller 0) og ellers skrives der 0.

For alle de grønne punkter er det lige omvendt:

De grønne punkter

  • Skriv i celle K102 (som nok er den første celle for de grønne pnkter) følgende: =Hvis(J102 < 0, 1, 0). Det betyder, at der skrives 1 i celle K102, hvis forskellen i J102 er negativ og ellers skrives der 0.

Alle punkter

  • Tæl nu først det samlede antal korrekt klassificeret cifre. Du kan med fordel blot bruge SUM(K2:K201). Tæl dernæst antal forkert klassificeret cifre.

Tre features

Du har formentlig opdaget, at de to nye features ikke er helt tossede i forhold til at kende forskel på 0’ere og 3-taller, men at der også er nogle cifre, som vi ikke kan kende forskel på baseret på disse to features. Vi vil derfor prøve at tilføje en tredje feature og se, om vi kan få en højere klassifikationsnøjagtighed.

Ser vi på figur 11 og ?@fig-lok-max1_vandret kan vi se, at både 0’er og 3-taller typisk har mellem en og to vandrette lokale maksima. Derimod illustrerer figur 14 og ?@fig-lok-max1_lodret, at 0’er også typisk har mellem en og to lodrette lokale maksima, mens 3-taller typisk kan have op til tre lodrette lokale maksima. Vi vil derfor som en tredje feature bruge det maksimale antal lodrette lokale maksima. Her vil 0’ere typisk være karakteriseret ved at det maksimale antal lodrette lokale maksima vil være to, mens det tilsvarende tal for 3-taller vil være tre.

NoteOpgave 15: Plot af tre features
  • Lav et punktplot med "lodret_gns" ud af \(x\)-aksen, "vandret_gns" op af \(y\)-aksen og "lodret_max" op af \(z\)-aksen. Sørg for at alle punkter, som svarer til billeder af 0’er farves røde og alle punkter, som svarer til billeder af 3-taller farves grønne.
Sådan gør du i GeoGebra

Åbn datasættet i Excel og kopiere det hele over i et "Regneark" i GeoGebra (tryk på "Vis" \(\rightarrow\) "Regneark").

  • Gør som i opgave 13, men skriv i stedet i celle I2 følgende: (C2,E2,D2) (det skulle give dig værdien for "lodret_gns", "vandret_gns" og "lodret max" for det første billede).
  • Udfyld for alle 200 cifre og farv igen punkterne (vær opmærksom på at man i 3D-plot ikke kan vælge punktmarkering).
  • Vælg "Vis" \(\rightarrow\) "3D Grafik"
  • Sammenlign med det punktplot, som du lavede i opgave 9. Egner de to nye features sig bedre til at kende forskel på 0’er og 3-taller?

  • Indtegn i dit (nye) punktplot en ret linje, som så godt som muligt kan adskille de røde krydser fra de grønne cirkler. Nedskriv ligningen for denne linje.

  • Udvælg et 0 og et 3-tal, som ligger "på den forkerte" side af din linje og som vi altså har svært ved at kende forskel på. Find id’et på cifret og slå det op i app’en. Kan du ud fra billedet forklare, hvorfor det er svært at kende forskel?

  • Tæl (så godt som muligt – der kan være punkter, som ligger oveni hinanden) hvor mange cifre, som bliver klassificeret forkert, og udregne på den baggrund en klassifikationsnøjagtighed.