Как да приложим линеен дискриминативен анализ в R?



Тази статия ще ви разкаже какво е линеен дискриминант анализ и ще ви даде подробна демонстрация с помощта на езика за програмиране R.

Линейният дискриминативен анализ е много популярна техника за машинно обучение, която се използва за решаване на проблеми с класификацията. В тази статия ще се опитаме да разберем интуицията и математиката зад тази техника. Пример за прилагане на LDA в R също се предоставя.

Така че нека започнем тогава





Предполагане за линеен дискриминативен анализ

Линейният дискриминативен анализ се основава на следните предположения:

  • Зависимата променлива Y. е дискретна. В тази статия ще приемем, че зависимата променлива е двоична и приема стойности на класа {+1, -1} . Вероятността проба да принадлежи към класа +1 , i.e P (Y = +1) = p . Следователно вероятността проба да принадлежи към класа -един е 1-р .



  • Независимите променливи х идват от гаусови дистрибуции. Средната стойност на гаусовото разпределение зависи от етикета на класа Y. . т.е. ако Y. i = +1 , тогава средната стойност на х i е & # 120583 +1 , иначе е & # 120583 -един . Дисперсията & # 120590 2 е еднакъв за двата класа. Математически казано, X | (Y = +1) ~ N (& # 120583 +1 , & # 120590 2 ) и X | (Y = -1) ~ N (& # 120583 -един , & # 120590 2 ) , където н обозначава нормалното разпределение.

С тази информация е възможно да се изгради съвместно разпределение P (X, Y) за независимата и зависимата променлива. Следователно LDA принадлежи към класа на Генеративни модели на класификатор . Тясно свързан генеративен класификатор е Квадратичен дискриминантен анализ (QDA). Той се основава на едни и същи предположения за LDA, с изключение на това, че разликите в класовете са различни.

Нека да продължим със статията за линеен дискриминант и да видим

Интуиция

Помислете за класовите условни гауссови разпределения за х предвид класа Y. . Фигурата по-долу показва функциите на плътността на разпределенията. На тази фигура, ако Y = +1 , тогава средната стойност на х е 10 и ако Y = -1 , средната стойност е 2. Дисперсията е 2 и в двата случая.

интуиция - Линеен дискриминационен анализ - Edureka

Сега предположим нова стойност на х ни е дадено. Нека просто го обозначим като х i . Задачата е да се определи най-вероятният етикет на класа за това х i , i.e. Y. i . За простота приемете, че вероятността стр от пробата, принадлежаща към класа +1 е същото като това на принадлежността към класа -един , i.e. р = 0,5 .

Интуитивно има смисъл да се каже, че ако х i е по-близо до & # 120583 +1 отколкото е & # 120583 -един , тогава е по-вероятно това Y. i = +1 . По-формално, Y. i = +1 ако:

предава по стойност в java

| х i - & # 120583 +1 |<|x i - & # 120583 -един |

Нормализиране на двете страни по стандартното отклонение:

| х i - & # 120583 +1 | / & # 120590<|x i - & # 120583 -един | / & # 120590

Квадратура на двете страни:

i - & # 120583 +1 ) 2 / & # 120590 2 <(x i - & # 120583 -един ) 2 / & # 120590 2

х i 2 / & # 120590 2 + & # 120583 +1 2 / & # 120590 2 - 2 х i & # 120583 +1 / & # 120590 2 i 2 / & # 120590 2 + & # 120583 -един 2 / & # 120590 2 - 2 х i & # 120583 -един / & # 120590 2

2 x i (& # 120583 -един - & # 120583 +1 ) / & # 120590 2 - (& # 120583 -един 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )<0

-2 х i (& # 120583 -един - & # 120583 +1 ) / & # 120590 2 + (& # 120583 -един 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 )> 0

Горният израз е от формата bx i + c> 0 където b = -2 (& # 120583 -един - & # 120583 +1 ) / & # 120590 2 и c = (& # 120583 -един 2 / & # 120590 2 - & # 120583 +1 2 / & # 120590 2 ) .

марионетка срещу готвач срещу дженкини

Очевидно е, че формата на уравнението е линейна , откъдето идва и името Линеен дискриминативен анализ.

Нека да продължим със статията за линеен дискриминант и да видим,

Математическо описание на LDA

Математическото извеждане на израза за LDA се основава на понятия като Правило на Байес и Оптимален класификатор на Bayes . Заинтересованите читатели се насърчават да прочетат повече за тези понятия. Може да се намери един от начините за извличане на израза тук .

Ще предоставим израза директно за конкретния ни случай където Y. отнема два класа {+1, -1} . Също така ще разширим интуицията, показана в предишния раздел, до общия случай, където х може да бъде многоизмерна. Да кажем, че има да се независими променливи. В този случай класът означава & # 120583 -един и & # 120583 +1 биха били вектори на измерения k * 1 и дисперсионно-ковариационната матрица & # 120622 би била матрица от измерения k * k .

Функцията класификатор е дадена като

Y = h (X) = знак (b т X + c)

Където,

b = -2 & # 120622 -един (& # 120583 -един - & # 120583 +1 )

c = & # 120583 -един т & # 120622 -един & # 120583 -един - & # 120583 -един т & # 120622 -един & # 120583 -един {-2 ln (1-p) / p}

Функцията знак се връща +1 ако изразът б т x + c> 0 , в противен случай се връща -един . Естественият термин за влизане в ° С присъства, за да се приспособи към факта, че вероятностите на класа не е необходимо да са равни и за двата класа, т.е. стр може да бъде всяка стойност между (0, 1), а не само 0,5.

Изучаване на параметрите на модела

Даден набор от данни с н точки от данни един , Y един ), (х 2 , Y 2 ),… (Х н , Y н ) , трябва да преценим p, & # 120583 -един , & # 120583 +1 и & # 120622 . Извиква се техника за статистическа оценка Оценка на максималната вероятност се използва за оценка на тези параметри. Изразите за горните параметри са дадени по-долу.

& # 120583 +1 = (1 / N +1 ) * & # 120506 i: yi = + 1 х i

& # 120583 -един = (1 / N -един ) * & # 120506 i: yi = -1 х i

p = N +1

& # 120622 = (1 / N) * & # 120506i = 1: N i - & # 120583 i ) (х i - & # 120583 i ) т

Където н +1 = брой проби, където y i = +1 и н -един = брой проби, където y i = -1 .

С горните изрази моделът LDA е завършен. Може да се изчислят параметрите на модела, като се използват горните изрази и да се използват във функцията класификатор, за да се получи етикетът на класа на всяка нова входна стойност на независима променлива х .

Нека да продължим със статията за линеен дискриминант и да видим

Пример в R

Следващият код генерира фиктивен набор от данни с две независими променливи X1 и X2 и зависима променлива Y. . За X1 и X2 , ще генерираме извадка от две многомерни гауссови разпределения със средства & # 120583 -един = (2, 2) и & # 120583 +1 = (6, 6) . 40% от пробите принадлежат към клас +1 и 60% принадлежат към класа -един , Следователно р = 0,4 .

библиотека (ggplot2) библиотека (MASS) библиотека (mvtnorm) #Variance Ковариантна матрица за произволна двувариантна гауссова проба var_covar = матрица (данни = c (1.5, 0.3, 0.3, 1.5), nrow = 2) # Случайни двумерни гауссови проби за клас + 1 Xplus1<- rmvnorm(400, mean = c(6, 6), sigma = var_covar) # Random bivariate gaussian samples for class -1 Xminus1 <- rmvnorm(600, mean = c(2, 2), sigma = var_covar) #Samples for the dependent variable Y_samples <- c(rep(1, 400), rep(-1, 600)) #Combining the independent and dependent variables into a dataframe dataset <- as.data.frame(cbind(rbind(Xplus1, Xminus1), Y_samples)) colnames(dataset) <- c('X1', 'X2', 'Y') dataset$Y <- as.character(dataset$Y) #Plot the above samples and color by class labels ggplot(data = dataset)+ geom_point(aes(X1, X2, color = Y)) 

На горната фигура сините точки представляват проби от клас +1 а червените представляват пробата от клас -един . Между пробите има известно припокриване, т.е.класовете не могат да бъдат разделени напълно с обикновена линия. С други думи, те не са перфектно линейно разделими .

Сега ще обучим модел LDA, използвайки горните данни.

# Обучете модела LDA, като използвате горния набор от данни lda_model<- lda(Y ~ X1 + X2, data = dataset) #Print the LDA model lda_model 

Изход:

Предварителни вероятности за групи:

-единадесет

0,6 0,4

Група означава:

задайте път на Java в windows

X1 X2

-1 1.928108 2.010226

1 5.961004 6.015438

Коефициенти на линейни дискриминанти:

LD1

X1 0,5646116

X2 0.5004175

Както се вижда, средствата за клас, научени от модела, са (1.928108, 2.010226) за клас -един и (5.961004, 6.015438) за клас +1 . Тези средства са много близки до класните средства, които бяхме използвали за генериране на тези произволни извадки. Предварителната вероятност за група +1 е оценката за параметъра стр . The б вектор е линейните дискриминантни коефициенти.

Сега ще използваме горния модел, за да предскажем етикетите на класовете за същите данни.

# Предвиждане на класа за всяка проба в горния набор от данни, използвайки модела LDA y_pred<- predict(lda_model, newdata = dataset)$class #Adding the predictions as another column in the dataframe dataset$Y_lda_prediction <- as.character(y_pred) #Plot the above samples and color by actual and predicted class labels dataset$Y_actual_pred <- paste(dataset$Y, dataset$Y_lda_prediction, sep=',') ggplot(data = dataset)+ geom_point(aes(X1, X2, color = Y_actual_pred))

На горната фигура лилавите проби са от клас +1 които бяха класифицирани правилно от модела LDA. По същия начин червените проби са от клас -един които бяха класифицирани правилно. Сините са от клас +1 но бяха класифицирани неправилно като -един . Зелените са от клас -един които бяха погрешно класифицирани като +1 . Погрешните класификации се случват, защото тези извадки са по-близо до средното за другия клас (центъра), отколкото действителното средно за класа.

Това ни води до края на тази статия, вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Анализът на данни на Edureka с R обучение ще ви помогне да придобиете опит в R програмиране, манипулиране на данни, проучвателен анализ на данни, визуализация на данни, извличане на данни, регресия, анализ на настроението и използване на R Studio за реални казуси в областта на търговията на дребно, социалните медии.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия и ние ще се свържем с вас възможно най-скоро.