머신러닝 10

차원 축소 (Dimension Reduction) - PCA, LDA

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 안녕하세요! 오늘은 차원 축소 알고리즘 중 PCA 와 LDA에 대해 알아보겠습니다. 1. 차원 축소란? 2. PCA 3. LDA 1. 차원 축소란? 차원 축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것입니다. 일반적으로 차원이 증가할수록 데이터 간의 거리가 기하급수적으로 증가하기 때문에 희소한 구조를 가지게 되고 모델의 예측 신뢰도가 떨어지게 됩니다. 차원 축소를 할 경우 학습 데이터의 크기가 줄어들어서 학습에 필요한 처리 능력도 줄일 수 있습니다. 일반적으로 차원 축소는 피처 선택과 피처 추출로 나눌 수 있습니다. 피처 선책은 말 그대로 특정 피처에 ..

머신러닝 2021.07.14

분류 실습 : 신용카드 사기 검출 (Credit Card Fraud Detection)

https://www.kaggle.com/mlg-ulb/creditcardfraud Credit Card Fraud Detection Anonymized credit card transactions labeled as fraudulent or genuine www.kaggle.com 안녕하세요! 오늘은 캐글의 Credit Card Fraud 데이터 세트를 이용해 신용카드 사기 검출 분류를 해보겠습니다. 진행 순서는 다음과 같습니다. 1. 데이터 뜯어보기 2. 학습용/테스트용 데이터 나누기 3. 데이터 전처리 후 모델 학습/예측/평가 3-1. 데이터 분포도 변환 3-2. 이상치 데이터 제거 4. 결과 1. 데이터 뜯어보기 import pandas as pd import numpy as np import m..

머신러닝 2021.06.12

앙상블 학습 (Ensemble Learning) - Stacking

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 안녕하세요! 오늘은 앙상블 학습의 스태킹에 대해 알아보겠습니다. 1. 스태킹이란? 2. 과적합 개선을 위한 CV 세트 기반의 스태킹 1. 스태킹이란? 스태킹이란 개별적인 여러 알고리즘을 서로 결합해 예측 결과를 도출한다는 점에서 배깅 및 부스팅과 공통점을 가지고있습니다. 하지만 가장 큰 차이점은 개별 알고리즘으로 예측한 데이터를 기반으로 다시 예측을 수행한다는 것입니다. 즉, 개별 모델을 통해 한 번 예측하고 그 예측한 결과를 다시 학습 데이터와 테스트 데이터로 나누어서 다시 예측하는 것 입니다. 스태킹 모델은 두 종류의 모델이 필요합니다. 개별 기반 모델들 (위 그림의 파랑, 보라, 빨강 모델) 과 개별 기반 ..

머신러닝 2021.06.11

앙상블 학습 (Ensemble Learning) - Voting, Bagging, Boosting

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 안녕하세요! 오늘은 분류에서 가장 각광을 받고 있는 알고리즘인 앙상블 학습에 대해 알아보겠습니다. 1. 앙상블 학습이란? 2. 보팅 3. 배깅 3-1. 랜덤 포레스트 4. 부스팅 4-1. AdaBoost 4-2. GBM (Gradient Boosting Machine) 4-3. XGBoost (eXtra Gradient Boost) 4-4. LightGBM 1. 앙상블 학습이란? 앙상블 학습이란 여러 개의 분류기를 생성하고 각 예측들을 결합함으로써 보다 정확한 예측을 도출하는 기법입니다. 정형 데이터의 예측 분석 영역에서 앙상블이 매우 높은 예측 성능으로 인해 많은 분석가와 데이터 사이언티스트에게 애용되고 있습니..

머신러닝 2021.06.03

결정 트리 (Decision Tree)

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 안녕하세요! 오늘은 분류 알고리즘인 결정 트리에 대해서 알아보겠습니다. 1. 결정 트리란? 2. 결정 트리 모델의 특징 3. 결정 트리 파라미터 4. 결정 트리 시각화 1. 결정 트리란? 결정 트리는 머신러닝 알고리즘 중 직관적으로 이해하기 쉬운 분류 알고리즘입니다. 데이터에 있는 규칙을 학습을 통해 자동적으로 찾아내 트리 기반의 분류 규칙을 만드는 것입니다. 알고리즘의 성능을 크게 좌우하는 것은 데이터의 "어떤 기준"을 바탕으로 규칙을 만드는가 입니다. 결정 트리는 루트 노드, 규칙 노드, 리프 노드로 이루어져 있고 새로운 규칙 조건마다 서브 트리가 생성됩니다. 규칙이 너무 많으면 분류 방식이 매우 복잡해진다는..

머신러닝 2021.03.17

로지스틱 회귀 (Logistic Regression)

*해당 포스팅은 핸즈온 머신러닝(2판) 교재를 공부하며 작성한 글입니다. 안녕하세요! 오늘은 머신러닝의 로지스틱 회귀에 대해 알아보겠습니다. 1. 로지스틱 회귀란? 2. 로지스틱 회귀의 비용 함수 3. 로지스틱 회귀를 이용한 분류 실습 1. 로지스틱 회귀란? 로지스틱 회귀는 샘플이 특정 클래스에 속할 확률을 추정되는 데 사용됩니다. 추정 확률이 50%가 넘으면 모델은 그 샘플이 해당 클래스에 속한다고 예측하고 아니면 클래스에 속하지 않는다고 예측합니다. 이진 분류기라고 불리는 로지스틱 회귀는 실제로 분류에 많이 사용됩니다. 로지스틱 회귀는 시그모이드 함수를 기반으로 합니다. 시그모이드 함수는 0에서 1 사이의 값만 가집니다. y값이 0.5미만일 때는 0(음성 클래스)라고 예측하고 0.5 이상일 때는 1(..

머신러닝 2021.03.15

선형 회귀 (Linear Regression)

*해당 포스팅은 핸즈온 머신러닝(2판) 교재를 공부하며 작성한 글입니다. 안녕하세요! 오늘은 머신러닝의 대표적인 지도학습의 회귀 중 선형 회귀에 대해 알아보겠습니다. 1. 선형 회귀 1-1. 경사 하강법 1-1-1. 학습률 1-1-2. 과정 1-1-3. 경사 하강법의 종류와 문제점 1-2. 규제가 있는 선형 모델 1-3-1. 릿지 회귀 1-3-2. 라쏘 회귀 1-3-3. 엘라스틱넷 1. 선형 회귀 회귀는 지도학습인데 지도학습이란 훈련 데이터로부터 하나의 함수를 유추해내는 방법입니다. 그중 선형 회귀란 데이터들을 가장 잘 대변할 수 있는 "직선"을 찾아 새로운 데이터 값을 넣었을 때의 결괏값을 예측할 수 있도록 하는 것입니다. 이 선형 함수 모델 (초록 점선) 의 식은 다음과 같습니다. H(x)=wx+b ..

머신러닝 2021.03.13

사이킷런 (Scikit-Learn) : 파이썬의 대표적인 머신러닝 패키지

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 오늘은 파이썬 머신러닝 라이브러리 중 가장 많이 사용되는 사이킷런의 주요 모듈을 알아보고 그 중 model_selection 모듈과 preprocessing 모듈에 대해 자세히 알아보겠습니다. 데이터 세트는 사이킷런에 내장된 데이터 세트를 사용하였고 알고리즘도 사이킷런의 머신러닝 알고리즘을 사용했습니다. 1. 사이킷런의 주요 모듈 2. model_selection 모듈 2-1. train_test_split() 2-2. 교차 검증 2-3. GridSearchCV 3. preprocessing 모듈 3-1. 데이터 인코딩 3-2. 피처 스케일링과 정규화 1. 사이킷런의 주요 모듈 2. Model_selection ..

머신러닝 2021.03.12

판다스 (Pandas) : 파이썬의 대표적인 데이터 처리 패키지

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 이전 글에서 머신러닝 개발을 위해 이해해야 할 중요 요소인 넘파이와 판다스 중 넘파이를 알아봤습니다. 이번 포스팅에서는 파이썬의 대표적인 데이터 처리 패키지인 판다스에 대해 알아보겠습니다. 1. 판다스란? 2. 데이터프레임과 리스트, 딕셔너리, 넘파이 ndarray 상호 변환 2-1. 리스트, 딕셔너리, ndarray -> 데이터프레임 2-2. 데이터프레임 -> 리스트, 딕셔너리, ndarray 3. 판다스로 데이터프레임 다루기 3-1. 칼럼 데이터 세트 생성과 수정 3-2. 데이터 삭제 3-3. 데이터 선택 및 필터링 3-4. 데이터 정렬, Aggregation함수, GroupBy 4. 판다스로 결손 데이터 처..

머신러닝 2021.03.09

넘파이 (NumPy) : 행렬과 선형대수를 다루는 패키지

*해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민 지음) 교재를 공부하며 작성한 글입니다. 머신러닝 개발을 위해서는 넘파이와 판다스에 대해 이해하는 것이 매우 중요합니다. 사이킷런의 머신러닝 알고리즘에 입력하기 위한 데이터 처리 대부분이 넘파이와 판다스의 몫일 뿐더러, 넘파이와 판다스에 대한 이해가 충분해야 다른 데이터 분석가의 소스 코드를 이해하고 자신의 것으로 흡수하며 성장해나갈 수 있습니다. 행렬과 선형대수를 다루는 패키지인 넘파이에 대해 먼저 알아보겠습니다. 1. 넘파이란? 2. 넘파이를 활용한 배열 생성 및 크기 조절 2-1. 배열 생성 2-2. 배열의 크기 조절 3. 넘파이를 활용한 인덱싱 3-1. 단일값 추출 3-2. 연속된 값 추출 3-3. 조건에 맞는 값 추출 4. 넘파이의 행렬 정렬 ..

머신러닝 2021.03.08