반응형

Data Analysis & ML/Machine Learning 22

[Machine Learning][머신러닝] 릿지/라쏘/엘라스틱넷 (정규화 회귀분석)

릿지/라쏘/엘라스틱넷 (정규화 회귀분석) 모델링을 하다보면 과적합될때가 많은데 이때 과적합을 막는 방법은 모델에 규제를 가하는 것이다. 보통 선형회귀 모델링에서는 모델의 가중치를 제한함으로써 규제를 하는데, 이번 포스팅에서는 모델의 가중치를 제한하는 회귀분석인 릿지, 라쏘, 엘라스틱넷에 대해 알아본다.  정규화 방법론Regularized Method, Penalized Method, Contrained Least Squares선형회귀 계수(Weight)에 대한 제약 조건을 추가함으로써 모형이 과도하게 최적화되는 현상, 즉 과최적화를 막는 방법과최적화는 계수 크기를 과도하게 증가하는 경향이 있기에, 정규화 방법에서의 제약 조건은 일반적으로 계수의 크기를 제한하는 방법규제 (Regularization)선형..

[LTV] BTYD (Buy-till-you-Die) - Pareto / NBD

LTV (Life Time Value) LTV(또는 CLV)로 부르는 ‘고객 생애 가치’는 고객이 평생동안 기업에게 어느 정도의 가치를 가져다 주는지를 정량화한 지표. LTV는 확률 기반 모형으로 특정한 시점 t에서 고객마다 어느 정도의 생애 가치를 가지는지 측정 회사가 얼마나 수익성이 있을지 또는 신규 고객을 확보하기 위해 얼마나 많은 비용을 지출할 수 있는지를 이해하는 데 중요한 지표 BTYD BTYD(Buy Till You Die) 모델은 고객 평생 가치를 계산하기 위해 과거 거래 데이터에 확률적 모델을 적용 BYTD 모델은 다음과 같은 질문에 답을 해준다고 한다. 활성 고객은 몇 명인가 지금부터 N년 후에 얼마나 많은 고객이 활동중일까 어떤 고객이 이탈했나 고객은 미래에 회사에 얼마나 가치가 있을..

[프로세스 마이닝] 프로세스 마이닝(PM4PY)

프로세스 마이닝 정보 시스템에 기록이 되는 이벤트 로그를 분석 하여 프로세스와 관련된 다양한 정보를 분석하는 기술 계산 지능(Computational Intelligence) 및 데이터 마이닝과 프로세스 모델링 및 분석의 중간에 위치 이벤트 로그에서 지식을 추출함으로써, 실제 업무 프로세스를 도출하고, 모니터링하며, 개선하는 것 자동화된 프로세스 도출, 적합도 검사, 소셜 네트워크/ 조직 마이닝, 시뮬레이션 모델의 자동 생성, 모델 확장, 모델 수정, 케이스 예측 그리고 과거 데이터 기반 추천 등을 포함 데이터 마이닝과 비즈니스 프로세스 모델링 및 분석의 중요한 연결 고리 역할 이벤트 로그 프로세스 마이닝 기법을 적용하기 위해서는 “Event log”를 추출하는 것이 필수 먼저 추적 대상(케이스)을 결정..

[Machine Learning][머신러닝] Bagging, Boosting 정리

편향-분산 상충관계(Bias-variance Trade-off) 1) 편향과 분산의 정의 편향(Bias): 점추정 예측값과 실제값의 차이 모델 학습시 여러 데이터로 학습 후 예측값의 범위가 정답과 얼마나 멀리 있는지 측정 편향(Bias(Real)): 모형화(단순화)로 미처 반영하지 못한 복잡성 => 편향이 작다면 Training 데이터 패턴(복잡성)을 최대반영 의미 => 편향이 크다면 Training 데이터 패턴(복잡성)을 최소반영 의미 분산(Variance): 구간추정 학습한 모델의 예측값이 평균으로부터 퍼진 정도(변동성/분산) 여러 모델로 학습을 반복한다면, 학습된 모델별로 예측한 값들의 차이를 측정 분산(Variance(Real)): 다른 데이터(Testing)를 사용했을때 발생할 변화 => 분산이..

[Machine Learning][머신러닝] 대출위험도 예측모델링(모델링)

대출위험도 예측모델링 라이브러리 불러오기 및 데이터셋 나누기 import pandas as pd import numpy as np np.random.seed(1234) data = pd.read_csv('data/data-v01.csv') data.shape from sklearn.linear_model import LogisticRegression from sklearn.ensemble import GradientBoostingClassifier, RandomForestClassifier from sklearn.neighbors import KNeighborsClassifier from xgboost import XGBClassifier from sklearn.model_selection import ..

[Machine Learning][머신러닝] 대출위험도 예측모델링(데이터전처리)

모델링 개요 데이터 탐색 (EDA) 가지고 있는 데이터로부터 통찰력(Insight)을 얻는다. 라벨(답)의 존재 유무 지도학습/비지도학습 결정 라벨의 형태 분류/회귀 모델 결정 Base-Line 모델로 가장 간단한 머신러닝 모형 구현 아무런 설정없이 생성한 모델 EDA 결과 확인을 위한 모델 모델 선택, 튜닝의 기준이 될 모델 Base-Line 모델의 문제점을 파악하여 그것을 개선하는 방향으로 튜닝해 나간다. 문제에 대한 이해 현재 수입, 지출 등의 데이터에 대해 은행 자체의 분석을 진행하여 대출자가 미래에 돈을 갚을 수 있는지 확인 알고리즘 결과 : 일정 기간(2년) 내에 채무 불이행 여부 평가 지표 : roc_auc 점수 데이터 속성에 대한 이해 SeriousDlqin2yrs 목표 변수 최근 2년 동..

[Machine Learning][머신러닝] 군집(Clustering) / K-Means Clustering

군집 (Clustering) 비지도 학습으로 비슷한 특성을 가지는 데이터들끼리 그룹으로 묶는다. 적용 고객 분류 고객 데이터를 바탕으로 비슷한 특징의 고객들을 묶어 성향을 파악할 수 있다. 이상치 탐지 모든 군집에 묶이지 않는 데이터는 이상치일 가능성이 높다 준지도학습 레이블이 없는 데이터셋에 군집을 이용해 Label을 생성해 분류 지도학습을 할 수 있다. 또는 레이블을 좀더 세분화 할 수 있다. k-mean (K-평균) 가장 널리 사용되는 군집 알고리즘 중 하나. 데이터셋을 K의 군집으로 나눈다. K는 하이퍼파라미터로 사용자가 지정한다. 군집의 중심이 될 것 같은 임의의 지점(Centroid)을 선택해 해당 중심에 가장 가까운 포인드들을 선택하는 기법. 알고리즘 이해 특징 K-mean은 군집을 원 모양..

[Machine Learning][머신러닝] 로지스틱 회귀(Logistic Regression)

로지스틱 회귀 (LogisticRegression) 선형회귀 알고리즘을 이용한 이진 분류 모델 Sample이 특정 클래스에 속할 확률을 추정한다. 확률 추정 선형회귀 처럼 입력 특성(Feature)에 가중치 합을 계산한 값을 로지스틱 함수를 적용해 확률을 계산한다. import matplotlib.pyplot as plt xx = np.linspace(-10, 10, 100) sig = 1 / (1 + np.exp(-xx)) plt.figure(figsize=(15, 5)) plt.plot(xx,xx, color='g', label='linear') plt.plot(xx, sig, color='b', linewidth=2, label="logistic") plt.plot([-10, 10], [0, 0],..

[Machine Learning][머신러닝] 회귀모델개요와 평가지표

회귀(Regression) 지도 학습(Supervised Learning)으로 예측할 Target이 연속형(continuous) 데이터(float)인 경우 회귀의 주요 평가 지표 예측값과 실제 값간의 차이를 구한다 MSE (Mean Squared Error) 실제 값과 예측값의 차를 제곱해 평균 낸 것 mean_squared_error() 'neg_mean_squared_error' RMSE (Root Mean Squared Error) MSE는 오차의 제곱한 값이므로 실제 오차의 평균보다 큰 값이 나온다. MSE의 제곱근이 RMSE이다. scikit-learn은 함수를 지원하지 않는다. (MSE를 구한 뒤 np.sqrt()로 제곱근을 구한다.) R^2 (R square, 결정계수) 우리가 만든 모델이 ..

[Machine Learning][머신러닝] XGBoost의 개념과 예제 코드

XGBoost(Extra Gradient Boost)XGBoost란https://xgboost.readthedocs.io/Gradient Boost 알고리즘을 기반으로 개선해서 나온 모델.캐글 경진대회에서 상위에 입상한 데이터 과학자들이 사용한 것을 알려저 유명해짐.Gradient Boost의 단점인 느린수행시간을 해결하고 과적합을 제어할 수 있는 규제를 제공하여 성능을 높임.두가지 개발 방법Scikit-learn  XGBoost 모듈 사용파이썬 XGBoost 모듈 사용설치conda install -y -c anaconda py-xgboostXGBoost의 장점높은 성능 (실제로 Kaggle에서 XGboost가 상위권을 다수 차지)효율성, 유연성 ,휴대성이 뛰어남 여러 파라미터를 조절해 가며 최적의 Mo..

반응형