Moja vysnívaná kariéra: Dátový vedec

Autor

Martin Bakič

Publikované

5. októbra 2026

Globálne nastavenie Chunkov

V tomto dokumente budem využívať programovací jazyk R na príkladoch, ktoré súvisia s mojou vysnívanou kariérou dátového vedca.

Kód
knitr::opts_chunk$set(
  echo = TRUE,
  message = FALSE,
  warning = FALSE
)

Úvod do mojej budúcnosti

V tomto dokumente by som chcel opísať, čomu by som sa chcel v budúcnosti venovať. Možností na dnešnom trhu práce je veľmi veľa, ale mňa najviac priťahuje oblasť Data Science (dátovej vedy) a umelej inteligencie.

Práca dátového vedca je založená na práci s údajmi, ich analýze, spracovaní a interpretácii. Práve preto je programovací jazyk R vhodným nástrojom na demonštráciu základných operácií, ktoré môže dátový vedec pri svojej práci využívať.

V tomto dokumente si precvičím prácu so:

  • skalárnymi hodnotami,
  • textom,
  • logickými hodnotami,
  • numerickými vektormi,
  • maticami,
  • vlastnými číslami a vlastnými vektormi.

Skaláre

Numerické skaláre

Predstavme si, že sledujeme počet pracovných ponúk pre dátových vedcov v dvoch rôznych obdobiach.

Prvá hodnota predstavuje 150 tisíc pracovných ponúk a druhá 300 tisíc pracovných ponúk.

Kód
dopyt_2020 <- 150
dopyt_2023 <- 300

sucet <- dopyt_2020 + dopyt_2023

rozdiel <- dopyt_2023 - dopyt_2020

podiel <- dopyt_2023 / dopyt_2020

sucet
[1] 450
Kód
rozdiel
[1] 150
Kód
podiel
[1] 2

Z výsledku môžeme vidieť, že hodnota dopytu v roku 2023 je dvojnásobná oproti roku 2020.

Použiť môžeme aj ďalšie matematické operácie.

Kód
a <- 12
b <- 4.5

a + b
[1] 16.5
Kód
a - b
[1] 7.5
Kód
a * b
[1] 54
Kód
a / b
[1] 2.666667
Kód
a^2
[1] 144
Kód
a %% 5
[1] 2
Kód
a %/% b
[1] 2

Pri dátovej analýze sa často stretávame aj s potrebou zaokrúhľovania čísel.

Predstavme si, že úspešnosť analytického modelu je 91,7463 %.

Kód
uspesnost_modelu <- 91.7463

round(uspesnost_modelu)
[1] 92
Kód
round(uspesnost_modelu, digits = 1)
[1] 91.7
Kód
round(uspesnost_modelu, digits = 2)
[1] 91.75
Kód
ceiling(uspesnost_modelu)
[1] 92
Kód
floor(uspesnost_modelu)
[1] 91

Malé cvičenie

Predstavme si, že dátový model správne vyhodnotil 864 prípadov z celkového počtu 900 prípadov.

Vypočítajte jeho percentuálnu úspešnosť.

Kód
spravne <- 864
celkovo <- 900

uspesnost <- spravne / celkovo * 100

uspesnost
[1] 96

Výsledok zaokrúhlime na dve desatinné miesta.

Kód
round(uspesnost, digits = 2)
[1] 96

Text

Vytváranie textových premenných a práca s nimi

Dátový vedec pracuje nielen s číslami, ale aj s textovými údajmi.

Vytvorím napríklad názov pracovnej pozície a programovacieho jazyka.

Kód
pozicia <- "Data Scientist"

jazyk <- "R"

profil <- paste(pozicia, jazyk, sep = " - ")

profil
[1] "Data Scientist - R"

Výsledkom je:

Data Scientist - R

Pomocou funkcie paste0() môžeme vytvoriť napríklad názov modelu.

Kód
model <- paste0("Model_", "01")

model
[1] "Model_01"

Môžeme vytvoriť aj zoznam oblastí, ktoré sú dôležité pre dátového vedca.

Kód
oblasti <- paste(
  "R",
  "Statistika",
  "Data Science",
  "Machine Learning",
  sep = ", "
)

oblasti
[1] "R, Statistika, Data Science, Machine Learning"

Dĺžka textového reťazca a podreťazec

Môžeme zistiť počet znakov v názve pracovnej pozície.

Kód
text <- "Data Scientist"

nchar(text)
[1] 14

Pomocou substr() môžeme vybrať iba časť textu.

Kód
substr(text, 1, 4)
[1] "Data"

Výsledkom bude:

Data

Malé cvičenie

Vytvorte premenné s názvom oblasti a programovacieho jazyka tak, aby bol výsledok:

Data Science - R

Kód
oblast <- "Data Science"

jazyk <- "R"

vysledny_text <- paste(
  oblast,
  jazyk,
  sep = " - "
)

vysledny_text
[1] "Data Science - R"

Následne zistíme počet znakov.

Kód
nchar(vysledny_text)
[1] 16

Logické hodnoty

Základy

Dátový vedec často kontroluje, či jednotlivé podmienky platia alebo neplatia.

Napríklad môžeme sledovať, či bol model úspešne vytvorený a či v dátach chýbajú hodnoty.

Kód
model_hotovy <- TRUE

chybajuce_data <- FALSE

model_hotovy
[1] TRUE
Kód
chybajuce_data
[1] FALSE

Použiť môžeme základné logické operácie.

Kód
!model_hotovy
[1] FALSE
Kód
model_hotovy & chybajuce_data
[1] FALSE
Kód
model_hotovy | chybajuce_data
[1] TRUE
Kód
xor(model_hotovy, chybajuce_data)
[1] TRUE

Logický výsledok porovnávania

Predstavme si, že analytický model dosiahol úspešnosť 92 %.

Kód
uspesnost <- 92

uspesnost > 90
[1] TRUE
Kód
uspesnost >= 80
[1] TRUE
Kód
uspesnost == 92
[1] TRUE
Kód
uspesnost != 100
[1] TRUE

Porovnávať môžeme aj textové hodnoty.

Kód
jazyk <- "R"

jazyk == "R"
[1] TRUE
Kód
jazyk == "SQL"
[1] FALSE

Zložitejšie logické operácie

Predstavme si, že model považujeme za kvalitný v prípade, že jeho úspešnosť je minimálne 85 % a maximálne 100 %.

Kód
uspesnost <- 92

uspesnost >= 85 & uspesnost <= 100
[1] TRUE

Môžeme pridať aj podmienku minimálneho počtu záznamov.

Kód
uspesnost <- 92

pocet_zaznamov <- 2500

uspesnost >= 85 & pocet_zaznamov >= 1000
[1] TRUE

Zlučovanie logických hodnôt do vektora

Predstavme si, že máme päť rôznych dátových modelov.

Kód
uspesne_modely <- c(
  TRUE,
  TRUE,
  FALSE,
  TRUE,
  FALSE
)

uspesne_modely
[1]  TRUE  TRUE FALSE  TRUE FALSE

Počet úspešných modelov:

Kód
sum(uspesne_modely)
[1] 3

Celkový počet modelov:

Kód
length(uspesne_modely)
[1] 5

Malé cvičenie

Firma chce použiť analytický model iba vtedy, ak:

  • jeho úspešnosť je minimálne 85 %,
  • bol testovaný aspoň na 1000 záznamoch.

Náš model dosiahol úspešnosť 89 % a bol testovaný na 2500 záznamoch.

Kód
uspesnost <- 89

pocet_zaznamov <- 2500

vhodny_model <-
  uspesnost >= 85 &
  pocet_zaznamov >= 1000

vhodny_model
[1] TRUE

Hodnota TRUE znamená, že model spĺňa obe podmienky.


Numerické vektory

Generovanie vektorov

Dátový vedec môže pomocou vektora uložiť napríklad úspešnosť viacerých analytických modelov.

Kód
uspesnost_modelov <- c(
  78,
  84,
  91,
  88,
  94
)

uspesnost_modelov
[1] 78 84 91 88 94

Môžeme vytvoriť poradové čísla experimentov.

Kód
experimenty <- 1:5

experimenty
[1] 1 2 3 4 5

Funkcia seq() vytvorí postupnosť podľa zadaného kroku.

Kód
hranice <- seq(
  from = 0.5,
  to = 1,
  by = 0.1
)

hranice
[1] 0.5 0.6 0.7 0.8 0.9 1.0

Funkciou rep() môžeme opakovať rovnakú hodnotu.

Kód
pocet_testov <- rep(
  10,
  times = 5
)

pocet_testov
[1] 10 10 10 10 10

Môžeme vytvárať aj náhodné hodnoty.

Kód
nahodne_hodnoty <- runif(
  5,
  min = 0,
  max = 1
)

nahodne_hodnoty
[1] 0.1517370 0.2322769 0.3475167 0.2829301 0.6824356

Normálne rozdelené hodnoty:

Kód
chyby <- rnorm(
  5,
  mean = 0,
  sd = 1
)

chyby
[1] -1.52477194  2.01126058  0.03461956  0.02240924 -0.66672847

Aritmetické operácie s vektormi

Predstavme si výsledky štyroch modelov.

Kód
uspesnost <- c(
  81,
  84,
  87,
  90
)

uspesnost
[1] 81 84 87 90

Ku každému výsledku môžeme pripočítať jeden percentuálny bod.

Kód
uspesnost + 1
[1] 82 85 88 91

Hodnoty môžeme previesť z percent na desatinné čísla.

Kód
uspesnost / 100
[1] 0.81 0.84 0.87 0.90

Operácie s dvoma vektormi

Porovnáme výsledky dvoch skupín modelov.

Kód
model_A <- c(
  82,
  86,
  91
)

model_B <- c(
  80,
  88,
  89
)

model_A
[1] 82 86 91
Kód
model_B
[1] 80 88 89

Rozdiel:

Kód
model_A - model_B
[1]  2 -2  2

Súčet:

Kód
model_A + model_B
[1] 162 174 180

Priemer jednotlivých dvojíc:

Kód
(model_A + model_B) / 2
[1] 81 87 90

Skalárny súčin:

Kód
crossprod(
  model_A,
  model_B
)
      [,1]
[1,] 22227

Indexovanie a výber prvkov vektora

Máme výsledky siedmich analytických modelov.

Kód
uspesnost <- c(
  76,
  88,
  91,
  83,
  95,
  79,
  92
)

uspesnost
[1] 76 88 91 83 95 79 92

Prvý výsledok:

Kód
uspesnost[1]
[1] 76

Druhý až štvrtý výsledok:

Kód
uspesnost[2:4]
[1] 88 91 83

Všetky hodnoty okrem prvej:

Kód
uspesnost[-1]
[1] 88 91 83 95 79 92

Modely s úspešnosťou vyššou ako 90 %:

Kód
uspesnost[uspesnost > 90]
[1] 91 95 92

Pozície týchto modelov:

Kód
which(uspesnost > 90)
[1] 3 5 7

Práca s chýbajúcimi hodnotami

V reálnych dátach môžu niektoré hodnoty chýbať.

Kód
uspesnost <- c(
  82,
  NA,
  91,
  87,
  NA,
  94
)

uspesnost
[1] 82 NA 91 87 NA 94

Zistíme pozície chýbajúcich hodnôt.

Kód
is.na(uspesnost)
[1] FALSE  TRUE FALSE FALSE  TRUE FALSE

Priemer bez odstránenia chýbajúcich údajov:

Kód
mean(uspesnost)
[1] NA

Výsledkom bude NA.

Chýbajúce hodnoty môžeme odstrániť z výpočtu.

Kód
mean(
  uspesnost,
  na.rm = TRUE
)
[1] 88.5

Základné štatistiky

Máme výsledky siedmich modelov.

Kód
vysledky <- c(
  84,
  91,
  88,
  95,
  79,
  90,
  86
)

vysledky
[1] 84 91 88 95 79 90 86

Priemer:

Kód
mean(vysledky)
[1] 87.57143

Štandardná odchýlka:

Kód
sd(vysledky)
[1] 5.191568

Najvyššia hodnota:

Kód
max(vysledky)
[1] 95

Najnižšia hodnota:

Kód
min(vysledky)
[1] 79

Základný štatistický prehľad:

Kód
summary(vysledky)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  79.00   85.00   88.00   87.57   90.50   95.00 

Zoradenie od najnižšej hodnoty:

Kód
sort(vysledky)
[1] 79 84 86 88 90 91 95

Zoradenie od najvyššej:

Kód
sort(
  vysledky,
  decreasing = TRUE
)
[1] 95 91 90 88 86 84 79

Malé cvičenie

Máme úspešnosť desiatich dátových modelov.

Kód
modely <- c(
  72,
  85,
  91,
  88,
  94,
  79,
  83,
  97,
  90,
  86
)

modely
 [1] 72 85 91 88 94 79 83 97 90 86

Vyberieme modely s úspešnosťou minimálne 90 %.

Kód
najlepsie_modely <-
  modely[
    modely >= 90
  ]

najlepsie_modely
[1] 91 94 97 90

Vypočítame ich priemernú úspešnosť.

Kód
mean(najlepsie_modely)
[1] 93

Zistíme počet modelov, ktoré dosiahli aspoň 90 %.

Kód
length(najlepsie_modely)
[1] 4

Matice

Vytvorenie matíc

Dátové súbory sa veľmi často dajú reprezentovať vo forme matice.

Predstavme si výsledky troch analytických modelov v štyroch rôznych testoch.

Kód
vysledky_modelov <- matrix(
  c(
    82, 85, 88, 91,
    79, 84, 86, 89,
    87, 90, 92, 94
  ),
  nrow = 3,
  byrow = TRUE
)

vysledky_modelov
     [,1] [,2] [,3] [,4]
[1,]   82   85   88   91
[2,]   79   84   86   89
[3,]   87   90   92   94

Riadky predstavujú jednotlivé modely.

Stĺpce predstavujú jednotlivé testy.

Rozmery matice

Kód
dim(vysledky_modelov)
[1] 3 4

Počet modelov:

Kód
nrow(vysledky_modelov)
[1] 3

Počet testov:

Kód
ncol(vysledky_modelov)
[1] 4

Adresovanie prvkov matice

Výsledok prvého modelu v druhom teste:

Kód
vysledky_modelov[1, 2]
[1] 85

Výsledky všetkých modelov v treťom teste:

Kód
vysledky_modelov[, 3]
[1] 88 86 92

Výsledky druhého modelu:

Kód
vysledky_modelov[2, ]
[1] 79 84 86 89

Prvé dva modely a prvé dva testy:

Kód
vysledky_modelov[1:2, 1:2]
     [,1] [,2]
[1,]   82   85
[2,]   79   84

Maticové operácie

Vytvoríme dve jednoduché matice.

Kód
A <- matrix(
  c(
    80, 85,
    90, 95
  ),
  nrow = 2,
  byrow = TRUE
)

B <- matrix(
  c(
    2, 3,
    4, 5
  ),
  nrow = 2,
  byrow = TRUE
)

A
     [,1] [,2]
[1,]   80   85
[2,]   90   95
Kód
B
     [,1] [,2]
[1,]    2    3
[2,]    4    5

Sčítanie matíc:

Kód
A + B
     [,1] [,2]
[1,]   82   88
[2,]   94  100

Hadamardov súčin:

Kód
A * B
     [,1] [,2]
[1,]  160  255
[2,]  360  475

Maticové násobenie:

Kód
A %*% B
     [,1] [,2]
[1,]  500  665
[2,]  560  745

Transpozícia:

Kód
t(A)
     [,1] [,2]
[1,]   80   90
[2,]   85   95

Determinant:

Kód
det(A)
[1] -50

Inverzná matica:

Kód
solve(A)
     [,1] [,2]
[1,] -1.9  1.7
[2,]  1.8 -1.6

Zlučovanie vektorov do matíc

Máme výsledky dvoch analytických modelov.

Kód
model_1 <- c(
  82,
  88,
  91
)

model_2 <- c(
  79,
  85,
  94
)

Spojenie po stĺpcoch:

Kód
porovnanie <- cbind(
  model_1,
  model_2
)

porovnanie
     model_1 model_2
[1,]      82      79
[2,]      88      85
[3,]      91      94

Spojenie po riadkoch:

Kód
porovnanie_riadky <- rbind(
  model_1,
  model_2
)

porovnanie_riadky
        [,1] [,2] [,3]
model_1   82   88   91
model_2   79   85   94

Štatistiky po riadkoch a stĺpcoch

Vytvoríme maticu výsledkov.

Kód
matica_vysledkov <- matrix(
  c(
    82, 88, 91,
    76, 84, 89,
    90, 93, 95
  ),
  nrow = 3,
  byrow = TRUE
)

matica_vysledkov
     [,1] [,2] [,3]
[1,]   82   88   91
[2,]   76   84   89
[3,]   90   93   95

Priemerná úspešnosť jednotlivých modelov:

Kód
apply(
  matica_vysledkov,
  1,
  mean
)
[1] 87.00000 83.00000 92.66667

Priemerné výsledky jednotlivých testov:

Kód
apply(
  matica_vysledkov,
  2,
  mean
)
[1] 82.66667 88.33333 91.66667

Použiť môžeme aj jednoduchšie funkcie.

Kód
rowMeans(matica_vysledkov)
[1] 87.00000 83.00000 92.66667
Kód
colMeans(matica_vysledkov)
[1] 82.66667 88.33333 91.66667

Malé cvičenie

Predstavme si štyri analytické modely, ktoré boli testované na štyroch rôznych dátových súboroch.

Kód
matica_uspesnosti <- matrix(
  c(
    82, 84, 87, 89,
    88, 90, 91, 93,
    79, 83, 86, 88,
    91, 92, 94, 96
  ),
  nrow = 4,
  byrow = TRUE
)

matica_uspesnosti
     [,1] [,2] [,3] [,4]
[1,]   82   84   87   89
[2,]   88   90   91   93
[3,]   79   83   86   88
[4,]   91   92   94   96

Vypočítajte priemernú úspešnosť každého modelu.

Kód
rowMeans(matica_uspesnosti)
[1] 85.50 90.50 84.00 93.25

Vypočítajte priemernú úspešnosť na jednotlivých dátových súboroch.

Kód
colMeans(matica_uspesnosti)
[1] 85.00 87.25 89.50 91.50

Zistite najvyššiu úspešnosť zo všetkých výsledkov.

Kód
max(matica_uspesnosti)
[1] 96

Vlastné čísla a vlastné vektory

Využitie v dátovej vede

Vlastné čísla a vlastné vektory majú významné využitie aj v dátovej vede.

Jedným z príkladov je metóda PCA – Principal Component Analysis, ktorá sa používa na zjednodušenie dát s veľkým počtom premenných.

Nech máme štvorcovú maticu \(\mathbf A\).

Vlastné číslo \(\lambda\) a vlastný vektor \(\mathbf v\) spĺňajú vzťah:

\[ \mathbf A \mathbf v = \lambda \mathbf v. \]

Použijeme symetrickú maticu:

\[ \mathbf A = \begin{pmatrix} 4 & 1 \\ 1 & 4 \end{pmatrix}. \]

Táto matica môže zjednodušene predstavovať vzťah medzi dvoma premennými v dátovom súbore.

Výpočet vlastných čísel

Vlastné čísla získame zo vzťahu:

\[ \det( \mathbf A - \lambda\mathbf I ) =0. \]

V našom prípade:

\[ \mathbf A-\lambda\mathbf I= \begin{pmatrix} 4-\lambda & 1\\ 1 & 4-\lambda \end{pmatrix}. \]

Determinant:

\[ (4-\lambda)^2-1=0. \]

Po úprave:

\[ \lambda^2-8\lambda+15=0. \]

Teda:

\[ (\lambda-5)(\lambda-3)=0. \]

Vlastné čísla sú:

\[ \lambda_1=5 \]

a

\[ \lambda_2=3. \]

Výpočet pomocou R funkcie eigen()

V dátovej praxi môžeme vlastné čísla a vlastné vektory jednoducho vypočítať pomocou funkcie eigen().

Kód
A_eig <- matrix(
  c(
    4, 1,
    1, 4
  ),
  nrow = 2,
  byrow = TRUE
)

A_eig
     [,1] [,2]
[1,]    4    1
[2,]    1    4

Výpočet:

Kód
eig_A <- eigen(
  A_eig,
  symmetric = TRUE
)

eig_A
eigen() decomposition
$values
[1] 5 3

$vectors
          [,1]       [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068  0.7071068

Vlastné čísla:

Kód
vlastne_cisla <- eig_A$values

vlastne_cisla
[1] 5 3

Vlastné vektory:

Kód
vlastne_vektory <- eig_A$vectors

vlastne_vektory
          [,1]       [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068  0.7071068

Prvé vlastné číslo:

Kód
eig_A$values[1]
[1] 5

Prvý vlastný vektor:

Kód
eig_A$vectors[, 1]
[1] 0.7071068 0.7071068

Overenie vzťahu Av = λv

Vyberieme prvé vlastné číslo a vlastný vektor.

Kód
lambda_1 <- vlastne_cisla[1]

v_1 <- vlastne_vektory[, 1]

lambda_1
[1] 5
Kód
v_1
[1] 0.7071068 0.7071068

Vypočítame ľavú stranu rovnice.

Kód
lava_strana <- as.vector(
  A_eig %*% v_1
)

lava_strana
[1] 3.535534 3.535534

Pravá strana:

Kód
prava_strana <-
  lambda_1 * v_1

prava_strana
[1] 3.535534 3.535534

Porovnanie:

Kód
cbind(
  lava_strana,
  prava_strana
)
     lava_strana prava_strana
[1,]    3.535534     3.535534
[2,]    3.535534     3.535534

Rozdiel:

Kód
lava_strana - prava_strana
[1] 0 0

Výsledok by mal byť nulový alebo veľmi blízky nule.


Matica 3 × 3

Predstavme si vzťahy medzi troma premennými v dátovej analýze.

Kód
B_eig <- matrix(
  c(
    3, 1, 0,
    1, 3, 0,
    0, 0, 6
  ),
  nrow = 3,
  byrow = TRUE
)

B_eig
     [,1] [,2] [,3]
[1,]    3    1    0
[2,]    1    3    0
[3,]    0    0    6

Vypočítame vlastné čísla a vlastné vektory.

Kód
eig_B <- eigen(
  B_eig,
  symmetric = TRUE
)

eig_B$values
[1] 6 4 2
Kód
eig_B$vectors
     [,1]      [,2]       [,3]
[1,]    0 0.7071068  0.7071068
[2,]    0 0.7071068 -0.7071068
[3,]    1 0.0000000  0.0000000

Overíme dĺžku vlastných vektorov.

Kód
colSums(
  eig_B$vectors^2
)
[1] 1 1 1

Overenie všetkých vlastných párov:

Kód
max(
  abs(
    B_eig %*% eig_B$vectors -
      eig_B$vectors %*%
      diag(eig_B$values)
  )
)
[1] 8.881784e-16

Súčet vlastných čísel sa rovná stope matice.

Kód
c(
  sucet_vlastnych_cisel =
    sum(eig_B$values),

  stopa_matice =
    sum(diag(B_eig))
)
sucet_vlastnych_cisel          stopa_matice 
                   12                    12 

Súčin vlastných čísel sa rovná determinantu matice.

Kód
c(
  sucin_vlastnych_cisel =
    prod(eig_B$values),

  determinant =
    det(B_eig)
)
sucin_vlastnych_cisel           determinant 
                   48                    48 

Malé cvičenie

Predstavme si, že pri analýze schopností budúceho dátového vedca sledujeme tri oblasti:

  • R programovanie,
  • štatistika,
  • strojové učenie.

Ich vymyslená kovariančná matica je:

Oblasť R programovanie Štatistika Strojové učenie
R programovanie 0.90 0.45 0.60
Štatistika 0.45 0.80 0.55
Strojové učenie 0.60 0.55 1.00

Vytvoríme túto maticu v R.

Kód
skills <- matrix(
  c(
    0.90, 0.45, 0.60,
    0.45, 0.80, 0.55,
    0.60, 0.55, 1.00
  ),
  nrow = 3,
  byrow = TRUE
)

skills
     [,1] [,2] [,3]
[1,] 0.90 0.45 0.60
[2,] 0.45 0.80 0.55
[3,] 0.60 0.55 1.00

Overíme jej rozmery.

Kód
dim(skills)
[1] 3 3

Vypočítame vlastné čísla a vlastné vektory.

Kód
skills_eigen <- eigen(
  skills,
  symmetric = TRUE
)

skills_eigen
eigen() decomposition
$values
[1] 1.9792517 0.3979495 0.3227989

$vectors
          [,1]        [,2]       [,3]
[1,] 0.5704206  0.71319369 -0.4074003
[2,] 0.5157930 -0.69705258 -0.4980715
[3,] 0.6392009 -0.07397601  0.7654735

Vlastné čísla:

Kód
skills_eigen$values
[1] 1.9792517 0.3979495 0.3227989

Vlastné vektory:

Kód
skills_eigen$vectors
          [,1]        [,2]       [,3]
[1,] 0.5704206  0.71319369 -0.4074003
[2,] 0.5157930 -0.69705258 -0.4980715
[3,] 0.6392009 -0.07397601  0.7654735

Vyberieme prvé vlastné číslo.

Kód
lambda_skill <-
  skills_eigen$values[1]

lambda_skill
[1] 1.979252

Vyberieme príslušný vlastný vektor.

Kód
vektor_skill <-
  skills_eigen$vectors[, 1]

vektor_skill
[1] 0.5704206 0.5157930 0.6392009

Overíme vzťah:

\[ A v = \lambda v. \]

Ľavá strana:

Kód
lava_skill <- as.vector(
  skills %*%
    vektor_skill
)

lava_skill
[1] 1.129006 1.020884 1.265139

Pravá strana:

Kód
prava_skill <-
  lambda_skill *
  vektor_skill

prava_skill
[1] 1.129006 1.020884 1.265139

Porovnanie:

Kód
cbind(
  lava_skill,
  prava_skill
)
     lava_skill prava_skill
[1,]   1.129006    1.129006
[2,]   1.020884    1.020884
[3,]   1.265139    1.265139

Rozdiel:

Kód
lava_skill -
  prava_skill
[1]  0.000000e+00 -2.220446e-16 -4.440892e-16

Výsledok by mal byť nulový alebo veľmi blízky nule.

Záver

Práca dátového vedca ma zaujíma najmä preto, že spája prácu s dátami, matematiku, štatistiku a moderné technológie.

V tomto dokumente som prepojil svoju vysnívanú kariéru s praktickým využitím programovacieho jazyka R. Na príkladoch som pracoval so skalármi, textovými premennými, logickými hodnotami, numerickými vektormi a maticami.

Pri jednotlivých cvičeniach som využil príklady týkajúce sa úspešnosti analytických modelov, počtu dátových záznamov, porovnávania výsledkov modelov a analýzy vzťahov medzi premennými.

Na záver som pracoval s vlastnými číslami a vlastnými vektormi, ktoré majú využitie aj v pokročilejších metódach dátovej analýzy, napríklad pri metóde PCA.

Programovací jazyk R preto vnímam ako jeden z nástrojov, ktorý môže byť pre moju budúcu kariéru dátového vedca veľmi užitočný.