Uczenie maszynowe w R

Dariusz Brzeziński

Część I: Klasyfikacja

Agenda

  • Podstawowe metody uczenia maszynowego
    • Zasady uczenia i testowania
    • Optymalizacja parametrów
    • Wstępne przetwarzanie w procesie uczenia
  • Klasyfikacja
  • Biblioteka caret

Uczenie maszynowe

Dział informatyki zajmujący się przewidywaniem danych na podstawie danych.

Uczenie maszynowe wywodzi się ze sztucznej inteligencji i statystyki, a algorytmy z tej dziedziny często pojawiają się przy okazji terminów: data science, statistical data analysis, deep learning, AI, knowledge discovery czy data mining.

caret - predykcja

library(pROC)
rfTuneProbs <- predict(fitTune,
                       newdata = testing,
                       type="prob")
rocCurve <- roc(response = testing$Class,
                predictor = rfTuneProbs[, "M"],
                levels = rev(levels(testing$Class)))

Jeśli algorytm na to pozwala, oprócz predykcji w postaci klas, można również uzyskać wartości prawdopodobieństw wskazania każdej z klas.

caret - predykcja

plot(rocCurve)

plot of chunk unnamed-chunk-16

caret - uwagi

  • aby nauczyć model bez optymalizacji parametrów, należy w ustawić w trainControl parametr method = "none"
  • oprócz dokładnego przeszukiwania przestrzeni parametrów można również testować tylko losowe wartości za pomocą parametru search = "random" w trainControl i tuneLength w train
  • caret oferuje sporo różnych wizualizacji wyników, ale są one dostosowane do różnych systemów graficznych

Zadanie

  • Załaduj zbiór danych churn:
library(modeldata)
data(mlc_churn)
churnData <- data.frame(mlc_churn)
  • Podziel ten zbiór na uczący i testowy (75% w zbiorze uczącym)
  • Przetestuj dwa algorytmy klasyfikacyjne
  • Zastanów się czy warto wstępnie przetworzyć zbiór
  • Określ przestrzeń przeszukiwania parametrów
  • Porównaj algorytmy za pomocą wykresu