Преглед на дървото на решения в R

Дървото на решения в r е форма на контролирано обучение, използвано за коригиране на проблемите с класификацията и регресията. Те са силен алгоритъм за машинно обучение за работа с много сложни набори от данни. Основната концепция зад дървото на решения е да се раздели даденият набор от данни. За да разгледате тази статия, се препоръчва да имате основни концепции за обучение в алгоритъма на дървото на решенията.

Дърво на решение в R

За да работите с дърво на решения в R или в обикновени условия, е необходимо да се работи с големи масиви от данни и директното използване на вградени R пакети улеснява работата. Дървото на решения е нелинеен модел на предположение, който използва структура на дърво, за да класифицира връзките. Дървото на решението в R използва два типа променливи: категорична променлива (Да или Не) и непрекъснати променливи. Терминологиите на Дървото на решенията, състоящи се от коренния възел (образува етикет клас), възли за решение (под-възли), терминален възел (не се разделят допълнително). Уникалната концепция, която стои зад този подход за машинно обучение е, че класифицират дадените данни в класове, които формират да или не поток (ако е друго) и представляват резултатите в дървовидната структура. Алгоритъмът, използван в дървото на решенията в R, е индексът на Джини, печалба на информация, ентропия. Налични са различни пакети за изграждане на дърво за решения в R: rpart (рекурсивен), парти, случаен Forest, CART (класификация и регресия). Доста лесно е да се приложи дърво на решения в Р.

За ясен анализ дървото е разделено на групи: тренировъчен набор и тестов набор. Следващата реализация използва набор от данни за автомобил. Този набор от данни съдържа 1727 obs и 9 променливи, с които е изградено класификационното дърво. В тази статия ви позволява дърво пакет "парти". Функцията създава () дава условни дървета с функцията plot.

Изпълнение с помощта на R

Целта е да се проучи набор от данни за автомобил, за да се предвиди дали стойността на автомобила е висока / ниска и средна.

i) Подготовка на данни

Инсталиране на пакетите и зареждане на библиотеки

Този модул чете набора от данни като цялостен кадър с данни и структурата на данните се дава както следва:

data<-car // Reading the data as a data frame
str(data) // Displaying the structure and the result shows the predictor values.

изход:

Determining Factordata$vhigh View(car)
> data<-car

ii) Разделяне на данни

Разделяне на данните с помощта на набори от данни за обучение. Дървото на решения се разделя на под-възли, за да има добра точност. Сложността се определя от размера на дървото и степента на грешки. Тук правим репродуктивност и генерираме редица редове.

set. Seed (1234)
dt<-sample (2, nrow(data), replace = TRUE, prob=c (0.8, 0.2))
validate<-data(dt==2, )

Фиг .: Показване на стойности на данните

На следващо място, превръщайки стойността на данните на 2

validate<-data(dt==2, )

Фиг .: Показване на R конзола в R Studio

Създаване на дърво за решение в R с страна на пакета

  • Щракнете върху пакет-> инсталирате -> страна. Тук взехме първите три входа от извадката от 1727 наблюдения върху наборите от данни. Създаване на модел за прогнозиране на висок, нисък, среден сред вложените данни.

Изпълнение:

library(party)
tree<-ctree(v~vhigh+vhigh.1+X2, data = train)
tree

изход:

Парцели, използващи Ctree

прогноза:

Проба генерира вероятност за оценяване,

Изпълнение:

predict(tree, validate, type="prob")
predict(tree, validate)

(1) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(12) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(23) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(34) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(45) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(56) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(67) vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh vhigh

(78) vhigh vhigh vhigh високо високо високо високо високо високо високо високо

(89) високо високо високо високо високо високо високо високо високо високо

(100) високо високо високо високо високо високо високо високо високо високо

(111) високо високо високо високо високо високо високо високо високо високо

(122) високо високо високо високо високо високо високо високо високо високо

(133) високо високо високо високо високо високо високо високо високо високо

(144) високо високо високо високо високо високо високо високо високо високо

(155) високо високо високо високо високо високо високо високо високо високо

(166) високо високо високо високо високо високо високо високо високо високо

(177) висок висок висок сред med med med med med med

(188) med med med med med med med med med med med med

(199) med med med med med med med med med med med

(210) med med med med med med med med med med med

(221) med med med med med med med med med med med med

(232) med med med med med med med med med med med med

(243) med med med med med med med med med med med med

(254) med med med med med med med med med low low

(265) нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък

(276) нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък

(287) нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък

(298) нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък

(309) нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък

(320) нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък нисък

(331) нисък нисък нисък нисък нисък

Нива: високо ниско средно vhigh

Дърво на решение с помощта на rpart

За прогнозиране на класа, използвайки функция rpart () за метода на клас. rpart () използва мярката на индекса на Джини, за да раздели възлите.

library(rpart)
tr<-rpart (v~vhigh+vhigh.1+X2, train)
library (rpart. plot)
rpart. plot(tr)

"

rpart.plot(tr, extra=2)

Този ред очертава дървото и показва вероятността да направи допълнителни функции за задаване на 2 и полученият резултат е даден по-долу.

Грешка при погрешно класифициране

Коефициентът на грешки предотвратява прекаляването.

tbl<-table(predict(tree), train $v)
print(tbl)
tepre<-predict(tree, new=validate)

изход:

отпечатате (TBL)

високо ниско med vhigh

висока 332 0 0 0

ниско 0 359 0 0

med 0 0 350 0

vhigh 0 0 0 351

заключение

Дървото на решенията е основно предизвикателство за R, а силата на дървото е, че те са лесни за разбиране и четене в сравнение с други модели. Те се използват популярно при проблеми с науката. Тези инструменти създават йерархията на решенията, приложени в статистическия анализ. Необходими са статистически знания, за да се разберат логическите интерпретации на дървото на решенията. Както видяхме, дървото на решения е лесно за разбиране и резултатите са ефективни, когато има по-малко класни етикети, а другата недостатъчна част от тях е, когато има повече класови изчисления, стават сложни. Тази публикация прави човек, който е специалист в изграждането на предсказуеми и базирани на дървета модели на обучение.

Препоръчителни статии

Това е ръководство за дървото на решенията в Р. Тук обсъждаме въвеждането, начина на използване и прилагането на R. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. Какво е бинарно дърво в Java?
  2. R Език за програмиране
  3. Какво е Visual Studio Code?
  4. Въведение в линейна графика в R
  5. Ръководство за биномиално разпределение в R

Категория: