모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!
이번 포스팅부터는 Dimensionality reduction에 대해 자세히 알아볼 것입니다. 먼저 subset selection에 대해서 알아보도록 합시다.
🚩 1. Attribute Subset Selection 개념
이번 포스팅에서는 subset selection에 대해서 알아볼 텐데, 그러면 이게 대체 무엇인가부터 대략적으로 알고가는 편이 좋을 것 같습니다. 이름에서 느껴질 수 있겠지만, 데이터의 attribute에서 몇가지를 추출해서 그 attribute들로 이뤄진 subset, 즉 부분집합을 찾겠다는 의미입니다. 이때 선택하는 attribute들은 데이터를 가장 잘 설명할 수 있어야 하며, 원래 데이터에서 중복값을 제거하거나 필요없는 값을 제거하는 과정에서 자연스럽게 원본 데이터의 dimensionality가 줄어듭니다.
그 방법에는 아래와 같은 방법들이 있습니다.
▪ Best Subset Selection
▪ Stepwise Selection
- Forward Stepwise Selection
- Backward Stepwise Selection
- Heuristic Search
첫번째로 Best Subset Selection부터 알아보도록 합시다🏃♂️!!
🚩 2. Best Subset Selection
🧩 10개의 attribute를 가지는 데이터가 있다고 생각해봅시다. 이 데이터에 대한 best subset은 다음과 같이 구해집니다.
1. attribute가 하나도 없는 null model 생성 : $μ_0$
2. $k = 1, 2,..., 10$ 에 대해서 각 k에 대해서 $_{10}C_k$ 개의 모델을 생성함
3. k에 대해서 $_{10}C_k$ 개의 모델에서 제일 좋은 성능을 보이는 모델 $μ_k$을 하나씩 선정
4. 3에서 만들어진 $μ_1, μ_2,...,μ_{10}$ 중에서 단 하나의 Best Model을 선택함
요약하자면, 원본 데이터에서 가장 좋은 성능을 보이는 subset을 찾기 위해 가능한 모든 attribute 개수 조합을 모두 생성하고 평가하는 과정입니다. 위에서는 attribute가 10개인 원본 데이터를 사용했지만, 실제로 우리가 다룰 데이터는 훨씬 거대한 데이터일 것이기 때문에 연산과정이 너무 많다는 단점은 더욱 크게 다가옵니다. 따라서 모든 경우를 하나하나 체크하는 방법이 아닌 다른 방법이 생겨났으며, 이 방법을 바로 Stepwise Selection이라고 합니다.
🚩 3. Stepwise Selection
🧩 1절에서 언급했듯이, Stepwise Selection은 세 종류로 나눠집니다. 세가지 방법 모두 기본적인 알고리즘은 비슷하고 모델을 고르는 방향이나 방법만 살짝 다르기 때문에, 첫번째 방법만 확실히 이해하면 나머지 부분들을 이해하는 데에 어려움은 없을 것 같습니다. 먼저 Forward Stepwise Selection에 대해 알아보도록 합시다🙃.
📌 1. Forward Stepwise Selection
▪ Best Subset Selection과 같이 Null Model부터 시작해서 attribute를 하나씩 추가함
▪ 이를 통해 model의 성능을 향상시킴
▪ 기존의 모델은 그대로 가져가면서 새로운 attribute를 추가하는 과정
▪ 이때 attribute를 추가하는 과정은 모델의 성능이 향상될 때 까지만 이뤄짐
▪ 만약 추가한 경우 모델의 성능이 저하된다면, 추가하기 전의 모델이 최종 모델로 결정됨
아래 그림을 보면서 Best Subset Selection과 비교하면 이해에 도움이 될 것이라 생각합니다.
그림에서 사용한 데이터는 지출과 가정에 관련된 몇가지 attribute를 포함하는 데이터입니다.
하지만 Stepwise Selection은 모델의 성능이 향상되지 않으면 더 이상의 선택을 진행하지 않고, 기존에 선택된 attribute들을 고정해둔 상태에서 가져가기 때문에 local optimum에 빠질 수 있습니다. 이에 항상 제일 좋은 모델을 보장할 수는 없지만, Best Subset Selection에 비해 연산량이 확연히 줄어들기 때문에 이 방법을 사용하는 경우가 많습니다.
🧩 이제 두번째 방법인 Backward Stepwise Selection에 대해 알아보도록 합시다.
📌 2. Backward Stepwise Selection
▪ 앞선 방법들과 달리 Null Model이 아닌 모든 attribute를 가지고 있는 Full Model부터 시작
▪ Full Model에서 가장 영향을 덜 주는 attribute부터 하나씩 제거하면서 모델을 업데이트함
▪ 이 경우 역시 모델의 성능이 향상될 때까지만 업데이트가 진행됨
▪ Local Optimum에 빠질 수 있음
Forward Stepwise Selection과 Backward Stepwise Selection을 비교해보면 알겠지만, 모델을 업데이트할때 attribute를 추가하느냐, 삭제하느냐의 방향성의 차이일 뿐입니다. 연산량이 적다는 장점을 가지지만, Local Optimum에 빠질 수 있다는, 어떨게 보면 치명적인 단점을 가지고 있기 때문에 이를 보완하기 위한 방법이 필요합니다. 그래서 등장한 방법이 바로 Heuristic Search 입니다.
📌 3. Heuristic Search
▪ Best combined attribute selection and elimination
▪ Forward와 Backward를 반복하면서 모델을 업데이트
▪ Local Optimum 탈출
🧩 이번 포스팅에서는 dimensionality reduction 중에서도 feature extraction 방법인 Subset Selection에 대해 알아보았습니다. 이 부분을 공부하면서 하나의 방법이 나오고 그 방법을 보완할 수 있는 방법들이 계속해서 생겨난다는 느낌을 받았습니다. 어떠한 개념을 공부할 때 그 방법에 대한 수식이나 이론을 아는 것도 중요하지만, 그 개념과 관련된 하나의 스토리를 아는 것이 장기기억에는 더 도움이 될 거라고 생각합니다. 이 블로그를 보는 대부분의 분들이 데이터 마이닝에 대한 기초를 알기 위해서라고 생각하는데, 이렇게 스토리텔링에 집중해서 공부하면 많은 개념을 좀 더 효율적으로 이해할 수 있을 것 같습니다😃😃.
🧩 다음 포스팅에서는 PCA에 대해서 알아보도록 합시다🏃♂️🏃♂️.
💡위 포스팅은 한국외국어대학교 바이오메디컬공학부 고윤희 교수님의 [생명정보학을 위한 데이터마이닝] 강의를 바탕으로 합니다.
'📌 데이터마이닝 > 데이터 전처리' 카테고리의 다른 글
🚩 데이터마이닝 17. Reduction - 주성분분석 구현 (0) | 2023.02.20 |
---|---|
🚩 데이터마이닝 16. Reduction - 주성분분석(PCA) (0) | 2023.02.20 |
🚩 데이터마이닝 14. Dimensionality Reduction (0) | 2023.02.19 |
🚩 데이터마이닝 13. Reduction - Nonparametric (0) | 2023.02.17 |
🚩 데이터마이닝 12. Reduction - Nonlinear Regression (0) | 2023.02.17 |