Workshop 1: Datahåndtering#

Pensum til eksamen: Datahåndtering

  1. Lese og sortere fildata (med hvilket som helst bibliotek).

  2. Lage gode visualiseringer.

  3. Definere ulike statistiske størrelser og bruke egne funksjoner og ferdige funksjoner til å regne dem ut.

  4. Gjøre rede for og lage enkle maskinlæringsmodeller ved bruk av bestemmelsestrealgoritmer.

  5. Gjøre rede for, tolke og utføre regresjon med ferdige funksjoner.

Oppgaver#

Del 1:

  1. Les fila “vin.csv” inn i et program.

  2. Lag en ny dataframe med kun viner som har 5 eller mindre i kvalitet.

  3. Plott pH mot innholdet av vinsyre (“fixed acidity”) i g/L.

  4. Legg til en linje i plottet som viser gjennomsnittet av pH-en hos de utvalgte vinene. Legg også inn to andre linjer: én som viser gjennomsnitlig pH + standardavviket i pH, og én som viser gjennomsnittlig pH - standardavviket i pH.

  5. Gjør en lineær regresjon av dataene. Forklar hva den lineære modellen du får, beskriver.

  6. Lag en visualisering som beskriver innholdet av sitronsyre (“citric acid”) i g/L for hver vinkvalitet. Visualiseringen må si noe om spredningen i måledata. Beskriv hva visualiseringen forteller oss.

  7. Regn ut 25 %, 50 % og 75 % kvartiler for innholdet av klorider i g/L. Hva forteller kvartilene deg?

  8. Lag en ny fil med minst to kolonner der du legger inn virkelige eller fiktive data. Les fila og lag en egnet visualisering av dataene.

Grunnleggende programmering:

  1. Lag et program som finner hvor mange tall mellom et heltall a og et heltall b (f.eks. mellom 0 og 1000) som er delelig på 7.

  2. pH-beregninger.

    a) Lag en funksjon som tar som parameter konsentrasjonen av oksoniumioner og returnerer pH-en i løsningen. Test funksjonen med \([H_3O^+] = 1\cdot 10^{-5}\) mol/L, noe som vil gi \(pH = 5\).

    a) Bruk funksjonen til å beregne pH-en til følgende 32 konsentrasjoner (ikke alle er gitt nedenfor, men du ser kanskje mønsteret?):

    \[[H_3O^+] \in \{10^{-0.5}, 10^{-1}, 10^{-1.5}, 10^{-2}, 10^{-2.5}, ..., 10^{-16}\}\]

    c) Legg alle de beregnede pH-verdiene i en liste som du skriver ut til slutt.

  3. Programmet nedenfor prøver å benytte følgende algoritme for å tilnærme kvadratroten av et tall \(a\) gitt et startgjett \(x_0\):

    \[x_{n+1} = \frac{1}{2} \left(x_{n} + \frac{a}{x_{n}} \right)\]

    Algoritmen gjentas til \(x \approx \sqrt{a}\).

    Koden fungerer derimot ikke som den skal. Finn feilene og rett opp koden.

from pylab import *

a = 12
x = x0
x0 = 2,5
n = 100

i = 0
while i > n:
    x = 0.5*(x0 + a/x)
    
print("Rota av", a, "er omtrent:", x0)