Линейният дискриминативен анализ е много популярна техника за машинно обучение, която се използва за решаване на проблеми с класификацията. В тази статия ще се опитаме да разберем интуицията и математиката зад тази техника. Пример за прилагане на LDA в 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 и в двата случая.
Сега предположим нова стойност на х ни е дадено. Нека просто го обозначим като х 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
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 за реални казуси в областта на търговията на дребно, социалните медии.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия и ние ще се свържем с вас възможно най-скоро.