Практична робота 4. Дерева рішень як метод дейтамайнінгу
Практична робота №6. ДЕРЕВА РІШЕНЬ ЯК МЕТОД ДЕЙТАМАЙНІНГУ
Тема 6. ДЕРЕВА РІШЕНЬ ЯК МЕТОД ДЕЙТАМАЙНІНГУ
Мета роботи: Освоїти побудову методу «Дерево рішень» в середовищі R.
Завдання. Розглянути основні прийоми побудови дерева рішень та візуалізувати результати.
Методичні вказівки.
Одними з найоригінальніших алгоритмів є так звані «дерева класифікації», або «дерева рішень». Вони дозволяють з'ясувати, які саме показники можуть бути використані для поділу об'єктів на заздалегідь задані групи. В результаті будується ключ, в якому на кожному ступені об'єкти діляться на дві групи:
> install.packages("tree")
> library(tree)
> iris.tree < − tree(iris[,5] ~ ., iris[,-5])
> plot(iris.tree)
> text(iris.tree)
Дерева класифікації реалізовані і в пакеті rpart. Творці R рекомендують використовувати саме його замість tree.
Є ще один, який набирає зараз все більшої популярності, метод, ідеологічно близький до дерев класифікації, який називається «Random Forest», оскільки основою методу є виробництво великої кількості класифікаційних «дерев».
> library(randomForest)
> set.seed(17)
> iris.rf < − randomForest(iris.train[,5] ~ ., data=iris.train[,1:4])
> iris.rfp < − predict(iris.rf, iris.unknown[,1:4])
> table(iris.rfp, iris.unknown[,5])
Random Forest дозволяє з'ясувати значимість (importance) кожної ознаки, а тако дистанції між усіма об'єктами тренувальної вибірки (proximity), які потім можна використовувати для кластеризації або багатовимірного шкалювання. Нарешті, цей метод дозволяє «чисту візуалізацію» даних, тобто він може працювати як метод класифікації без навчання:
> set.seed(17)
> iris.urf < − randomForest(iris[,-5])
> MDSplot(iris.urf, iris[,5]
Мета роботи: Освоїти побудову методу «Дерево рішень» в середовищі R.
Завдання. Розглянути основні прийоми побудови дерева рішень та візуалізувати результати.
Методичні вказівки. Дерева прийняття рішень будуються на основі розбиття незалежних змінних і мають три ключові параметри: minbucket, minsplit і cp.
minbucket - мінімальна кількість спостережень, яке повинно міститися в кожному аркуші дерева. При великому значенні minbucket модель буде занадто загальною, що негативно позначиться на точності. Якщо minbucket буде занадто низьким виникає ризик перенавчання, модель буде показувати відмінні результати при навчанні але виявиться непридатною для роботи з реальними даними.
minsplit - мінімальна кількість спостережень, які повинні міститися в вершині, щоб спробувати розбити її на кілька вершин.
cp (complexity parameter) - це метрика, яка зупиняє розгалуження дерева, коли воно вже не покращує показники моделі.
# Підготовка даних
setwd("path/to/working/directory")
titanic <- read.csv("titanic.csv")
str(titanic)
titanic$Pclass <- as.factor(titanic$Pclass)
titanic$Survived <- as.factor(titanic$Survived)
titanic$Age[is.na(titanic$Age)] <- median(titanic$Age, na.rm=TRUE)
library(caTools)
set.seed(3000)
split <- sample.split(titanic$Survived, SplitRatio = 0.7)
Train <- subset(titanic, split == TRUE)
Test <- subset(titanic, split == FALSE)
# Установка и загрузка пакетів
install.packages("rpart")
install.packages("rpart.plot")
install.packages("rattle")
install.packages("RColorBrewer")
library(rpart)
library(rpart.plot)
library(rattle)
library(RColorBrewer)
# Побудова моделі
TitanicTree <- rpart(Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare,
data = Train, method = "class",
control=rpart.control(minbucket = 25))
# Зображення дерева
prp(TitanicTree) # Просте графічне зображення
# Робимо прогноз
PredictCART <- predict(TitanicTree, newdata = Test, type="class")
# Визначаємо точність
table(Test$Survived, PredictCART)
(156 + 54) / (156 + 54 + 49 + 9) # 0.7835821
# ROC крива
library(ROCR)
PredictROC <- predict(TitanicTree, newdata = Test)
pref <- prediction(PredictROC[,2], Test$Survived)
perf <- performance(pref, "tpr", "fpr")
plot(perf)
Форма подання: виконана робота надсилається на сайт у форматі Word.
Критерії оцінювання: за правильно і вчасно виконану роботу максимальна оцінка - 10 балів. Оцінюються правильність розрахунків і зроблених висновків.
15 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням у розрізі окремого варіанту.
Матеріал опрацьовано у повному обсязі і викладено правильно, логічно і послідовно, немає зауважень щодо змісту.
Під час захисту роботи на парі студент вправно формулює висновки за темою дослідження.
14 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням у розрізі окремого варіанту.
Матеріал опрацьовано у повному обсязі і викладено правильно і послідовно, немає суттєвих зауважень щодо змісту.
Під час захисту роботи на парі студент формулює висновки за темою дослідження.
13 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням у розрізі окремого варіанту.
Матеріал опрацьовано у повному обсязі і викладено правильно і послідовно, немає суттєвих зауважень щодо змісту.
Студент формулює висновки з певними неточностями або ті, які не відповідають запропонованій темі.
12 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням у розрізі окремого варіанту.
Матеріал опрацьовано у повному обсязі і викладено з певними помилками у розрахунках, немає суттєвих зауважень щодо змісту. Неакуратне оформлення.
Студент формулює висновки з певними неточностями або ті, які не відповідають запропонованій темі.
10 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням у розрізі окремого варіанту.
Матеріал опрацьовано у певному обсязі і викладено з помилками у розрахунках. Неакуратне оформлення.
Студент формулює суперечливі, неправильні висновки або ті, які не відповідають запропонованій темі.
9 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням.
Матеріал опрацьовано у певному обсязі і викладено з помилками у розрахунках. Неакуратне оформлення.
Студент формулює суперечливі, неправильні висновки або ті, які не відповідають запропонованій темі.
8 балів: Практична робота виконана згідно навчально-методичних вимог.
Матеріал опрацьовано у не певному обсязі і викладено з помилками у розрахунках. Неакуратне оформлення.
Студент формулює суперечливі, неправильні висновки або ті, які не відповідають запропонованій темі.
1-7 балів: Практична робота виконана згідно навчально-методичних вимог за запропонованим завданням у розрізі окремого варіанту.
Матеріал опрацьовано фрагментарно, представлено не у повному обсязі і викладено з помилками у розрахунках. Неакуратне оформлення.
Студент формулює суперечливі, неправильні висновки або ті, які не відповідають запропонованій темі.
Шрифти
Розмір шрифта
Колір тексту
Колір тла