[BDA 11기] 데이터 분석 모델링(ML1) - 16주차
·
BDA-11th
Ⅰ. 군집화 후속 분석군집k-means 이용k 값은 3~6개 사이에서 elbow method로 결정너무 크며 군집 후 사후 분석이 어렵기 떄문에 적절하게 찾아야 함. 사후 분석군집 결과를 label(y)로 간주각 군집의 비즈니스 특징 도출 (시각화를 이용하려 특징 도출 → sns.pairplot각 고객 군에 대한 마케팅 전략 수립 Ⅱ. 군집화 후속분석 - 고객 세분화1. 환경준비(1) 라이브러리 로딩import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.cluster import KMeansfrom sklearn.preprocessing import MinMaxScalerfrom..
[BDA 11기] 데이터 분석 모델링(ML1) - 15주차
·
BDA-11th
Ⅰ. 군집화: k-means, DBSCAN1. k-means개념K개의 평균으로부터 거리를 계산하고 가까운 평균으로 묶어 Cluster를 나누는 방식k-means 절차클러스터의 개수 지정(k)그룹의 중심 점(mean)이 무작위로 선택됨임의로 선택된 중심 점과 각 점 간의 거리를 계산해서 가장 가까운 중심점의 그룹으로 선택됨선택된 그룹의 점들을 기준으로 중심점을 계산해서 찾고,3~4번을 반복 → 중심점의 변화가 거의 없을 때까지 진행k-meams 문법k-meas 함수 사용거리 기반 알고리즘이어서 Scaling 필수k: n_clustersn_init : 초기값 무작위 지정, 지정된 회수 만큼 수행학습할 때는 x만 입력예측: 지정한 클러스터의 개수 내에서 구분# k means 학습model = KMeans(n_..
[BDA 11기] 데이터 분석 모델링(ML1) - 14주차
·
BDA-11th
Ⅰ. 차원축소 t-SNE1. PCA의 단점PCA는 분산이 가장 큰 방향을 기준으로 새로운 축을 찾는 선형 축소 방법, 계산이 빠르고 해석이 직관적But, 선형 구조만 표현 가능함저차원에서 특징을 잘 담아내지 못하는 경우가 발생 2. t-SNE (t-distributed Stochastic Neighbor Embedding)원본(고차원 공간)에서 서로 가까운 데이터들끼리의 관계를 기반으로 유사도 맵을 생성차원을 축소한 저차원 공강에서도 원본에서 가까웠던 데이터들이 여전히 가깝게 위치하도록 배치⇒ 즉, 원본 데이터의 유사도 구조를 저차원에서도 유지하려는 차원 축소 방식!t-SNE 원리원본 데이터에서 유클리드 거리 계산 → 어떤 점들이 서로 가까운지 파악거리 정보를 확률적 유사도로 변환 → 가까운 점일수록 높..
[BDA 11기] 데이터 분석 모델링(ML1) - 13주차
·
BDA-11th
🧊 차원축소 (Dimensionality Reduction)1. 패턴을 찾는 방법각 점은 하나의 관측치(sample)전체 분포가 가지는 패턴을 찾는 것이 핵심2. 비지도 학습 특징정답 레이블(y) 없이 입력 변수 x만 사용 → x 안에서 패턴 인식 문제 데이터 내부 구조, 분포, 관계를 스스로 학습단독으로 끝내기보다는 후속 분석을 위한 전처리 단계로 사용하는 경우가 많음 (1) 비지도 학습의 주요 활용 방식차원축소 : 고차원 데이터를 축소하여 새로운 feature를 생성 → 시각화, 지도학습 연계클러스터링 : 고객별 군집 생성 → 고객 세그먼트 분석, 패턴 그룹화이상탐지 : 정상 데이터 범위 지정 → 범위 밖 데이터를 이상치로 판정(2) 차원(dimension)차원의 수 = 변수(feature)의 수 ..
[BDA 11기] 데이터 분석 모델링(ML1) - 12주차
·
BDA-11th
🍋 앙상블 알고리즘 - Boosting1. Boosting여러 트리 모델을 순차적으로 결합해서 오차를 줄이는 모델을 구성하는 방식모델(tree)의 개수에 따라 예측 결과가 달라짐 (성능이 달라짐)이전 모델이 잘못 예측한 데이터의 오차를 다음 모델에서 보완하도록 학습병렬이 아닌 순차 학습 구조 → 학습 시간이 상대적으로 김 이전 모델이 틀린 부분에 더 집중해서 다음 모델을 학습하자! 2. Boosting - Gradient Boost첫 번째 모델 : 단순 예측 수행오차 계산 : 실제값 - 예측값두 번째 모델 : 이전 모델의 오차를 예측하도록 학습이 과정을 반복하면서 각 모델이 이전 모델의 부족한 부분을 보완최종 예측값 : 모든 모델의 예측을 누적합으로 계산 3. Gradient Boost 수식 구하기Fm..
[BDA 11기] 데이터 분석 모델링(ML1) - 11주차
·
BDA-11th
🍀 앙상블 알고리즘 - Bagging앙상블 알고리즘여러 개의 머신러닝 모델을 조합해 하나의 강력한 예측 모델을 만드는 기법각 모델이 가진 편향(Bias)와 분산(Variance)을 줄이고 일반화 성능을 개선종류Bagging: 여러 개의 동일한 모델(혹은 learner)를 서로 다른 데이터 샘플로 병렬 학습 후 예측 결과를 평균/투표로 결합Boosting: 모델을 순차적으로 학습. 이전 모델이 틀린 예측에 가중치를 주어 다음 모델이 보완하도록 학습하며, 최종 예측은 모두 합쳐서 결정Stacking: 여러 다양한 베이스 모델의 예측을 모아, 또 다른 메타 모델(meta learner)이 학습해 최종 예측을 수행 Bagging vs. BoostingBagging병렬 구조(parallel)동일한 모델을 사용..
[BDA 11기] 데이터 분석 모델링(ML1) - 10주차 모델링 실습
·
BDA-11th
(모델링 실습 코드만 정리한 글임..!)🌀 데이터 준비(1) 데이터 불러오기path = 'https://---.csv'data = pd.read_csv(path)data = data.sample(5000, random_state = 2022)csv 파일을 pandas DataFrame 형태로 불러옴전체 데이터 중 5000개 샘플만 랜덤 추출(2) 데이터 정리drop_cols = ['id']data.drop(drop_cols, axis = 1, inplace = True )단순 식별자인 'id'를 제거 (3) 데이터 분할 1: x,y 나누기target = 'CHURN'x = data.drop(target, axis = 1)y = data.loc[:, target]타켓 변수와 설명 변수 분리(NA는 없어서..
[BDA 11기] 데이터 분석 모델링(ML1) - 10주차
·
BDA-11th
🌀 SVM1. SVM (Support Vector Machine)두 클래스가 존재한다고 가정 e.g. 0(파란색 클래스)와 1(주황색 클래스)SVM의 핵심 아이디어: 두 클래스 사이에 가장 넓은 도로를 내는 것즉, 두 클래스 사이의 가장 넓은 도로를 찾고 그 가운데 중앙선을 모델이라고 함. 분류와 회귀에서 모두 사용 가능중요한 용어 정리결정 경계(Decision Boundary)클래스를 구분하는 경계선, 도로의 중앙선SVM에서 결정 경계가 바로 모델!수학적으로는 초평면(hyper plane)이라고 부름 백터(Vector)모든 데이터 포인트각각의 관측치(샘플)를 의미서포트 벡터(Support Vector)결정 경계와 가장 가까운 데이터 포인트도로의 가장자리에 놓인 점들특징전체 데이터 중 일부만 모델을 결..
[BDA 11기] 데이터 분석 모델링(ML1) - 9주차
·
BDA-11th
🧩 성능2 - 최적화(튜닝)Hyperparameter Tuning이란알고리즘을 이용하여 모델링할 때, 모델 구조나 학습 방식에 영향을 주는 외부 파라미터학습 데이터로부터 자동 학습되지 않고 사전에 사람이 설정하이터 파라미터 튜닝을 통해 성능이 달라질 수 있음튜닝하는 방법에는 정답 X e.g. 지식과 경험 + 다양한 시도 필요대표적인 탐색 e.g. Grid Search, Random Search※ 모델 파라미터 vs 하이퍼 파라미터파라미터: 학습을 통해 자동으로 결정됨 (ex. 가중치)하이퍼 파라미터: 학습 전에 사람이 설정 (ex. k, depth 등)Random Search값의 범위를 지정한 후, 지정한 횟수('n_iter')만큼 무작위로 시도하여 그 중 가장 성능이 좋은 하이퍼 파라미터를 선택하는 ..
[BDA 11기] 데이터 분석 모델링(ML1) - 8주차
·
BDA-11th
📈 성능 - 교차검증성능의 목표와 향상1. 모델링의 목표모집단(population) : 우리가 알고 싶은 모든 데이터의 집합. 과거의 데이터, 미래의 데이터도 모집단의 부분집합에 포함. 우리가 가지고 있는 모든 데이터셋은 모집단의 부분집합임 = Training Set 역시 모집단의 부분집합.따라서 모델링의 목표는 부분집합을 학습해서 모집단(혹은 모집답의 다른 부분집합)을 적절히 예측하는. 즉 적절한 성능(일반화 성능)을 확보하는 것.2. 성능 향상을 위한 노력[일반화 성능]모델이 처음 보는 새로운 데이터에서도 얼마나 잘 예측하는지 나타내는 객관적인 성능 지표.단순히 훈련 데이터에서 높은 점수를 내는 것(=과적합)과는 구별해야 함! [성능을 높이는 방법]*방법 1. 성능의 평균으로 평가 *하나의 훈련/검..