Warning
This page is located in archive.

TEST 09

  1. (0.5 b) Jak se vypočítá kosinová vzdálenost dvou vektorů $\mathbf{x_1}$ a $\mathbf{x_2}$?
  2. (0.5 b) Pokud platí $\alpha < \beta$ ($\alpha$, $\beta \in (0, \pi$) rad), jaký je vztah mezi $\cos \alpha$ a $\cos \beta$.
  3. (0.5 b) Čemu říkáme stop slovo? Uveďte 5 příkladů českých stop slov.
  4. (0.5 b) Co ovlivňuje regularizační konstanta $C$ při učení SVM (parametr cost funkce svm())?

Cvičení 9 - Příprava dat

Úloha 1

Použijeme data "ADULT" z UCI Machine Learning Repository uložená v souboru adult.csv

Průzkum dat

Úkolem průzkumu dat je seznámit se se strukturou dat a popsat každý atribut základními statistickými údaji.

  1. Kolik atributů data obsahují?
  2. Obsahují data chybějící hodnoty?
  3. Nakreslete histogram pro atribut workclass. Co vyjadřuje hodnota “?” tohoto atributu?
  4. Jaká hodnota je dominantní u atributu hours-per-week?
  5. Do kolika tříd máme data klasifikovat?

Výběr podskupiny dat

  1. Zaměříme se pouze na obyvatele USA. Vytvořte nový dataset adult.usa, který obsahuje pouze obyvatele USA. Kolik takových obyvatel je?

Diskretizace dat

Diskretizace dat převání spojitá data na nominální, nebo nám umožňuje definovat méně kategorií v rámci nominálního atributu.

  1. Atribut “hours.per.week” diskretizujte pouze na tři hodnoty “less” (0-39h), “standard” (40h), “more”(>40h) do nového atributu “hours.per.week.nominal”. Nový atribut udělejte typu factor s hodnotami v pořadí “less”, “standard”, “more”.
  2. Diskretizujte atribut “fnlwgt”. Je možné použít ekvidistantní intervaly pro diskretizaci? Vyzkoušejte a zobrazte histogramy. Využijte například funkci discretize v balíku arules, který si případně nainstalujte.

Chybějící hodnoty

  1. Atribut “workclass” může být i “?”, což je označení chybějící hodnoty, kterou R stále považuje za jednu možnou hodnotu atributu. Hodnoty “?” definujte jako chybějící, tj. nastavte je na hodnotu NA.
  2. Nahraďte chybějící hodnoty u atributu “workclass” na nejčastější hodnotu.

Odvozené atributy

  1. Vytvořte nový atribut “capital” = “capital_gain-capital_lost”.

Vzorkování dat

Naše data jsou rozsáhlá, ale nemají vyvážené třídy (každá třída má jiný počet příkladů). Vzorkování dat je možné použít právě pro vyvážení.

  1. Vyberte z datasetu vyvážený vzorek 10000 instancí, tj. 5000 instancí “⇐50K” a 5000 instancí “>50K”. Zkontrolujte na histogramu, že opravdu došlo k vyvážení dat.

Úloha 2: Transformace dat

Prohlědněte si data transformace.csv.

  1. Předpokládejme, že chceme popsat vztah atributu “y” na “x”. Vykreslete si závislost jako scatter plot. Lze mezi atributy tušit závislost? Pokud ano, jak byste závislost popsali?
  2. Pokuste se data transformovat tak, aby závislost mezi “y” a “x” byla lépe znatelná. (Nápověda: zkuste hodnoty logaritmovat.)

Úloha 3.1: PCA

Podíváme se na data tuk.txt. Data obsahují 3 příznaky (výška, váha, procento tuku).

  1. Prozkoumejte příznaky a vztahy mezi nimi.
  2. Zkuste vztahy mezi procentem tuku a ostatními příznaky modelovat pomocí lineární regese. Jáký model nejlépe vysvětluje procento tuku.
  3. Proveďte PCA datové matice a prozkoumejte jednotlivé komponenty. Lze nalézt podobnosti mezi lineárními modely a PCA loadingy?

d <- read.csv('tuk.txt')
str(d)

d <- d[complete.cases(d),]

lm_w <- lm(fat ~ weight,data=d)
summary(lm_w)
lm_h <- lm(fat ~ height,data=d)
summary(lm_h)

lm_hw <- lm(fat ~ height + weight,data=d)
summary(lm_hw)

pca <- princomp(scale(d))
summary(pca)
pca$loadings

Úloha 3.2: PCA

Podíváme se znovu na data d2.csv. Data obsahující instance dvou tříd. U instancí jsme měřili 8 atributů.

  1. Data klasifikujte, např. pomocí rozhodovacího stromu. Jaké úspěšnosti lze dosáhnout?
  2. Myslíte, že se dá výsledek “nějak” vylepšit? Můžete se např. pokusit vybrat pouze některé atributy a znovu postavit rozhodovací strom.
  3. Pokuste se rovněž extrahovat nový atribut (atributy), který(é) by mohly dobře rozlišit instance daných tříd. Opět postavte rozhodovací strom a porovnejte jej s předchozími.
  4. Nyní použijeme pro extrakci příznaků metodu PCA. Na extrahovaných příznacích opět postavte rozhodovací strom a porovnejte jej s předchozími.
  5. Podívejte se, jaké příznaky vlastně PCA extrahovala. Srovnejte s příznaky, které jste vytvořili sami. Je možné dát první extrahovaný příznak do souvislosti s korelační maticí původních příznaků?

# Pricipal Components Analysis
library(MASS)
library(rpart)
library(rpart.plot)

d <- read.csv('d2.csv')
str(d)

parcoord(d[,1:8],col=d[,9])
dectree <- rpart(c ~ .,data=d)
rpart.plot(dectree)
summary(dectree)

dectree <- rpart(c ~ . + I(...),data=d)
rpart.plot(dectree)

pca <- princomp(scale(d[,1:8]))
summary(pca)
pca$loadings

dectree <- rpart(d$c ~ pca$scores)
rpart.plot(dectree)

Pro porovnání korelací mezi jednotlivými atributy je možné využít následující vizualizaci:

library(corrgram)
corrgram(d[,1:8], order=TRUE, 
         lower.panel=panel.shade,
         upper.panel=panel.pie, 
         text.panel=panel.txt,
         main="Original dataset d2")
         
#new pca attributes
corrgram(pca$scores, order=TRUE, 
         lower.panel=panel.shade,
         upper.panel=panel.pie, 
         text.panel=panel.txt,
         main="Transformed dataset d2")

Úloha 4 - vizualizace reálných dat, identifikace odlehlých a chybných pozorování

Prozkoumejte data boston.csv. Popis atributů je http://stat.ethz.ch/R-manual/R-patched/library/MASS/html/Boston.html.

  1. Podívejte se nejprve na průměty dat do jednotlivých dimenzí. Co o datech soudíte? Pokuste se (např. v histogramech) identifikovat odlehlá a chybná pozorování.
  2. Nyní se podívejte na průměty dat do dvou dimenzí. Pokuste se (bez ohledu na to, co jste zjistili v předchozím kroku) identifikovat opět odlehlá a chybná pozorování (sledujte např. příznaky “tax” a “rad”).
  3. Porovnejte poznatky z předchozích dvou kroků.
  4. Potenciální odlehlá a chybná pozorování sledujte nyní v průmětech do prostorů vyšších dimenzí. Změní se nějak váš názor na potenciálně odlehlá/chybná pozorování?

courses/a6m33dvz/cviceni/10-preproc.txt · Last modified: 2018/12/13 12:46 by nemymila