Time Series Forecasting er en type af Machine Learning, hvor algoritmen forsøger at forudsige fremtidige værdier af en variabel baseret på tidligere observationer. Dette kan være alt fra salgstal til vejrforhold til aktiekurser. For eksempel kan en algoritme trænes på tidligere data om vejrforhold for at forudsige temperaturen i morgen.
En time series er en samling af datapunkter, der er målt over tid. Dette kan f.eks. være temperaturmålinger hver time, salgstal hver dag eller aktiekurser hver uge. Ved at analysere tidsserier kan man finde mønstre og sæsonmæssige tendenser, som kan bruges til at forudsige fremtidige værdier.
En af de største udfordringer ved Time Series Forecasting er at finde den rette balance mellem at udnytte tidligere data til at træne algoritmen og undgå overfitting, hvor algoritmen bliver for specialiseret i træningsdataene og ikke kan generalisere til nye data. Hvis algoritmen er for simpel, kan det føre til underfitting, hvor algoritmen ikke har lært træningsdataene godt nok og ikke kan generalisere til nye data.
En anden udfordring ved Time Series Forecasting er at håndtere sæsonmæssige tendenser, som f.eks. høje salgstal omkring højtider eller lavere aktiekurser i sommermånederne. Det kan også være svært at forudsige pludselige ændringer i en variabel, som f.eks. en pludselig stigning i salgstal på grund af en nyhedshistorie eller en naturlig katastrofe.
For at undgå overfitting og underfitting er det vigtigt at træne algoritmen på et passende antal datapunkter og at validere algoritmen på nye datapunkter, som den ikke har set før. Det kan også være en god idé at justere algoritmens kompleksitet og parametre for at finde den rette balance mellem præcision og generaliseringsevne.
Et eksempel på Time Series Forecasting kunne være at forudsige salgstal for en detailkæde i den kommende måned baseret på tidligere salgstal. Algoritmen vil forsøge at finde sæsonmæssige tendenser og mønstre i salgstallene og forudsige salgstal for den kommende måned baseret på disse mønstre.
En anden anvendelse af Time Series Forecasting er at forudsige aktiekurser. Algoritmen vil forsøge at finde mønstre i tidligere aktiekurser og forudsige fremtidige kurser baseret på disse mønstre. Dette kan være en udfordrende opgave, da aktiekurser kan påvirkes af mange faktorer, herunder nyheder, politik og økonomiske forhold.
I løbet af dette kursus vil vi udforske forskellige metoder til Time Series Forecasting og se, hvordan de kan bruges til at forudsige fremtidige værdier af en variabel baseret på tidligere observationer. Vi vil også diskutere udfordringerne ved Time Series Forecasting og strategier til at undgå overfitting og underfitting.
Jeg har selv lavet et projekt inden for Time Series, på kurset Kausal Inferens.
Kursuskatalog - Aarhus Universitet
Kausal Inferens - MAGS Projekt.pdf
Naive Bayes er en probabilistisk Supervised Learning-algoritme, der bruges til klassifikation. Algoritmen antager, at alle funktioner i dataene er uafhængige af hinanden, hvilket betyder, at de ikke påvirker hinanden. Naive Bayes bruger Bayes' teorem til at beregne sandsynligheden for, at en given observation tilhører en bestemt klasse eller kategori.
Første skal vi forstå Bayes' teorem, som er en matematisk formel, der beskriver sandsynligheden for en begivenhed, givet en anden begivenhed. Formlen er som følger:
$$ P(A|B) = \frac {P(B|A)*P(A)} {(P(B))} $$
Hvor:
Et eksempel på anvendelse af Bayes' teorem kan være at beregne sandsynligheden for, at en patient har en bestemt sygdom, givet at vedkommende har en positiv test for sygdommen. Lad os antage, at sygdommen har en forekomst på 1% i befolkningen, og at testen har en nøjagtighed på 95% (det vil sige, at den giver en positiv test for 95% af personer, der rent faktisk har sygdommen). Vi kan bruge Bayes' teorem til at beregne sandsynligheden for, at en person, der har en positiv test, rent faktisk har sygdommen:
$$ P(Sygdom|Positiv test) = \dfrac {P(Positiv test|Sygdom) * P(Sygdom)} {P(Positiv test)} $$
Vi ved, at P(Positiv test|Sygdom) er 0,95 (95% nøjagtighed), og P(Sygdom) er 0,01 (1% forekomst). For at beregne P(Positiv test) skal vi bruge Bayes' teorem igen:
$$ P(Positiv test) = P(Positiv test|Sygdom) * P(Sygdom) + P(Positiv test|Ikke sygdom) * P(Ikke sygdom) $$
Antag, at testen har en falsk positiv rate på 2% (det vil sige, at den giver en positiv test for 2% af personer, der ikke har sygdommen). Så P(Positiv test|Ikke sygdom) er 0,02. Vi ved også, at P(Ikke sygdom) er 0,99 (fordi P(Sygdom) er 0,01). Så vi kan beregne:
$$ P(Positiv test) = 0,95 * 0,01 + 0,02 * 0,99 = 0,0297 $$
Nu kan vi beregne:
$$ P(Sygdom|Positiv test) = (0,95 * 0,01) / 0,0297 = 0,32 $$
Så der er en 32% chance for, at en person, der har en positiv test, rent faktisk har sygdommen.
I Naive Bayes-algoritmen bruger man Bayes' teorem til at beregne sandsynligheden for, at en given observation tilhører en bestemt klasse eller kategori. Algoritmen tager inputdata og beregner sandsynligheden for, at hvert attributværdi i dataene tilhører hver enkelt klasse. Den vælger derefter den klasse med den højeste sandsynlighed som sin forudsigelse.
For at kunne bruge Naive Bayes-algoritmen, skal man først have et træningssæt med klassificerede data, hvor man kender den korrekte klasse for hver observation. Algoritmen bruger træningssættet til at estimere sandsynlighederne for hver klasse baseret på attributværdierne i dataene. Når algoritmen har beregnet sandsynlighederne, kan den bruge dem til at klassificere nye, ukendte observationer.
En af de forudsætninger, der ligger til grund for Naive Bayes-algoritmen, er antagelsen om, at alle attributterne er uafhængige af hinanden. Dette er en forenkling af den virkelige verden, hvor attributter ofte er korrelerede. På trods af denne forenkling har Naive Bayes vist sig at være effektiv i mange tilfælde og bruges ofte i tekstklassifikation og spam-filtrering.
Naive Bayes kan anvendes til både binær og multiklassifikation. I binær klassifikation er der kun to mulige klasser, f.eks. "positiv" og "negativ". I multiklassifikation er der flere klasser, og algoritmen beregner sandsynlighederne for hver klasse og vælger den klasse med den højeste sandsynlighed.
En vigtig fordel ved Naive Bayes-algoritmen er, at den kan arbejde med små mængder træningsdata og stadig opnå gode resultater. Den kræver ikke så mange beregninger som andre mere komplekse algoritmer og er derfor hurtigere at træne og bruge.
Det er vigtigt at bemærke, at Naive Bayes ikke altid er den bedste algoritme til alle problemer. Hvis attributterne ikke er uafhængige, kan Naive Bayes give upræcise resultater. Derfor er det altid vigtigt at evaluere og sammenligne forskellige algoritmer for at finde den bedste til en given opgave.