지식나누기 75

Pipeline(파이프 라인)의 개념과 활용하기

1. 파이프라인 개념 Pipeline은 데이터 전처리에서 학습까지의 여러 과정을 하나로 연결하는 것입니다. 데이터 전 처리 및 분류의 모든 단계를 포함하는 단일 개체를 만들 수 있습니다. 파이프라인을 사용할 때와 사용하지 않았을 때를 코딩해서 비교해서 확인하고자 합니다. 필요한 모듈을 import 하고, iris 데이터 셑을 불러옵니다. from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.metrics import accuracy_score, class..

서포트 벡터 머신(SVM)을 활용한 분류모형

Support Vector Machine(SVM)은 머신러닝 분야에서 가장 인기가 높은 데이터 분류 방법으로 알려져 있다. SVM은 두 데이터 그룹을 나누는 평면 중에서 폭이 가장 넗은 것을 찾는 방법으로 분리평면을 "결정 경계"라고 합니다. 결정경계와 서포트 벡터 사이의 거리를 magrin이라고 하고, Hard margin과 Soft Margin이 있습니다. 하드 마진(Hard margin) : 어떠한 데이터도 마진내에 들어오지 않는데, 엄격하게 지켜져야 하는 마진을 하드마진이라 부름 소프트(Soft margin) : 분리 평면을 찾을 수 있도록 일부 데이터가 마진 내에 들어오도록 허용하는 것 임 아래의 그림은 데이터A와 데이터B는 소프트 마진에 관한 그림입니다. 마진은 점이 닿기 전까지의 선형 분류기..

Random Forest와 XGBoost(eXtreme Gradient Boosting)

Random Forest는 의사결정나무 기반한 ensemble(앙상블) 머신러닝 모델입니다. 앙상블은 여러 Base모델들의 예측을 다수결 법칙또는 평균을 이용해 통합하여 예측 정확성을 향상시키는 방법입니다. 랜던포레스트 배경(양상블) 의사결정나무를 Base모델로 사용하고 있고 다수의 의사결정나무모델을 위한 예측을 종합하는 앙상블 방법이고 하나의 의사결정모델보다 예측 정확도가 높습니다. 1, Btoostrap기법을 이용하여 다수의 training 데이터를 생성 2. traing data로 무작위 변수를 사용하여 Decision tree모델을 구축 3. 예측을 종합 함

앙상블(Ensemble)의 기본개념 및 Bagging 예제

머신 러닝에서 앙상블이란 단어 그대로 여러 단순한 모델을 결합하여 정확한 모델을 만드는 방법입니다. 분류를 할 때 여러 개의 분류기(Classifier)를 생성하고 여러 모델을 결합하여 최종 예측을 도출하는 기법입니다. 앙상블 학습의 유형은 전통적으로 보팅(Voting), 배깅(Bagging) 그리고 부스팅(Boosting) 이 있습니다. Voting : 하나의 데이터 셑을 이용하여 서로 다른 알고리즘으로 Classifier를 결합하는 방식 Bagging : 샘플을 여러 번 뽑아(Bootstrap) 같은 유형의 알고리즘으로 모델을 학습시켜 결과물 집계 (Aggregration).하는 방식 Boosting : 오분류된 데이터에 초점을 맞추어 가중치를 활용하여 약 분류기(weak classififier)을 ..

분류모형을 이용한 은행 고객 이탈 모형(02)

이탈고객 분석에 대한 개요와 데이터 이해, 데이터 탐색, 데이터 전처리 등이 완료가 되었고, 분류모형을 이용하여 이탈고객 모델링을 하고자 합니다. 목차 - 이탈고객분석 개요 - 목표 - 데이터 이해 - 데이터 탐색 - 데이터 전처리 - 데이터모델링 - 모델평가 3. 데이터 모델링 (1) 학습데이터와 테스트데이터를 분할함 필요 없는 칼럼( 'Avg_Open_To_Buy','Gender')을 삭제합니다 #필요없는 컬럼을 삭제 bank_df.drop(['Avg_Open_To_Buy','Gender', 'Income_Category','Card_Category' ], axis=1, inplace=True) 학습데이터 70%, 테스트 데이터 30%로 나눕니다. X = bank_df.drop('Attrition_F..

데이터이야기 2023.11.14

분류모형을 이용한 은행 고객 이탈 모형

이탈고객 모형이란 이탈 고객이란 고객이 회사의 제품이나 서비스 사용을 중단하는 고객 이탈 고객 관리는 은행, 통신서비스, OTT, 보험 회사 등 온라인 서비스 제공하는 산업에서 매우 중요하며, 수익성에 영향을 미침 신규 고객을 확보하는 데는 기존 고객을 유지하는 것보다 최대 5배 이상의 비용이 소요되므로, 이탈 고객 분석은 비즈니스에 매우 중요하며 필수적 임 이탈 고객 분석을 통해 고객 만족도를 높이고 결과적으로 고객 유지율을 높일 수 있는 전략을 수립해야 함 목표 은행의 이탈고객을 이해하고 예측하는 것 탐색적 데이터 분석(EDA)을 수행하여 고객 이탈에 기여하는 요인을 식별하고 시각화하고, EDA를 바탕으로 고객이 이탈할지 여부를 예측하는 기계 학습 모델을 구축하는데 기반 임 분류모형이고, 이탈할 고객..

데이터이야기 2023.11.13

연관규칙을 이용한 상품 추천(Apriori 알고리즘)

연관규칙 분석은 자료에 존재하는 항목(item)들 간의 if-then 형식의 연관규칙을 찾는 방법으로서 비지도 학습법의 일종입니다. 상품의 구매, 서비스 등 일련의 거래 또는 사건들 간의 연관성에 대한 규칙을 발견하기 위해 적용되고, 특히 마케팅에서 고객이 동시에 구매한 장바구니 내의 상품들에 대한 관련성을 분석하는 장바구니 분석에 많이 적용이 됩니다. 연관규칙 적용 예 연관규칙의 적용 예는 다양합니다. 금융 : 금융서비스 내용으로 부터 대출과 같은 특정한 서비스를 받을 가능성이 높은 고객 탐색 병원 : 합병증 발생 예측 보험 : 보험사기 패턴 탐색, 특정 서비스 신청 예측 등 인터넷 쇼핑몰 : 상품 추천 텍스트마이닝 : 웹페이지 간의 링크에 대한 분석 연관규칙의 유형은 유용한 규칙, 자명한 규칙, 설명..

다양한 데이터 스케일링(Data Scaling)

데이터 스케일링이란 데이터 전처리 과정 중의 하나로서, 피처(feature) 즉 속성 들마다 데이터값의 범위의 차이가 클 경우 데이터 스케일링을 해야 됩니다. 즉 데이터 스케일링을 통해 모든 피처들의 데이터 분포나 범위를 동일하게 조정해 줍니다. 사이킷런에서 제공하는 5가지의 스케일러입니다. 종류 설명 StandardScaler 평균 0 과 표준편차1이 되도록 정규화하는 기본적인 스케일러 MinMaxScaler 최대값 1, 최소값 0이 되도록 스케일링 MaxAbsScaler 최대 절대값이 1, 최소값이 0이 되도록 스케일링 RobustScaler 중앙값과 IQR을 사용하여 이상치의 영향을 최소화하여 스케일링 Normalizer 행단위의 정규화하는 스케일링 가장 많이 사용되는 StandardScaler를 ..

의사결정나무를 이용한 분류모형

의사결정규칙을 나무구조와 같이 도표화하여 분류와 예측작업을 수행하는 분석 방법입니다. 여러 가지 규칙을 순차적으로 적용하면서 독립 변수 공간을 분할하는 분류모형입니다. 의사결정나무의 구성요소 뿌리마디(root node) : 시작되는 마디로 전체 자료를 포함 자식마디(child node) : 하나의 마디로부터 분리되어 나가 2개 이상의 마디들 부모마디(parent node) : 주어진 마디의 상위 마디 끝마디(terminal node) : 자식마디가 없는 마디 중간마디(internal node) : 부모마디와 자식마디가 모두 있는 마디 가지(branch) : 뿌리마디로부터 끝 마디까지 연결된 마디 들 깊이(depth) : 가지를 이루고 있는 마디의 갯수 의사결정나무의 원리 "예"와 "아니요"로 답변하는 스..

분류모형의 성능평가

분류모형의 성능을 평가하기 위해서는 다양한 명령이 필요하다. 사이킷런 패키지에서 지원하는 분류 성능평가 명령은 다음과 같다. 구분사이키런 명령분류표confusion_matrix(y_true, y_pred)정확도(Accuracy)accuracy_score(y_true, y_pred)정밀도(Precision)precision_score(y_true, y_pred)재현율(Recall)recall_score(y_true, y_pred)위양성률fbeta_score(y_true, y_pred, beta)f1점수f1_score(y_true, y_pred) classification_report( 정밀도, 재현율, F1점수) classfication_report(y_true, y_pred)roc커브roc_curveAU..

728x90