lab14
This commit is contained in:
parent
4d927ae14a
commit
1c575b8ecb
@ -951,12 +951,103 @@ cor(Girth,Volume)
|
||||
Zagadnienia:
|
||||
- klasyfikacja
|
||||
|
||||
- wykład 12 na stronie
|
||||
- wykład 12 na stronie (jest jeszcze więcej wywołań w R)
|
||||
|
||||
|
||||
|
||||
### R
|
||||
```r
|
||||
# liniowa dyskryminacja
|
||||
library(MASS)
|
||||
model_lda <- lda(V14 ~ V1 + V2 + V3, data = wina)
|
||||
|
||||
|
||||
# błąd klasyfikacji metodą sprawdzania krzyżowego v=10
|
||||
library(MASS)
|
||||
v <- 10
|
||||
blad_i <- numeric(v)
|
||||
krok <- floor(nrow(iris) / v)
|
||||
permutacja <- sample(1:nrow(iris))
|
||||
temp <- 0
|
||||
for (i in 1:v) {
|
||||
if (i != v) {
|
||||
obs_temp <- permutacja[(temp + 1):(i * krok)]
|
||||
temp <- i * krok
|
||||
} else {
|
||||
obs_temp <- permutacja[(temp + 1):nrow(iris)]
|
||||
}
|
||||
model_lda_i <- lda(Species ~ ., data = iris[-obs_temp, ])
|
||||
pred_i <- stats::predict(model_lda_i, iris[obs_temp, ])$class
|
||||
blad_i[i] <- sum(pred_i != iris$Species[obs_temp])
|
||||
}
|
||||
sum(blad_i) / nrow(iris)
|
||||
|
||||
|
||||
# bootstrap
|
||||
n_boot <- 100
|
||||
temp_boot <- numeric(n_boot)
|
||||
set.seed(1234)
|
||||
for (i in 1:n_boot) {
|
||||
numery <- sample(1:nrow(iris), replace = TRUE)
|
||||
model_lda_i <- lda(Species ~ ., data = iris[numery, ])
|
||||
temp_boot[i] <- mean(stats::predict(model_lda_i, iris[-numery, ])$class != iris[-numery, ]$Species)
|
||||
}
|
||||
mean(temp_boot)
|
||||
|
||||
|
||||
# tablica kontynencji (krzyżowa)
|
||||
head(stats::predict(model_lda)$posterior)
|
||||
head(stats::predict(model_lda)$class)
|
||||
(conf_matrix <- table(stats::predict(model_lda)$class, wina$V14))
|
||||
|
||||
|
||||
# błąd metodą ponownego podstawiania
|
||||
(1 - sum(diag(conf_matrix)) / nrow(wina))
|
||||
|
||||
|
||||
# klasyfikacja
|
||||
new_data <- data.frame(V1 = c(13.64, 13.94, 13.08, 12.29),
|
||||
V2 = c(3.1, 1.73, 3.9, 3.17),
|
||||
V3 = c(2.56, 2.27, 2.36, 2.21))
|
||||
stats::predict(model_lda, new_data)
|
||||
|
||||
|
||||
# gotowy bootstrap
|
||||
library(caret)
|
||||
ctrl_boot <- trainControl(method = 'boot',
|
||||
number = 100,
|
||||
search = 'grid')
|
||||
ctrl_loo <- trainControl(method = 'LOOCV',
|
||||
search = 'grid')
|
||||
ctrl_10CV <- trainControl(method = "repeatedcv",
|
||||
number = 10,
|
||||
repeats = 10)
|
||||
train(V14 ~ V1 + V2 + V3, data = wina, method = 'lda', trControl = ctrl_boot)
|
||||
train(V14 ~ V1 + V2 + V3, data = wina, method = 'lda', trControl = ctrl_loo)
|
||||
train(V14 ~ V1 + V2 + V3, data = wina, method = 'lda', trControl = ctrl_10CV)
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Zagadnienia
|
||||
### Zagadnienia
|
||||
- Klasyfikacja - w zagadnieniach klasyfikacyjnych poszukujemy reguły (klasyfikatora) (zazwyczaj oznaczanego literą d) pozwalającego na przyporządkowanie obiektu ( opisanego przez p wymiarowy wektor obserwowanych cech) do jednej z k klas.
|
||||
|
||||
- Tabela krzyżowa (kontyngencji) - tabela przedstawiająca łączny rozkład dwóch lub większej liczby zmiennych. W przykładzie wartości w kolumnie sumują się do 100%, w wierszu już nie muszą.<br/>
|
||||
![krzyzowa](lab14/krzyzowa.png)
|
||||
|
||||
- Estymacja błędu - dzielimy liczbę błędów przez sumę liczby klasyfikacji.
|
||||
|
||||
- Szacowanie jakości klasyfikatora:
|
||||
- Metoda ponownego podstawienia. Korzystając z całej próby (uczącej) uzyskujemy klasyfikator d. Następnie, wykorzystując ten klasyfikator, prognmozujemy etykiety wszystkich elementów próby (obiektów). Miarą jakości jest proporcja poprawnie zaklasyfikowanych obiektów.
|
||||
|
||||
- Sprawdzian krzyżowy – metoda statystyczna polegająca na podziale próby statystycznej na podzbiory, a następnie przeprowadzaniu wszelkich analiz na niektórych z nich, tzw. zbiór uczący, podczas gdy pozostałe służą do potwierdzenia wiarygodności jej wyników, tzw. zbiór testowy. [link](https://pl.wikipedia.org/wiki/Sprawdzian_krzyżowy)<br/><br/>
|
||||
|
||||
- Jak robię lda i dostaję wynik w którym są "coefficients of linear discriminants" to program robi tak że mnoży odpowiednią wartość współczynnika z odpowiednią wartością obserwacji i otrzymany wynik jest używany potem do algorytmu klasyfikacji.
|
||||
|
||||
- A posteriori (łac. „z następstwa”) – w filozofii termin będący przeciwieństwem wyrażenia a priori, oznaczający tyle co: "po fakcie".
|
||||
|
||||
- Wzór Bayesa<br/>
|
||||
![bayes](lab14/bayes.png)
|
||||
|
||||
- Bayesowska reguła klasyfikacyjna<br/>
|
||||
![regula](lab14/regula.png)
|
BIN
podsumowanie/lab14/bayes.png
Normal file
BIN
podsumowanie/lab14/bayes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
BIN
podsumowanie/lab14/krzyzowa.png
Normal file
BIN
podsumowanie/lab14/krzyzowa.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
podsumowanie/lab14/regula.png
Normal file
BIN
podsumowanie/lab14/regula.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 92 KiB |
Loading…
Reference in New Issue
Block a user