2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

강의자료/머신러닝

5.2 차원축소

원당컴1 2024. 8. 1. 08:55

머신러닝 목차 - https://wondangcom.tistory.com/2769

 

머신러닝 목차

머신러닝1. 머신러닝 소개1.1 인공지능이란(혼공머신) - 4차산업 혁명 시대에 꼭 필요한 인공지능에 대해 알아 보자.링크 :  https://wondangcom.tistory.com/2771(2024.3.7) 1.1 인공지능이란목표 4차 산업 혁

wondangcom.tistory.com

 

목표

  • 차원축소를 하는 이유를 이해
  • 차원축소를 하는 방법에 대한 이해

 

차원축소란

차원축소란 고차원의 데이터(특성이 아주 많은 데이터)를 저차원의 데이터로 변환하는 방법을 말한다.

일반적으로 특성선택(Feature selection)과 특성추출(Feature extraction) 두가지가 있다.

이론적으로 변수의 수가 증가할 수록 모델의 성능이 향상된다. 하지만 실제 상황에서는 변수의 수가 일정 수준 이상 증가하면 모델의 성능이 저하 되는 경향이 있는데 이것을 차원의 저주라고 부른다.

 

차원의 저주란

  • 데이터 학습을 위해 차원이 증가하면서 학습데이터 수가 차원의 수보다 적어져 성능이 저하되는 현상
  • 차원이 증가할수록 개별 차원 학습할 데이터 수가 적어지는 현상 발생

차원이 증가함에 따라 모델의 성능이 좋아지는 현상으로 변수가 증가한다고 무조건 발생하는 것이 아니라 학습데이터 수보다 변수의 수가 많아지면 발생한다. ( 학습데이터 200, 변수는 2000)

위의 그림에서 5개의 데이터가 변수가 1개인 1차원이라면 밀집해 있지만 마지막 변수가 3개인 3차원이라면 듬성듬성 공간이 비어 있음을 알 수 있다.

이렇게 비어 있는 공간이 문제가 생기는 이유는 빈 공간은 정보가 없으니 성능이 저하 될 수 밖에 없다.

(출처 : https://datapedia.tistory.com/15 )

해결 방법

  • 차원의 저주를 해결하기 위해서는 차원을 줄이거나 데이터를 많이 획득하는 방법이 있다. 
  • 데이터를 획득하기 위해서는 훈련 샘플의 밀도가 충분히 높아질 때까지 데이터를 모으는 방법이 있는데 차원의 수가 커짐에 따라 데이터는 기하급수적으로 늘어난다.
  • 따라서 PCA 같은 차원축소 기법을 이용하여 차원의 저주 문제를 해결한다.

 

차원축소를 하는 이유

  1. 고차원 데이터의 복잡성 감소:
    • 고차원 데이터는 특성이 많아질수록 복잡해지고, 모델 학습에 더 많은 데이터가 필요합니다. 차원 축소를 통해 데이터를 더 간결하게 표현하여 모델의 복잡성을 줄일 수 있습니다.
  2. 과적합 방지:
    • 고차원 데이터에서는 모델이 노이즈와 이상치에 민감하게 반응할 수 있습니다. 차원 축소를 통해 노이즈를 제거하고 모델의 일반화 성능을 향상시킬 수 있습니다.
  3. 시각화와 해석성 향상:
    • 저차원으로 데이터를 표현하면 시각화가 용이해집니다. 데이터의 패턴을 더 잘 이해하고 해석할 수 있습니다.
  4. 계산 비용 감소:
    • 고차원 데이터에서 모델 학습과 예측에 필요한 계산 비용이 높습니다. 차원 축소를 통해 계산 비용을 줄일 수 있습니다.

 

차원축소 방법

차원축소 방법은 크게 다음과 같이 두가지 방법이 있다.

  1. 특성 선택 (Feature Selection):
    • 목적: 특성 선택은 기존 특성 중에서 가장 중요한 특성만 선택하여 데이터의 차원을 줄이는 방법입니다.
    • 동작 방식:
      • 통계적 기법 (예: 상관 관계, 분산 등)을 사용하여 중요한 특성을 선택합니다.
      • 임계값을 설정하여 중요도가 낮은 특성을 제거합니다.
    • 장점: 간단하고 해석이 용이하며, 모델 성능을 향상시킬 수 있습니다.
    • 종류
      • 일변량통계(Univariate Statistics)-카이제복 검정통계법,분산분석F검정통계값등을 사용한 특성 식별
      • 모델기반 선택(Model-Based Selection)-랜덤포레스트,그래디언부스팅과 같은 모델 선택
      • 반복적 선택(Recursive Feature Elimination)- 중요하지 않은 특성을 반복적으로 제거
  2. 특성 추출 (Feature Extraction):
    • 목적: 특성 추출은 기존 특성을 새로운 특성으로 변환하여 데이터의 차원을 줄이는 방법입니다.
    • 동작 방식:
      • 주성분 분석 (PCA)과 같은 기법을 사용하여 기존 특성을 선형 또는 비선형적으로 변환합니다.
      • 새로운 특성은 기존 특성의 조합으로 생성됩니다.
    • 장점: 데이터의 변동성을 잘 보존하면서 차원을 축소할 수 있습니다.
    • 종류
      • 이미지 특징 추출 - 이미지에서 라인,코너,특징점등과 같은 특징 추출(엣지추출,코너추출 등)
      • 텍스트 특징 추출 - 텍스트에서 단어,문장,문서와 같은 특징 추출(Word2Vec,Doc2Vec 등)
      • 차원축소기법 - 데이터 차원을 줄이는 기법(주성분분석,t-SNE 등)

 

 

주성분분석이란(Principal Component Analysis.PCA)

주성분 분석은 여러 개의 독립변수들을 잘 설명해 줄 수 있는 주된 성분을 추출하는 기법으로 가장 인기 있는 차원 축소 알고리즘이다.

먼저 데이터에 가장 가까운 초 평면을 정의한 다음 데이터를 이 평면에 투영시킨다.

출처)핸즈온머신러닝

오른쪽 2차원 데이터를 세개의 1차원 초평면에 투영시킨 모습(왼쪽)

C1의 초평면에 투영시킨 모습이 왼쪽의 가장 위의 그림이다. 이때 분산을 최대로 보존하는 반면 아래쪽 데이터는 분산을 매우 적게 유지하고 있다.

이렇게 분산이 최대로 보존되는 축을 선택하는 것이 정보가 가장 적게 손실되므로 이 축이 가장 합리적이다.

 

이러한 주성분 분석은 고차원의 데이터를 저차원으로 환원시키는데 사용되며 서로 연관 가능성이 있는 고차원 공간의 표본들을 선형 연관성이 없는 저차원공간(주성분)의 표본으로 변환하기 위해 직교 변환을 활용한다.

예를 들어 키와 체중이라는 2개의 변수를 주성분 분석을 통해 1개의 변수로 통합할 수 있다.

 

주성분이란

PCA는 훈련 세트에서 분산이 최대인 축이다.

위의 그림에서 2D에서는 C1의 축이 된다.

고차원 데이터셋이라면 PCA는 훈련세트에서 분산이 최대인 축을 찾고, 남은 분산을 최대한 보존하는 두번째 축을 찾는 형식으로 n번째 축까지 찾게 된다.

그렇다면 훈련 세트의 주성분을 어떻게 찾을까?

특잇값 분해(Singular Value Decomposition.SVD)라는 표준행렬 분해 기술로 분해할 수 있다.

 

 

 

참고)

혼자공부하는 머신러닝(한빛미디어)

핸즈온머신러닝(한빛미디어)

https://bommbom.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%B0%A8%EC%9B%90-%EC%B6%95%EC%86%8CDimensionality-Reduction-%EC%9D%B4%EC%9C%A0-%EB%B0%8F-%EB%B0%A9%EB%B2%95

 

[머신러닝] 차원 축소(Dimensionality Reduction) 이유 및 방법

이번 포스팅에서는 차원 축소(Dimensionality Reduction)에 대해 알아보도록 하겠습니다. 차원 축소는 무엇이고 왜 차원 축소를 해야하는지, 그리고 그 효과와 차원 축소 방법까지 알아보도록 하겠습니

bommbom.tistory.com

 

인천 검단 원당컴퓨터학원

#정보올림피아드

#검단신도시코딩

#원당동코딩

#마전동코딩

#왕길동코딩

#당하동코딩

#아라동코딩

#풍무동코딩

#불로동코딩

#검단동코딩

#검암동코딩

 

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

'강의자료 > 머신러닝' 카테고리의 다른 글

6. 딥러닝이란  (6) 2024.08.09
keras 2.x -> keras 3.x 으로 변경 되면서 수정 되는 사항  (3) 2024.08.08
5.1 군집분석  (5) 2024.07.26
4.4 앙상블 학습과 모델  (4) 2024.07.19
4.3 결정트리  (4) 2024.07.12