반응형

Data Analysis & ML 109

[Text Mining][NLP] NLTK 패키지를 사용한 Text 분석 (형태소, 어간,품사부착,원형복원)

NLTK 패키지를 사용한 Text 분석CF) NLTK 패키지 설치 방법 및 문법 : https://ysyblog.tistory.com/87형태소 분석형태소일정한 의미가 있는 가장 작은 말의 단위형태소 분석말뭉치에서 의미있는(분석에 필요한) 형태소들만 추출하는 것보통 단어로 부터 어근, 접두사, 접미사, 품사등 언어적 속성을 파악하여 처리한다.형태소 분석을 위한 기법어간추출(Stemming)원형(기본형) 복원 (Lemmatization)품사부착 (POS tagging - Part Of Speech)어간추출(Stemming)어간: 활용어에서 변하지 않는 부분painted, paint, painting => 어간: paint보다, 보니, 보고=>어간 보-어간 추출단어에서 어미를 제거하고 어간을 추출하는 작업목..

[Text Mining][NLP] 자연어 처리를 위한 NLTK (설치 방법 및 사용 문법)

NLTKNatural Language Toolkit(NLTK로 약칭)은 인간 언어 데이터를 더 쉽게 처리하고 사용할 수 있도록 설계된 라이브러리 모음즉 NLP(Natural Language Processing) (자연어 처리)하기 위한 패키지NLTK 설치nltk 패키지 설치pip 설치conda 설치conda install -y nltkpip install nltkNLTK 추가 패키지 설치import nltknltk.download() # 설치 GUI 프로그램 실행nltk.download('패키지명')NLTK 주요기능말뭉치(corpus) 제공말뭉치: 언어 연구를 위해 텍스트를 컴퓨터가 읽을 수 있는 형태로 모아 놓은 언어 자료를 말한다.예제용 말뭉치 데이터를 제공한다.텍스트 정규화를 위한 기능 제공토큰 생..

[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 pltxx = 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], color='k'..

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

회귀모델의 평가지표지도 학습(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은 함수를 지원하지 않는다...

[Machine Learning][머신러닝][앙상블][부스팅] GradientBoosting

Boosting 부스팅(Boosting)이란 단순하고 약한 학습기(Weak Learner)들를 결합해서 보다 정확하고 강력한 학습기(Strong Learner)를 만드는 방식. 정확도가 낮은 하나의 모델을 만들어 학습 시킨뒤, 그 모델의 예측 오류는 두 번째 모델이 보완한다. 이 두 모델을 합치면 처음보다는 정확한 모델이 만들어 진다. 합쳐진 모델의 예측 오류는 다음 모델에서 보완하여 계속 더하는 과정을 반복한다. 약한 학습기들은 앞 학습기가 만든 오류를 줄이는 방향으로 학습한다. GradientBoosting 처음 모델은 y를 예측 두번째 부터는 앞 모델이 만든 오류를 예측하고 그것을 앞 모델에 업데이트하면 오류를 줄일 수 있다. 그 오류를 update할 때 뺄까 더할까를 gradient descent..

[Machine Learning][머신러닝] 최적화 / 경사하강법

최적화 (Optimize) 모델이 예측한 결과와 실제 값의 차이를 줄이기 위해서 모델을 수정해야 하는 작업을 최적화라고 한다. 모델의 예측값과 실제 값의 차이를 계산하는 함수를 만들고 그 값이 최소가 되는 지점을 찾는 작업을 한다. 최적화 문제 함수 f(x) 의 값을 최소화(또는 최대화) 하는 변수 x의 값을 찾는 것 import numpy as np import matplotlib.pyplot as plt def func(x): return (x-1)**2 + 2 plt.figure(figsize=(10,10)) xx = np.linspace(-3,4, 100) # xx.shape, f1(xx).shape plt.plot(xx, func(xx)) plt.plot(1,2, 'ro', markersize=..

[Machine Learning][머신러닝][앙상블] Voting

앙상블의 종류 1. 투표방식 여러개의 추정기(Estimator)가 낸 결과들을 투표를 통해 최종 결과를 내는 방식 종류 Bagging - 같은 유형의 알고리즘들을 조합하되 각각 학습하는 데이터를 다르게 한다. Voting - 서로 다른 종류의 알고리즘들을 결합한다. 2. 부스팅(Boosting) 약한 학습기(Weak Learner)들을 결합해서 보다 정확하고 강력한 학습기(Strong Learner)를 만든다. Voting Voting의 유형 hard voting 다수의 추정기가 결정한 예측값들 중 많은 것을 선택하는 방식 soft voting 다수의 추정기에서 각 레이블별 예측한 확률들의 평균을 내서 높은 레이블값을 결과값으로 선택하는 방식 일반적으로 soft voting이 성능이 더 좋다. Votin..

반응형