← KursöversiktArtificiell Intelligens Nivå 1

Lärobok

Data, urval och representation

Följ spåren från en händelse till modellens träningsdata. Upptäck vad som försvinner, vilka som saknas och varför ett imponerande resultat kan lura oss.

Enhetens kärnfråga

Vilken bild av världen får en AI lära sig av – och vad händer med det som hamnar utanför?

170 minuterDataUrvalRepresentationDatakvalitet

Avsnitt

Data är valda representationer

En cyklist i regnet blir en rad i en tabell. Vad följer med, och vad försvinner?

Vad försvann när cykeln blev en rad?

Det regnar när en cyklist svänger in framför skolan. Ett hjul glider till på de våta löven. Cyklisten sätter ned foten, väntar på en gående och fortsätter sedan mot cykelstället. Någon under taket ser händelsen. En räknare vid cykelvägen registrerar en passage.

Tänk dig att båda får berätta vad som hände. Personen kanske säger: ”Det var halt vid svängen. Cyklisten fick stanna.” I en tabell står det i stället en tidpunkt, en temperatur, en mängd nederbörd och en passage.

Vilken beskrivning är bäst?

Det beror på vad vi vill veta. Den som ska laga en farlig sväng behöver veta något annat än den som ska undersöka hur många som cyklar i olika väder. Tabellen kan hjälpa oss att upptäcka ett mönster över många dagar. Berättelsen kan fånga en viktig detalj som ingen tänkte på att lägga i en kolumn.

Det här är ett påhittat exempel, men det leder till en verklig fråga för varje AI-system som lär sig från data: vilken version av världen får systemet möta?

En bild av världen, med något utanför ramen

När en händelse mäts, beskrivs eller fotograferas skapar vi en representation. Vi väljer ett sätt att låta något stå för något annat. Ett fotografi bevarar sådant som hamnade framför kameran, men inte ljudet. En ljudinspelning kan fånga ett skratt men inte vem som log. En tabell kan visa att det regnade utan att berätta hur det kändes att cykla genom regnet.

Tre steg från en cykelpassage i regn, via val av temperatur, nederbörd och dagtyp, till en tabellrad. Ljud och färdväg visas som utelämnad information.
En händelse blir en begränsad representation när vissa egenskaper mäts och sparas.

Att information försvinner är inte alltid ett problem. Om allt behövde bevaras skulle det bli svårt att jämföra något alls. En bra representation hjälper oss att se det som spelar roll för en fråga. Svårigheten är att veta vad vi kan lämna utanför.

Anta att vi vill lära en modell att uppskatta om cykelflödet blir lågt, medelhögt eller högt. Om vi sparar väder och dagtyp kan modellen undersöka samband mellan dem och flödet. Men om vägen ibland är avstängd och det aldrig antecknas kan modellen inte direkt använda den uppgiften. Det som ser ut som ett märkligt undantag i tabellen kan ha en enkel förklaring ute på gatan.

Från berättelse till träningsmaterial

Nu kan vi ge några av delarna namn. Det fall vi beskriver kallas en observation. Det kan vara en passage, en bild eller ett helt mättillfälle. I en tabell blir observationen ofta en rad. Därför behöver vi veta vad en rad står för: en cyklist och en timmes cykeltrafik är olika slags observationer.

De egenskaper som modellen får som indata kallas särdrag, eller features. Temperatur och nederbörd kan vara särdrag. Om exemplet också har ett svar som modellen ska lära sig att förutsäga kallas svaret en etikett, eller label. I cykelexemplet kan etiketten vara ”högt cykelflöde”. Samma fält kan ha olika roller i olika undersökningar. Det är frågan som avgör vad som ska användas för att förutsäga och vad som ska förutsägas.

En tabell med bestämda kolumner och typer är strukturerad data. Fritext, bilder och ljud kallas ofta ostrukturerad data. Det betyder inte att en mening saknar grammatik eller att en bildfil saknar format. Det betyder att innehållet inte redan är ordnat som våra namngivna tabellfält. Även sådant innehåll behöver en representation som modellen kan räkna med.

När du jämför tabellen och fritexten i aktiviteten kan du tänka på dem som två vittnen. De har sett samma händelse, men de kan svara på olika frågor. Vad skulle du fråga vart och ett av dem?

I nästa avsnitt möter vi en modell som verkar ha lärt sig sin uppgift mycket bra. Frågan är vad den egentligen har fått öva på.

Nyckelbegrepp

observationrepresentationsärdragetikettstrukturerad dataostrukturerad data

Vilken detalj i cyklistens berättelse skulle du sakna om du bara fick se tabellen?

Skriv själv. Klistra in är avstängt i studentläsaren.

Vad skulle du vilja fråga den som skapade tabellen innan du använder den?

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Träning, validering och test

Ett lysande testresultat väcker en misstanke: fick modellen verkligen möta något nytt?

Ett imponerande resultat – på ett misstänkt bekant prov

Tänk dig att du övar inför ett prov. Du går igenom samma frågor flera gånger och till slut känner du igen både formuleringarna och svaren. På provdagen får du exakt samma frågor. Du får nästan allt rätt.

Har du lärt dig något? Mycket möjligt. Men läraren vet ännu inte hur du skulle klara en ny fråga där kunskapen behöver användas på ett annat sätt.

Vi kan hamna i ett liknande dilemma med en modell. I ett påhittat bildprojekt fungerar den strålande när den prövas på bilderna som användes under träningen. Sedan tar någon nya bilder, och plötsligt går det betydligt sämre. Den första siffran var inte nödvändigtvis felräknad. Den svarade bara inte på frågan vi egentligen brydde oss om: fungerar modellen på nya exempel?

Liknelsen med ett skolprov handlar om hur vi prövar en förmåga, inte om att människor och modeller lär sig på samma sätt. Det viktiga är att ge det nya en verklig chans att vara nytt.

Tre högar med olika uppgifter

Föreställ dig att vi lägger exemplen i tre högar.

Den första får modellen öva på. Med hjälp av träningsdata anpassas dess parametrar så att resultaten passar träningsuppgiften bättre.

Men under utvecklingen behöver vi också välja mellan alternativ. Ska modellen vara enklare eller mer komplicerad? Vilken inställning verkar fungera bäst? Den andra högen, valideringsdata, hjälper oss att jämföra sådana val utan att bara titta på träningsresultatet.

Den tredje högen sparar vi tills lösningen är vald. Testdata ger då en avslutande prövning på exempel som inte användes för träningen eller för att välja lösningen. Om vi tittar på testresultatet, ändrar modellen och försöker igen har testet börjat hjälpa oss att utveckla modellen. Då har det fått en annan roll. Läs mer om uppdelning och utvärdering hos scikit-learn.

Tre scheman. Ren radvis uppdelning har olika rader men en grupp i både träning och test. Grupperad uppdelning håller grupper åtskilda. Avsiktligt dataläckage kopierar samma rad från träning till test.
Olika uppdelningar prövar olika grad av nyhet i testmängden.

Skillnaden mellan högarna ligger alltså i vad vi gör med dem. Att döpa en fil till ”test” gör den inte oberoende av våra val.

När svaret smyger in bakvägen

Om träningsrader kopieras in i testhögen får modellen möta gamla bekanta där vi förväntade oss nya exempel. Det är en form av dataläckage. Testresultatet kan bli mer imponerande utan att modellen blivit bättre på det vi vill använda den till.

Läckaget behöver inte vara så uppenbart. Om en förberedande beräkning lär sig något från hela datasetet innan uppdelningen görs kan även testdatan ha påverkat lösningen. Därför måste testets gräns hållas genom hela utvecklingen, inte bara vid själva modellträningen. Läs mer om dataläckage hos scikit-learn.

Det finns också fall där olika rader är nära släkt. Tre bilder av samma föremål på samma bord är olika bilder, men de delar mycket. Om två används för träning och en för test säger resultatet mindre om ett helt nytt föremål på ett annat bord.

I cykellabben finns tre konstruerade mättillfällen i varje anonym mätgrupp. En grupperad uppdelning håller hela gruppen i samma hög. Då får modellen inte möta andra rader från testgruppen under träningen. Vilken uppdelning som är relevant beror på vad ”nya exempel” ska betyda i användningen. Läs mer om grupperad utvärdering hos scikit-learn.

Kan ett sämre resultat vara bättre nyheter?

Kanske blir testpoängen lägre när gamla bekanta hålls borta. Det kan kännas som ett misslyckande. Men vi kan ha fått ett ärligare besked om vad modellen klarar. Hellre upptäcka en svaghet här än när någon börjar lita på systemet.

I labben kan du jämföra radvis uppdelning, grupperad uppdelning och avsiktligt läckage. Behåll övriga inställningar när du prövar en förändring, så blir det lättare att förstå vad som händer. Titta också på vilka klasser modellen missar. Om en klass saknar testexempel vet vi inte hur modellen klarar den; ett saknat värde betyder inte noll rätt.

Välj två körningar som hjälper dig att berätta vad du upptäckte. Den mest intressanta berättelsen behöver inte handla om den högsta siffran. Den kan handla om varför du slutade lita på den.

Nyckelbegrepp

träningsdatavalideringsdatatestdatadataläckagegrupperad uppdelning

Varför skulle ett prov med exakt samma frågor som övningen kunna ge en missvisande bild?

Skriv själv. Klistra in är avstängt i studentläsaren.

Vad tror du händer när gamla bekanta hålls borta från testet? Pröva genom att ändra uppdelningen och behålla övriga inställningar.

Skriv själv. Klistra in är avstängt i studentläsaren.

Överraskade något resultat dig? Berätta vad dina två körningar visar om modellens möte med nya exempel.

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Urval, representation och bias

När samma system fungerar olika bra blir frågan vilka delar av världen det har fått se.

Vem har maskinen fått lära känna?

Föreställ dig en skola som provar ett kamerasystem för närvaro. I den här påhittade berättelsen registreras de flesta elever direkt. Men några får stanna, vrida på huvudet och försöka igen. En elev skämtar om att vara osynlig. En annan blir arg när systemet ännu en gång markerar frånvaro.

”Det fungerar ju nästan alltid”, säger någon.

Hur låter den meningen för den som får problem varje morgon?

Vi vet ännu inte varför systemet misslyckas. Ljuset kan spela roll. Kamerans placering kan vara olämplig. Träningsbilderna kan ha saknat viktiga variationer. Innan vi väljer en förklaring behöver vi undersöka vad som faktiskt händer. Men redan nu ser vi varför en genomsnittlig framgångssiffra inte berättar allt.

En maskin behöver inte ha mänskliga fördomar för att ett system ska behandla människor olika. Skillnaden kan börja i vilka exempel vi ger den, hur de mäts och vad som händer med resultatet.

Den värld vi menar och den värld vi samlade in

Låt oss följa samma fråga i ett enklare fall. Någon vill uppskatta cykelflödet under ett helt år. Till sin hjälp har personen en stor tabell. Först ser den lovande ut. Sedan visar det sig att mätningarna bara gjordes under torra vardagar.

Kan fler sådana dagar lära oss hur det ser ut en regnig söndag?

Alla de situationer som vi vill att slutsatsen ska gälla kallas målpopulationen. De fall som faktiskt kunde komma med i insamlingen bildar urvalsramen. I exemplet omfattar målet hela året, men möjligheten att bli observerad är mycket snävare. Det är som att försöka beskriva en hel film efter att bara ha sett scenerna utomhus.

En stor ruta för målpopulationen innehåller en mindre urvalsram och markerade observerade fall. Området regnig helg är namngivet men saknar observerade fall.
Ett stort urval kan ändå sakna en situation som är viktig för frågan.

Ett stort dataset kan ge många detaljer om den del av världen som redan finns med. Storleken fyller inte automatiskt luckorna. Den avgörande frågan är därför inte bara hur mycket data vi har, utan vilken variation vi faktiskt har fått se.

Flera vägar till en sned bild

En återkommande, systematisk snedvridning kallas här bias. Ett enstaka misstag behöver inte vara bias. Vi försöker förstå ett mönster i hur information eller resultat dras åt ett visst håll.

Snedvridningen kan börja med urvalet: regniga helger kom aldrig med. Den kan uppstå i mätningen: tänk om en viss räknare oftare missar passager i dåligt väder. Det senare är en möjlig förklaring att pröva, inte något vi redan vet om vårt övningsdataset.

Den kan också finnas i representationen. Om alla helgdagar läggs i samma kategori kanske en skillnad mellan vanliga söndagar och stora evenemang försvinner. Eller i märkningen: om människor använder olika gränser för ”högt flöde” blir modellens träningsmål inkonsekvent. Nästa avsnitt handlar om just hur svaren skapas.

Det hjälper att skilja dessa problem åt, eftersom de behöver olika lösningar. Fler rader från samma torra vardagar reparerar inte en räknare. En bättre räknare gör inte att söndagar plötsligt börjar ingå i urvalet.

Från misstanke till upptäckt

Tänk dig att du granskar tabellen tillsammans med en kamrat. Du säger: ”Vi verkar nästan inte ha några regniga helger.” Kamraten svarar: ”Då vet vi kanske väldigt lite om just dem. Ska vi se hur många det finns?”

Det är ett litet steg, men ett viktigt sådant. Ni har hittat något att undersöka. Om luckan bekräftas kan ni samla relevanta exempel eller begränsa vad modellen används för. Om det finns gott om sådana fall får ni leta vidare.

Även lika många exempel i varje klass kan dölja luckor. Alla klasser kan vara välfyllda samtidigt som en viktig kombination av väder och dagtyp saknas. I fördjupningen undersöker vi hur det kan gå till.

I aktiviteten använder du en täckningstabell för cykelexemplet. Leta efter en del av den tänkta världen som tabellen ger svagt stöd för. Det är samma slags nyfikenhet som i kamerafallet: vilka erfarenheter har systemet fått tillgång till, och vems situation riskerar att hamna utanför?

Nyckelbegrepp

målpopulationurvalsramrepresentationmätbiasmärkningsbias

Vad skulle en tabell med bara torra vardagar få dig att undra över?

Skriv själv. Klistra in är avstängt i studentläsaren.

Vilken lucka vill du undersöka först, och vad skulle du behöva få veta om den?

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Märkt, omärkt och felmärkt data

Två personer ser samma sak men väljer olika svar. Vad ska modellen lära sig av det?

Vem bestämde det rätta svaret?

Två personer ser samma korta film från en cykelväg. ”Högt flöde”, säger den ena. ”Medel”, säger den andra.

Ingen har räknat fel ännu. De har inte ens fått veta hur lång tid filmen visar eller var gränsen mellan kategorierna ska gå. Den ena jämför kanske med en nästan tom väg hemma. Den andra tänker på rusningstrafiken vid stationen.

Om vi tränar en modell på deras bedömningar, vilket svar ska den lära sig att ge?

Vi talar ofta om träningsdatans svar som ett facit. Men även ett facit har en historia. Någon har mätt något, formulerat en regel eller gjort en bedömning. Innan modellen börjar lära sig har flera viktiga beslut redan fattats.

Med och utan etiketter

I märkt data har exemplen kopplats till ett målvärde eller en kategori: till exempel ”högt cykelflöde”. I omärkt data saknas en sådan etikett. Bilder, texter och mätningar kan finnas kvar även om ingen har angett det svar som en klassificerare skulle tränas mot.

En etikett behöver inte alltid skrivas för hand. Den kan skapas från ett uppmätt värde. Antalet cykelpassager under en bestämd tid kan översättas till låg, medel eller hög med hjälp av valda gränser. Men gränserna behöver fortfarande bestämmas. Samma antal kan få en annan etikett om regeln ändras.

Ett flöde från observation till etikettguide och föreslagen etikett. Kvalitetskontrollen kan godkänna eller skicka ett tvetydigt fall tillbaka för mer information.
Etiketten är resultatet av en regel eller bedömning, inte en egenskap som automatiskt följer med raden.

Det finns också uppgifter där bedömningen inte kan reduceras till att läsa av en räknare. Är ett meddelande skämtsamt eller elakt? Är en bild tillräckligt tydlig för ett visst ändamål? Sådana frågor kan bero på sammanhang och syfte. Att göra dem till enkla kategorier gör dem lättare att behandla, men inte nödvändigtvis lättare att avgöra.

Oenigheten kan vara det intressanta

En etikettguide beskriver hur märkningen ska göras. För cykelfilmen behöver den bland annat klargöra vad som räknas, under hur lång tid och hur kategorierna skiljs åt. När de två personerna får samma guide kan de jämföra sina bedömningar på nytt.

Om de fortfarande är oense finns det något att upptäcka. Kanske är en cyklist delvis skymd. Kanske är tidsgränsen oklar. Kanske är guiden svår att tillämpa på just det här fallet.

Det är skillnad mellan en felaktig etikett, som bryter mot en tydlig regel, och ett tvetydigt fall, där regeln eller underlaget inte räcker. En omröstning kan ge oss en enda etikett, men den kan också gömma anledningen till att människor svarade olika.

Små fel som kan få ett långt liv

Alla problem är inte svåra bedömningsfrågor. Ibland har samma observation råkat kopieras två gånger. En sådan dubblett kan ge just det fallet större tyngd än avsett. Ibland saknas ett temperaturvärde. Om den tomma rutan behandlas som noll grader skapar vi en uppgift som ingen mätte.

Andra fel är svårare att se. Två personer kan ha använt olika enheter. Samma kategori kan stavas på flera sätt. En uppgift kan vara gammal men ligga kvar som om den beskrev nuläget. Var för sig ser raderna kanske rimliga ut; tillsammans blir jämförelsen missvisande.

När en modell tränas kan sådana problem påverka mönstren den anpassas till. Därför är datakvalitet mer än att fylla tomma rutor och rätta stavning. Vi behöver förstå vad värdena betyder och hur de hamnade där.

I märkningsaktiviteten får du pröva en guide på exempel som inte alla är självklara. Försök upptäcka varför ett fall är besvärligt innan du bestämmer hur det ska hanteras. Ibland är en rättning rätt väg. Ibland är den bästa nästa frågan: ”Vad behöver vi veta mer?”

Nyckelbegrepp

märkt dataomärkt dataetikettguideoenighetdubblettsaknat värde

Två personer kallar samma cykelflöde högt respektive medelhögt. Vad vill du fråga dem innan du väljer ett svar?

Skriv själv. Klistra in är avstängt i studentläsaren.

Vilket problem i datan var lätt att missa? Hur skulle det kunna påverka det modellen lär sig?

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Kan datasetet användas för frågan?

En lovande fil visar sig innehålla påhittade mätningar. Är den fortfarande användbar?

Filen som såg ut som ett fynd

Du har hittat en fil som verkar passa perfekt till ditt projekt. Namnet innehåller ”cyklar”, ”väder” och ett årtal. Den har tydliga kolumner och gott om rader. Du börjar föreställa dig hur en modell skulle kunna hjälpa till att planera en cykelväg.

Men varifrån kommer uppgifterna?

Årtalet i filnamnet kanske är året då filen skapades, inte året då något mättes. En kolumn kanske beskriver ett medelvärde, fast du först läste den som en enskild observation. Och tänk om ingen räknade några cyklar alls?

Det är precis den sortens överraskning som vårt övningsdataset ger oss. cyklar-vader-2025 är syntetiskt. Raderna är konstruerade för undervisning. De beskriver inga verkliga personer, platser eller mätningar. Filnamnet gör dem inte till en rapport om cykeltrafiken 2025.

Kan påhittad data vara användbar?

Ja, om frågan passar. Med konstruerade data kan vi undersöka hur en uppdelning fungerar och vad som händer när träningsrader smyger in i ett test. Vi kan skapa tydliga exempel på sådant som annars skulle vara svårt att urskilja.

Men samma rader kan inte berätta hur många som faktiskt cyklar genom en viss kommun. Det är skillnad mellan att lära sig undersöka en mekanism och att ha mätt ett verkligt förhållande.

Tänk på datasetet som en modelljärnväg. Den kan hjälpa oss att förstå något om ett system, men tågtiderna på den säger inget om när ditt riktiga tåg går. Begränsningen gör inte modellen värdelös. Den hjälper oss att använda den för rätt fråga.

Följ spåren bakåt

Proveniens är berättelsen om var datan kommer ifrån och hur den har förändrats. Vem skapade den? Vad stod en rad ursprungligen för? Har värden räknats om, slagits ihop eller sorterats bort?

En kedja med stegen syntetiskt skapande, tabell och fält, version 1, CC0-licens, dokumenterade begränsningar och beslutet använd, använd med villkor eller använd inte.
Ett användningsbeslut ska kunna spåras bakåt genom datasetets dokumenterade kedja.

Ett datasetkort samlar sådana uppgifter. Där kan vi hitta fältens betydelser, insamlingsperiod eller sättet syntetiska data skapades på, gjorda omvandlingar och kända begränsningar. Kortet kan se mindre spännande ut än själva modellen, men en enda mening där kan förändra hela undersökningen: ”Endast vardagar ingår.” ”Värdena är uppskattade.” ”Raderna är konstruerade.”

Versionen hjälper oss att veta vilket underlag vi faktiskt läste. Övningsdatasetets version är 1. Om innehållet senare ändras behöver det gå att skilja den nya datan från den gamla. Annars kanske två personer tror att de jämför samma sak när de i själva verket har olika material.

Får jag använda det – och hjälper det mig?

Ett datasetkort behöver också berätta vilka villkor som gäller för användningen. Övningsmaterialet är märkt CC0 1.0. CC0 är ett sätt för en rättighetshavare att avstå från upphovsrätt och närstående rättigheter i den utsträckning det är möjligt. Det är ingen kvalitetsstämpel. Creative Commons förklarar CC0 här.

Tillåtelse och lämplighet är alltså två olika frågor. Ett material kan vara tillgängligt för användning men ändå sakna de situationer du vill undersöka. Det kan ha en tydlig licens och samtidigt innehålla fel eller oklarheter.

En ny blick på den lovande filen

Återvänd till projektet med cykelvägen. Nu vet du att filen innehåller undervisningsexempel. Du kan använda den för att öva hur testets upplägg påverkar ett resultat. För att uttala dig om den verkliga vägen behöver du annat underlag.

Kanske är filen rätt för din fråga. Kanske blir den användbar om frågan begränsas. Kanske behöver du välja en annan. Aktivitetens tre val – använd, använd med villkor eller använd inte – är sätt att fånga den upptäckten. Leta efter de uppgifter i datasetkortet som faktiskt förändrar ditt beslut.

Vi började kapitlet med en cyklist i regnet. Mellan den händelsen och en rad i en tabell fanns val: vad som skulle mätas, vad som skulle sparas och vad som skulle kallas rätt svar. När vi lär en modell från data följer de valen med. Att förstå AI börjar därför ibland långt från själva algoritmen – med att undra hur dess värld blev till.

Nyckelbegrepp

provenienslicensversiontransformationavsedd användning

Du hittar en fil som verkar passa ditt projekt. Vad skulle kunna få dig att ändra uppfattning?

Skriv själv. Klistra in är avstängt i studentläsaren.

Vilken fråga kan övningsdatasetet hjälpa dig med, och vilken skulle kräva annat underlag?

Skriv själv. Klistra in är avstängt i studentläsaren.

Aktiviteter

Pröva med egna händer

Samma händelse, olika data

Jämför två sätt att registrera en cykelpassage och markera vad varje representation bevarar och utelämnar.

Arbeta med dimensionerna

0/2 ifyllt

Dela upp datan och pröva slutsatsen

Gör en förutsägelse, kör rena, grupperade och avsiktligt läckande uppdelningar och jämför vad resultaten faktiskt stödjer.

Testdata: 20 % (minst 10 %)

Granska vilka situationer som saknas

Jämför målpopulationen med en täckningstabell och formulera en avgränsad risk.

Arbeta med dimensionerna

0/4 ifyllt

När etiketten är osäker

Använd en etikettguide, jämför tvetydiga exempel och skilj oenighet från saknade värden.

Svara på uppgiften

Märk ett exempel

0/1 ifyllt

Använd, använd med villkor eller använd inte

Granska datasetkortet och fatta ett spårbart beslut för det angivna användningsfallet.

Svara på uppgiften

Beslut

0/3 ifyllt

Uppgifter att arbeta vidare med

Vilken testpoäng skulle du lita mest på efter din undersökning? Välj två körningar som visar något intressant om uppdelningen. Berätta vad du trodde före körningen, vad resultaten visar och varför det ena testet ger ett mer trovärdigt besked. Avsluta med en fråga som jämförelsen lämnar öppen.

Redovisning: activity-export

Skulle du använda den här filen för det föreslagna projektet? Följ dess historia och undersök vilka situationer urvalet täcker. Välj använd, använd med villkor eller använd inte, och förklara ditt beslut med två skäl från datasetkortet. Ta med en begränsning och berätta vad du skulle vilja undersöka eller ändra härnäst.

Redovisning: text

Källor och hänvisningar

  1. Common pitfalls and recommended practices · scikit-learn developers
  2. Cross-validation: evaluating estimator performance · scikit-learn developers
  3. CC0 1.0 Universal · Creative Commons