DataScience
article thumbnail
728x90

판별 분석: 두개 이상의 모집단으로부터 표본이 섞였을 경우, 개별 경우에 대하여 그것이 어떤 모집단에 속하는지를 판별하기 위한 함수를 만들어서 데이터를 분류하는 방법

판별함수는 그룹 안 분산(Variance within group)에 비하여 그룹 간 분산(Variance between group)의 최대화로 얻어짐.

로직스틱 회귀분석과 많이 비교됨.

종류:

1) 선형(Linear)판별 분석: 정규 분포의 분산-공분산 행렬이 범주에 관계없이 동일한 경우 적용

2) 이차(Quadratic)판별 분석: 정규 분포의 분산-공분산 행렬이 범주별로 다른 경우 적용

1. 선형 판별 분석(Linear Discriminant Analysis)

선형 판별 분석: 데이터를 특정 축에 투영하여 데이터를 잘 구분할 수 있는 직선을 찾는 것을 목표로 하는 분석 방법

실습

 
#패키지 설치
install.packages("caTools")
install.packages("MASS")
library(caTools)

#training, test set
set.seed(1000)
split <- sample.split(iris$Species, SplitRatio=.7)
train <- subset(iris, split == T)
test <- subset(iris,split == F)
test.y <- test[,5]

# LDA 실행
library(MASS)

# Species가 3종류이므로 prior 3개 설정
iris.lda <- lda(Species~., data=train, prior=c(1/3, 1/3, 1/3))
iris.lda
plot(iris.lda)

Prior probabilities of groups: 각 특성별 사전 부여 비율

Group means: 각 Species 별 변수의 평균 값

Coefficients of linear discriminants: 변수 특성

데이터가 LD1을 기준으로 확실히 분리되는 것을 볼 수 있음 (98.87%).

LD2로는 특별한 분류의 효과를 보지 못함.

LD1, LD2로 구성된 모델을 기반으로 주어진 데이터에 대한 예측

 
testpred <- predict(iris.lda, test)
table(test.y, testpred$class)

2. 이차판별분석 (Quadratic Discriminant Analysis)

실습.

# 패키지설치
install.packages("biotools")
library(biotools)

# 분산-공분산 행렬이 동일하지 않은 지 확인
boxM(iris[1:4], iris$Species)
# p-value가 0.05보다 작으면 분산-공분산 행렬이 동일하지 않음.
# p-value가 0.05보다 크면 QDA 적용 못함.

iris.qda <- qda(Species~., data=train, prior=c(1/3, 1/3, 1/3))
iris.qda
# QDA는 직선이 아니므로 그래프로 표현하기 어려움
#테스트 데이터 대상으로 예측

testqda <- predict(iris.qda, test)
table(test.y, testqda$class)

'데이터분석 > 통계기반' 카테고리의 다른 글

시계열분석(Time Series Analysis)  (2) 2022.12.12
주성분 분석(Principal Component Analysis)  (0) 2022.12.12
요인분석 (Factor Analysis)  (0) 2022.12.12
상관관계 분석  (1) 2022.12.12
변수 선택  (0) 2022.12.12
profile

DataScience

@Ninestar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!