1. 클러스터링(Clustering)
비슷한 특성을 가진 데이터 포인트들을 그룹으로 묶는 과정이다. 클러스터링을 통해 데이터 내 숨겨진 패턴이나 그룹을 발견할 수 있다.
온라인 쇼핑몰은 클러스터링을 활용하여 고객을 여러 그룹으로 나눌 수 있다. 예를 들어, 구매 이력, 방문 빈도, 구매 선호도 등 다양한 기준을 바탕으로 고객을 세분화하여 각 그룹에 맞는 마케팅 전략을 수립할 수 있다. 이 과정에서는 고객의 구매 행동에 기반하여 사전에 정의된 카테고리 없이도 고객들을 여러 그룹으로 분류하게 된다.
2. 차원 축소(Dimensionality Reduction)
PCA(주성분 분석)는 가장 널리 사용되는 차원 축소 기법 중 하나로, 데이터의 분산을 최대한 보존하면서 차원을 축소한다. 예를 들어, 수천 개의 픽셀로 이루어진 이미지 데이터에서 중요한 특성을 추출하여 이미지를 분류하는 데 사용할 수 있다.
3. 연관 규칙 학습(Association Rule Learning)
장바구니 분석은 연관 규칙 학습의 한 예로, 소매업에서 고객이 특정 상품을 구매할 때 다른 상품도 함께 구매할 가능성을 분석한다. 예를 들어, 사람들이 빵을 구매할 때 우유를 함께 구매하는 경향이 있다는 규칙을 찾아낼 수 있다.
4. 이상치 탐지(Anomaly Detection)
신용카드 사기 탐지 시스템은 이상치 탐지의 한 예로, 정상적인 거래 패턴과 크게 다른 거래를 식별하여 사기 의심 거래를 탐지한다.
5. 자기 조직화 맵(SOMs, Self-Organizing Maps)
시장 세분화에서 SOM을 사용하여 고객을 비슷한 구매 패턴을 가진 그룹으로 시각적으로 분류할 수 있다. 이를 통해 기업은 타겟 마케팅 전략을 개발할 수 있다.
의료 분야에서 환자의 임상 데이터(나이, 성별, 검사 결과 등)를 사용하여 특정 질병의 유무를 예측하는 모델을 구축할 수 있다. 이 경우, 임상 데이터는 입력 변수(특징)가 되고, 질병의 유무는 예측하려는 대상(레이블)이 된다.
지도 학습의 워크 플로우
1. sckit-learn 라이브러리에서 모델 클래스를 임포트 한다. 여기서 'Model'은 사용할 특정 모델의 이름이다. (예를 들어, 'LinearRegression', 'DecisionTreeClassfier' 등)
from sklearn.module import Model
2. 모델 인스턴스를 생성한다. 이때 'model'은 생성된 모델의 인스턴스를 참조하는 변수다.
model = Model()
3. 모델을 훈련시키는 과정이다. 'fit' 메서드를 사용해, 훈련 데이터셋(X)과 해당 레이블(y)을 모델에 전달한다.
model.fit(X, y)
4. 훈련된 모델을 사용해 새로운 데이터 셋(X_new)에 대한 예측을 수행한다. 'predict' 메서드는 X_new에 대한 예측된 레이블을 반환한다.
model.predict(X_new)
1. 분류(Classification)
의료 진단에서는 환자의 검사 결과를 바탕으로 특정 질병을 가지고 있는지 여부(이진 분류)를 결정하거나, 여러 유형의 암 중 어떤 것에 해당하는지(다중 분류)를 예측할 수 있다.
다음 열들 중에서 이진 분류의 대상 변수로 사용될 수 있는 열은?
- churn열은 0과 1의 value를 가지고 있어, 이진 분류의 대상변수로 사용될 수 있다.
2. 회귀(Regression)
부동산 시장에서는 주택의 위치, 크기, 방의 개수, 건축 연도 등의 정보(입력 변수)를 사용하여 주택 가격(출력 변수)을 예측할 수 있다. 이때 사용되는 모델은 주택 가격에 영향을 미치는 요소들 간의 복잡한 관계를 학습하여, 새로운 주택에 대한 가격을 예측한다.
머신러닝에서 데이터와 모델을 다룰 때 일관된 명명 규칙을 사용해야 한다. 이는 분석의 명확성을 보장하고, 다른 연구자나 개발자와의 소통을 용이하게 한다.
특징(Feature):
목표 변수(Target Variable):
지도 학습을 효과적으로 수행하기 위해서는 올바른 데이터의 준비 과정이 필요하다.
모델 학습 전 데이터 셋에는 결측값이 없어야 한다. 결측값은 제거하거나, 통계적 방법이나 예측 모델을 사용하여 채워야 한다.
대부분의 머신러닝 모델은 숫자 형식의 데이터를 필요로 한다. 따라서, 범주형 데이터는 숫자로 인코딩 되어야 하며, 모든 데이터는 적절히 스케일링 되어야 한다.
pandas의 DataFrame이나 Series, NumPy 배열과 같은 형식으로 데이터를 저장해야 한다. 이는 데이터 핸들링과 모델링 과정을 용이하게 한다.
데이터의 구조, 분포, 관계 등을 이해하기 위해 탐색적 데이터 분석을 수행해야 한다. 이 과정에서 pandas의 기술 통계 메서드, 데이터 시각화(히스토그램, 산점도 등)를 활용하여 데이터의 특성과 패턴을 파악할 수 있다.