My IBM 로그인 구독하기

선형 판별 분석(LDA)이란 무엇인가요?

2023년 11월 27일

LDA란 무엇인가요?

선형 판별 분석(LDA)은 지도 머신 러닝에서 다중 클래스 분류 문제를 해결하기 위해 사용되는 접근 방식입니다. LDA는 여러 특성을 가진 다수의 클래스를 분리하기 위해 데이터 차원 축소를 사용합니다. 이 기법은 머신 러닝 모델을 최적화하는 데 도움이 되므로 데이터 과학에서 중요합니다.

선형 판별 분석은 정규 판별 분석(NDA) 또는 판별 함수 분석(DFA)이라고도 하며, 생성형 모델 프레임워크를 따릅니다. 즉, LDA 알고리즘은 각 클래스의 데이터 분포를 모델링하고 베이즈의 정리1를 사용하여 새 데이터 포인트를 분류합니다. 베이즈는 다른 이벤트가 발생했을 때 이벤트가 발생할 확률인 조건부 확률을 계산합니다. LDA 알고리즘은 베이즈를 사용해 입력 데이터 세트가 특정 아웃풋에 속할 확률을 계산하여 예측합니다. 베이지안 통계와 이것이 지도 학습 알고리즘에 미치는 영향을 자세히 알아보려면 나이브 베이즈 분류기를 참조하세요.

LDA는 두 개 이상의 객체 또는 이벤트 클래스를 분리하거나 특성화하는 특징의 선형 조합을 식별하는 방식으로 작동합니다. LDA는 두 개 이상의 차원을 가진 데이터를 보다 쉽게 분류할 수 있도록 하나의 차원으로 프로젝션하여 작업을 수행합니다. 이 기법을 차원 축소라고도 합니다. 이러한 다용도성 덕분에 LDA는 이진 분류로 제한되는 로지스틱 회귀와 다르게 다중 클래스 데이터 분류 문제에도 사용할 수 있습니다. 따라서 LDA는 Decision Trees랜덤 포레스트 또는 서포트 벡터 머신(SVM)과 같은 다른 학습 분류 알고리즘의 작동을 향상하기 위해 적용되는 경우가 많습니다.

선형 판별 분석의 기원

선형 판별 분석(LDA)은 1930년대 로널드 피셔 경(Sir Ronald Fisher)이 개발하고 후에 C. R. 라오(C. R. Rao)가 다중 클래스 버전으로 단순화한 통계 방법인 피셔의 선형 판별식(Fisher's Linear Discriminant)을 기반을 두고 있습니다. 피셔의 방법은 라벨링된 객체 또는 이벤트로 구성된 두 개 이상의 클래스를 구별하는 특징의 선형 조합을 식별하는 것을 목표로 합니다.

피셔의 방법은 프로젝션된 데이터의 클래스를 분리하여 차원을 줄입니다. 분리란 프로젝션된 평균 간의 거리를 최대화하고 클래스 내에서 예측된 편차를 최소화하는 것을 의미합니다.

LDA의 실제 적용 사례

은행에서 대출 신청을 승인할지 거부할지 결정하는 상황을 가정해 보겠습니다. 은행은 이 결정을 내리기 위해 신청자의 신용 점수와 연간 소득이라는 두 가지 특징을 사용합니다.

여기서 두 가지 특징 또는 클래스는 X-Y축이 있는 2차원(2D) 평면에 그려집니다. 하나의 특징만 사용해 승인을 분류하려고 하면 중복이 관찰될 수 있습니다. LDA를 적용하면 이 두 클래스의 데이터 포인트를 완전히 분리하는 직선을 그릴 수 있습니다. LDA는 X-Y축을 사용하여 새 축을 만들고, 서로 다른 클래스를 직선으로 구분하고, 데이터를 새 축에 프로젝션함으로써 이를 완료합니다.

이 새로운 축을 생성하고 차원을 줄이기 위해 LDA는 다음 기준을 따릅니다.

  • .
  • 두 클래스의 평균 간 거리 최대화
  • 개별 클래스 내 분산 최소화
.

LDA의 속성 및 가정

LDA는 클래스 정보를 잃지 않고 특징 공간, 즉 n차원의 데이터 세트를 더 작은 공간 'k'에 프로젝션하는 방식으로 작동하며, 여기서 k는 n-1보다 작거나 같아야 합니다. LDA 모델은 각 클래스의 데이터에 대해 계산된 통계적 속성으로 구성됩니다. 특징 또는 변수가 여러 개 있는 경우, 이러한 속성은 다중 변수 가우스 분포3를 통해 계산됩니다.

다변수는 다음과 같습니다.

  • .
  • 평균
  • 공분산 행렬 - 각 변수 또는 특징이 클래스 내에서 다른 변수 또는 특징과 어떻게 관련되어 있는지 측정
.

데이터 세트에서 추정된 통계적 속성은 LDA 함수에 입력되어 예측을 수행하고 LDA 모델을 생성합니다. 이 모델은 다음과 같은 가정을 갖고 있으므로 몇 가지 제약 조건을 기억해야 합니다.

  • .
  • 입력 데이터 세트에는 가우스 분포가 있으며, 데이터 포인트를 연결하면 종 모양의 곡선이 생성됩니다.
  • 데이터 세트는 선형으로 분리할 수 있으며, 이는 LDA가 데이터 포인트를 분리하는 직선 또는 의사 결정 경계를 그릴 수 있음을 의미합니다.
  • 각 클래스는 동일한 공분산 행렬을 가집니다.
.

이러한 이유로 LDA는 고차원 특징 공간에서 좋은 결과를 가져다주지 못할 수 있습니다.

고유 벡터와 고유값의 역할

차원 축소에는 데이터 포인트를 직선으로 구분하는 작업이 포함됩니다. 수학적으로 선형 변환은 고유 벡터와 고유값을 사용하여 분석합니다. 특징이 여러 개인 데이터 세트를 매핑하여 다차원 산점도를 만들었다고 가정해 보겠습니다. 고유 벡터는 산점도 내에서 '방향'을 제공합니다. 고유값은 이 방향 데이터의 중요성을 나타냅니다. 고유값이 높으면 관련 고유 벡터가 더 중요하다는 의미입니다.

차원 축소가 진행되는 동안 고유 벡터는 데이터 세트에서 계산되어 두 개의 분산 행렬로 수집됩니다.

  • .
  • 클래스 간 산점 행렬(각 클래스 내 데이터 분산에 대한 정보)
  • 클래스 내 산점 행렬(클래스가 서로 분산되는 방식)
.
트랙에서 굴러가는 공의 3D 디자인

최신 AI 뉴스 + 인사이트 


주간 Think 뉴스레터에서 AI, 클라우드 등에 대한 전문적으로 선별된 인사이트와 뉴스를 발견하세요. 

선형 판별 분석 구현 준비하기

LDA를 효과적으로 사용하려면 데이터 세트를 미리 준비해야 합니다. LDA를 구현하기 위한 단계와 모범 사례는 다음과 같습니다.

1. 데이터가 정규화되고 중앙에 위치하도록 데이터를 전처리

검색할 선형 판별자의 수를 식별하는 LDA의 n-구성 요소 매개변수를 전달하여 이를 달성할 수 있습니다.

2. 저차원 공간에 적합한 차원 수 선택

검색할 선형 판별자의 수를 식별하는 LDA의 n-구성 요소 매개변수를 전달하여 이를 달성할 수 있습니다.

3. 모델 정규화

정규화는 정확도가 떨어지는 과적합을 방지하기 위해 통계 모델이 학습 데이터에 정확히 맞도록 하는 것이 목표입니다.

4. 교차 검증을 사용하여 모델 성능 평가

실제 클래스 값을 행으로, 예측 클래스 값을 열로 사용하여 오분류 행렬을 그려서 LDA와 같은 분류기를 평가할 수 있습니다. 오분류 행렬을 사용하면 분류기가 두 클래스를 혼동하는지 여부, 즉 한 클래스를 다른 클래스로 잘못 분류하는지를 쉽게 확인할 수 있습니다. 예를 들어, 0에서 9까지의 이미지를 예측하는 10행 및 10열 오분류 행렬을 생각해 보세요. 실제값 y축에 행으로 표시됩니다. 예측은 x축에 열로 표시됩니다. 10행 및 10열 오분류 행렬 예제에서 분류기가 4와 9의 이미지를 몇 번 오분류했는지 확인하려면 4번째 행과 9번째 열을 확인하면 됩니다.

선형 판별 함수의 작동 방식

선형 판별 함수는 특징에 따라 데이터 포인트를 분리하고 서로 다른 클래스 또는 카테고리로 분류하므로 분류 문제에서 의사 결정을 내리는 데 도움이 됩니다. 계산 과정은 다음과 같은 주요 단계로 요약할 수 있습니다.

클래스 간 분산 계산

클래스 간 분산은 클래스 간 분리 가능성, 즉 클래스 평균 간의 거리를 나타냅니다.

클래스 내 분산 계산

클래스 내 분산은 클래스 평균과 표본 사이의 거리입니다.

데이터를 저차원 공간에 투영

이렇게 하면 클래스 간 분산은 최대화하고 클래스 내 분산은 최소화할 수 있습니다. 다음 방정식을 사용하여 두 클래스에 대한 선형 판별 함수를 수학적으로 나타낼 수 있습니다.

δ(x) = x * ( σ2 * (μ01) - 2 * σ2 * (μ0212) + ln(P(w0) / P(w1)))

설명:

  • .
  • δ(x)는 선형 판별 함수를 나타냅니다.
  • x는 입력 데이터 포인트를 나타냅니다.
  • μ0와 μ1은 두 클래스의 평균입니다.
  • σ2는 클래스 내 공통 분산입니다.
  • P(ω0) 및 P(ω1)은 두 클래스의 사전 확률입니다.
.

LDA 적용 예시

대출 승인 예시에 이 방정식을 사용해 보겠습니다. 앞서 이야기한 것처럼, 은행은 대출 신청을 승인할지 거절할지 결정하고 있습니다. 은행은 이 결정을 내리기 위해 신청자의 신용 점수(x)와 연간 소득이라는 두 가지 특징을 사용합니다. 은행은 이전 대출 신청자들 데이터와 각 대출 승인 여부에 대한 데이터를 수집했습니다.

  • .
  • 클래스 ω0은 '대출 거절'을 뜻합니다.
  • 클래스 ω1은 '대출 승인'을 나타냅니다.
.

은행은 선형 판별 함수를 사용하여 각 대출 신청에 대한 점수(δ(x))를 계산할 수 있습니다.

선형 판별 함수의 방정식은 다음과 비슷할 수 있습니다.

δ(x) = x * ( σ2 * (μ01) - 2 * σ2 * (μ0212) + ln(P(w0) / P(w1)))

  • .
  • x는 신청자의 신용 점수와 연간 소득을 나타냅니다.
  • μ0 및 μ1 은 '대출 거절' 및 '대출 승인'이라는 두 클래스에 대한 위의 두 가지 특성의 평균입니다.
  • σ2는 클래스 내 공통 분산입니다.
  • P(ω0)은 '대출 거부'의 사전 확률이고 P(ω1)은 '대출 승인'의 사전 확률입니다.
.

은행은 각 대출 신청에 대해 선형 판별 함수를 계산합니다.

  • .
  • δ(x)가 양수이면 대출 신청이 승인될 가능성이 더 높다는 것을 나타냅니다.
  • δ(x)가 음수이면 대출 신청이 거절될 가능성이 더 높다는 것을 의미합니다.
.

따라서 은행은 대출 승인 프로세스를 자동화하여 인간의 편견이 개입되는 것을 최소화하면서 더 빠르고 일관적인 결정을 내릴 수 있습니다.

선형 판별 분석의 적용

다음은 조직이 LDA를 적용하여 복잡한 문제를 해결하고 더 나은 의사 결정을 내릴 수 있는 일반적인 시나리오입니다.

금융 부문의 신용 위험 평가

금융 기관은 위험을 완화하기 위해 신용 채무 불이행을 파악하고 최소화해야 합니다. LDA는 재무적 요소와 행동 데이터를 통해 신용도가 높은 신청자 중에서 대출 불이행 가능성이 있는 신청자를 가려내는 데 도움을 줄 수 있습니다.

의료 분야의 질병 진단

효과적인 치료를 위해서는 질병을 빠르고 정확하게 진단할 수 있어야 합니다. 병원과 의료진은 방대한 양의 의료 데이터를 해석해야 합니다. LDA는 환자 데이터의 패턴과 관계를 식별하여 복잡한 데이터 세트를 단순화하고 진단 정확도를 개선합니다.

전자 상거래 고객 세분화

전자 상거래 기업은 효과적인 마케팅을 위해 다양한 고객층을 적절히 분류할 수 있어야 합니다. LDA는 고객을 세분화하여 전자 상거래 기업이 다양한 고객 그룹에 맞는 마케팅 전략을 수립하는 데 핵심적인 역할을 합니다. 그 결과 보다 개인화된 쇼핑 경험을 제공하여 고객 충성도와 매출을 높일 수 있습니다.

제조 품질 관리

결함을 최소화하면서 고품질의 제품을 생산하는 것은 근본적인 과제입니다. 기계의 센서 데이터를 LDA와 함께 사용하면 결함과 관련된 패턴을 찾아낼 수 있습니다. 제조업체는 실시간으로 불규칙성을 감지하여 바로 시정할 수 있으므로, 제품 품질을 개선하고 낭비를 줄이는 데 도움이 됩니다.

마케팅 캠페인 최적화

개인화된 콘텐츠로 적절한 잠재고객을 타겟팅하면 광고 예산을 극대화할 수 있지만, 이러한 잠재고객 세그먼트를 파악하기가 쉽지 않습니다. LDA는 고객 속성과 행동을 분류하여 이 프로세스를 단순화하고 광고 캠페인을 더 개인화하는 데 도움을 줍니다. 이러한 접근 방식은 더 높은 투자 수익률(ROI)과 더 나은 고객 경험으로 이어질 수 있습니다.

선형 판별 분석 및 Python

Python을 사용한 선형 판별 분석에 대해 자세히 알아보고 scikit-learn 라이브러리를 활용하려면, IBM watsonx™에서 Python 및 scikit-learn을 사용한 분류 알고리즘 학습하기 튜토리얼을 살펴보세요. 이 튜토리얼은 Python과 scikit-learn(sklearn이라고도 함)을 사용하여 분류 기반 머신 러닝 문제를 해결하는 데 필요한 기본 사항을 안내합니다.

단계별로 구성된 튜토리얼에서는 먼저 Iris 데이터 세트 작업에 필요한 Python 라이브러리를 가져오고, 데이터 전처리를 수행하고, LDA 모델을 생성 및 평가합니다.

<Python code snippet>

 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
import seaborn as sns
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
 

라이브러리가 설치되지 않은 경우 pip install을 사용하여 이 문제를 해결할 수 있습니다.

주요 매개변수, 속성, Sklearn.DistinantAnalysis.LinearIndiantAnalytics를 사용한 Python 구현의 일반적인 예제에 대한 개요을 살펴보려면 이 scikit-learn 도움말도 참조하세요.

Mixture of Experts | 팟캐스트

AI 디코딩: 주간 뉴스 요약

세계적인 수준의 엔지니어, 연구원, 제품 리더 등으로 구성된 패널과 함께 불필요한 AI 잡음을 차단하고 실질적인 AI 최신 소식과 인사이트를 확인해 보세요.

선형 판별 분석을 사용할 때의 장점 및 단점

다양한 분류 문제에 LDA(선형 판별 분석)를 적용하려면 LDA의 장점과 한계를 이해하는 것이 매우 중요합니다. 데이터 과학자와 머신 러닝 실무자가 특정 작업에 대한 적합성을 고려할 때 절충점에 관해 알고 있어야 정보에 근거한 결정을 내리는 데 도움이 됩니다.

주요 이점

  • 계산의 단순성과 효율성 활용: LDA는 간단하면서도 강력한 알고리즘입니다. 비교적 쉽게 이해하고 구현할 수 있어 머신 러닝을 처음 접하는 사람들도 쉽게 접근할 수 있습니다. 또한 효율적인 계산으로 빠른 결과를 보장합니다.
  • 고차원 데이터 관리: LDA는 특징의 수가 학습 샘플의 수보다 큰 경우에 효과적입니다. 따라서 LDA는 텍스트 분석, 이미지 인식, 유전체학처럼 고차원 데이터를 많이 사용하는 애플리케이션에서 유용합니다.
  • 다중 상관성 처리: LDA는 서로 다른 특징 사이에 높은 상관관계가 존재하는 다중 상관성을 처리할 수 있습니다. 정보 무결성을 유지하면서 데이터를 저차원 공간으로 변환합니다.

주요 단점

- 공유된 평균 분포: LDA는 계층 분포가 평균을 공유할 때 문제에 직면합니다. 이 경우 LDA는 두 클래스를 선형적으로 분리하는 새로운 축을 만드는 데 어려움을 겪습니다. 결과적으로 LDA는 통계적 속성이 겹치는 클래스를 효과적으로 구별하지 못할 수 있습니다. 예를 들어, 두 종류의 꽃이 꽃잎의 길이와 너비가 매우 비슷한 상황을 가정해보겠습니다. 이러한 특징만으로는 LDA가 각각의 종을 구분하기 어려울 수 있습니다. 여기에서는 비선형 판별 분석 방법과 같은 대체 기법이 더 유용합니다.

- 레이블이 지정되지 않은 데이터에는 비적합: DA는 지도 학습 알고리즘, 즉 레이블이 지정된 데이터를 분류하거나 분리하는 알고리즘으로 적용됩니다. 반면, 또 다른 차원 축소 기법인 주성분 분석(PCA)은 클래스 레이블을 무시하고 분산을 유지합니다.

관련 솔루션

관련 솔루션

IBM watsonx.ai

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.

AI 서비스 살펴보기
다음 단계 안내

AI 개발 라이프사이클 전반에 걸친 기능에 원스톱으로 액세스하세요. 사용자 친화적인 인터페이스, 워크플로, 업계 표준 API 및 SDK에 대한 액세스를 통해 강력한 AI 솔루션을 제작할 수 있습니다.

watsonx.ai 살펴보기 라이브 데모 예약하기