본문 바로가기

Study/Data Science9

[Data Science] Feature 선택 및 중요도 평가 모델의 성능은 사용되는 Feature(특성)의 품질과 선택에 크게 좌우됩니다.Feature 선택과 중요도 평가는 데이터를 분석하고 머신러닝 모델을 개발할 때, 효율적인 학습과 신뢰할 수 있는 결과를 얻기 위한 핵심 과정입니다. 본 포스팅에서는 Feature 중요도를 계산하는 주요 방법 4가지에 대해 알아보겠습니다.Feature ImportanceDrop-Column ImportancePermutation ImportanceSHAP(SHapley Additive exPlanations)데이터 셋데이터 셋 : Adult Census Income Adult Census IncomePredict whether income exceeds $50K/yr based on census datawww.kaggle.com.. 2024. 12. 8.
[Data Science] Feature(차원) 축소 - t-SNE(t-Distributed Stochastic Neighbor Embedding) 데이터 과학에서 차원 축소는 고차원 데이터를 시각화하거나 모델 성능을 최적화하는 데 매우 중요한 기술입니다. 이번 포스팅에서는 t-SNE(t-Distributed Stochastic Neighbor Embedding)에 대해 알아보고, Python을 사용해 데이터를 시각화하는 방법을 알아보겠습니다.t-SNE의 정의 t-SNE는 차원 축소와 데이터 시각화를 위해 고안된 비선형 차원 축소 기법입니다. 고차원 공간에서 가까운 것은 저차원에서도 가깝게, 고차원에서 먼 것은 저차원에서도 멀게 유지함즉, 고차원 데이터에서 데이터 포인트 간의 관계를 유지하면서 저차원으로 변환한다는 것비선형 차원 축소 기법으로, 비선형 변환을 사용하여 복잡한 데이터 구조를 효과적으로 표현데이터 간의 유사성(Similarity)에 중점.. 2024. 12. 7.
[Data Science] Feature(차원) 축소 - 주성분 분석(PCA, Principal Component Analysis) 데이터 분석에서 고차원 데이터는 때때로 분석을 복잡하게 만들고, 모델 성능을 저하시킬 수 있습니다. 이를 해결하기 위한 강력한 도구 중 하나가 바로 주성분 분석(PCA)입니다. 이번 포스팅에서는 PCA의 개념과 필요성을 이해하고, Python을 사용한 구현 방법을 알아보겠습니다.주성분 분석(PCA, Principal Component Analysis)이란?PCA란 고차원 데이터를 저차원으로 축소하면서 데이터의 분산(정보)를 최대한 보존하는 선형 차원 축소 기법입니다.데이터를 새로운 좌표계로 변환하여 데이터의 주요 패턴을 찾고, 불필요한 차원을 제거하는데 사용합니다.예) 3차원의 데이터를 2차원의 주성분 공간으로 사영(projection)시키면 원래 데이터가 가지고 있는 특징의 대부분이 보존PCA가 필요한.. 2024. 12. 7.
[Data Science] Feature Selection - 유전 알고리즘(Genetic Algorithm, GA) 모델 성능을 향상시키기 위해서는 특징 선택(Feature Selection)이라는 과정이 반드시 필요합니다.굉장히 중요한 단계인데요, 특징 선택은 여러가지 방법론을 활용할 수 있습니다. 이번 포스팅에서는 그 중에서도 굉장히 효과가 좋다고 알려진, "유전 알고리즘"에 대해 알아보겠습니다!유전 알고리즘의 이점 유전 알고리즘은 기존의 전진 선택, 후진 소거, 단계적 선택과 같은 휴리스틱 기법들 보다 조금 더 많은 시간을 들이지만, 최적 변수 집합을 찾을 가능성이 더 높습니다!유전 알고리즘(Genetic Algorithm, GA)이란?유전 알고리즘은 진화론적 개념(자연 선택 및 유전)에서 영감을 받아 최적화를 수행하는 메타 휴리스틱(Meta-Heuristic) 알고리즘 입니다.메타 휴리스틱이란, 닫힌 해가 존재.. 2024. 12. 7.
[Data Science] 결측 데이터 처리 방법 결측치가 있으면 모델 성능에 안좋은 영향을 줄 수 있다는 것, 다들 아시죠?그렇다면 당연히 이 결측치를 그대로 둘 수 없는데요,데이터를 다루는 우리는 이러한 결측치들을 상황에 맞게 잘 처리할 수 있어야 할 것입니다.  이번 포스팅에서는 결측 데이터를 처리하는 방법에 대해 알아보겠습니다.캐글의 학생 성적 예측 데이터셋을 이용해서 실제 코드와 함께 결측치 처리 실습도 진행해보겠습니다.결측 데이터 처리 방법결측치 처리 방법은 수치형 변수일 때와 범주형 변수일 때 다른데요, 각각의 방식은 아래와 같습니다.방법수치형 변수범주형 변수삭제행 또는 열 삭제 → 유효한 데이터가 삭제될 위험 존재단순대체평균, 중앙값, 최빈값최빈값고급대체KNN, 회귀모델KNN(하기 전 범주를 라벨인코딩으로 수치화)보간선형 보간법(inter.. 2024. 12. 6.
[Data Science] 이상치(Outlier) 탐지 방법 데이터를 분석하다보면 가끔 정상적인 범위에서 많이 벗어난 이상치를 발견하게 됩니다.그런 데이터들은 분석 결과를 왜곡시킬 수 있기 때문에 반드시 처리를 해줘야 하는데요,문제는 사람이 모든 데이터를 일일이 살펴보면서 이상치를 걸러낼 수 없다는 것이죠.. 그렇기에 데이터를 다루는 사람이라면 반드시 이상치 탐지 방법을 알고 있어야 합니다. 여기에는 어떤 것들이 있으며, 어떤 방식으로 이상치를 찾아내는지 한번 살펴보죠!Z-Score데이터의 분포가 정규 분포를 이룰 때, 데이터의 표준 편차를 이용해 이상치를 탐지하는 방법 Z-Score는 해당 데이터가 평균으로부터 얼마나 표준편차 만큼 벗어나 있는지를 의미주로 Z-Score에서 3보다 크고 -3보다 작은 값을 이상치로 판별IQR(Interquartile Range).. 2024. 12. 5.
[Data Science] 크롤링 라이브러리 (파이썬) 데이터 수집을 할 때 사용하는 기법 중 대표적인 것으로 "크롤링"이 있죠!그리고 이 크롤링은 일반적으로 파이썬으로 수행하게 되는데요,이는 파이썬에 크롤링을 돕는 라이브러리들이 잘 구축되어 있기 때문입니다! 그렇다면 파이썬의 크롤링 라이브러리에는 어떤 것들이 있고, 어떤 역할을 하는지 살펴보겠습니다!📌 크롤링 라이브러리라이브러리설명Requests- 정적 수집도구- 단순한 형태의 문법, 인코딩 확인, 헤더 파악, 텍스트 전환이 용이하고, 딕셔너리 형태로 데이터 전송Urllib- 정적 수집도구- 데이터를 바이너리 형태로 인코딩하여 데이터 전송Selenium- 동적 수집도구- 웹 브라우저 드라이버 설치 필요, 동적인 여러가지 상호작용으로 데이터 수집BeautifulSoup- 본문 파싱을 위한 도구- HTML .. 2024. 12. 5.
[Data Science] 데이터의 편향 완화 전략 : 데이터 균형화 (오버샘플링 & 언더샘플링) 일반적으로 우리는 데이터를 수집해야하는 상황보다 다른 기관에서 데이터를 받아 분석하는 경우가 더 많습니다.그러나 그렇게 받은 데이터에 클래스 불균형이 존재한다면? 편향이 발생하게 되겠죠.. 그래서 우리는 이러한 클래스 불균형을 해소할 수 있는 방법을 알고 있어야합니다.대표적으로는 이렇게 두 가지가 있습니다.오버 샘플링언더 샘플링많이 들어보셨죠?이것들이 각각 어떤 것인지, 단점은 무엇인지 알아보고,각 샘플링에는 대표적으로 어떤 방법들이 있는지 한번 알아보도록 하죠!📌 오버 샘플링 오버 샘플링이란, 소수 클래스의 데이터를 늘리는 것을 말합니다.데이터가 상대적으로 적은 클래스를 증폭시켜 클래스 불균형을 해소할 수 있지만,노이즈가 증폭될 가능성이 있다는 단점이 있습니다. 이제 대표적인 오버 샘플링 방법들을 살.. 2024. 12. 5.