전체 글 34

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

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

머신러닝 2021.07.14

결측치 (Missing Value) 처리하기

오늘은 데이터 세트의 결측치를 처리하는 방법에 대해 알아보겠습니다. 결측치가 있으면 머신러닝 알고리즘이 제대로 역할을 하지 못하기 때문에 결측치를 처리해주는 것이 중요합니다. 파이썬에서 결측치는 NaN으로 표기됩니다. 판다스로 결측치를 처리하는 방법에 대해 알아보겠습니다. 1. 결측치 확인 2. 결측치 제거 3. 결측치 대체 1. 결측치 확인 - isnull() #결측치 여부 확인 df['col'].isnull() # 결측치 개수 확인 df['col'].isnull().value_counts() 2. 결측치 제거 - dropna() # 디폴트 값 axis=0, 'any' 이므로 결측치가 있는 행 모두 삭제 df.dropna() # axis 가 1이면 열, axis가 0이면 행 # 행에 하나라도 결측치가 ..

불균형 데이터 (imbalanced data) 처리를 위한 샘플링 기법

*해당 포스팅은 고려대학교 산업경영공학부 김성범 교수님의 Youtube 채널의 "[핵심 머신러닝] 불균형 데이터 분석을 위한 샘플링 기법" 자료를 보고 공부하며 작성한 글입니다. 그림들의 출처도 아래의 출처와 동일합니다. 출처: https://www.youtube.com/watch?v=Vhwz228VrIk&list=PLpIPLT0Pf7IoTxTCi2MEQ94MZnHaxrP0j&index=7 안녕하세요! 이전에 신용카드 사기 검출 실습에서 불균형 데이터를 다뤘었는데 불균형 데이터를 처리하는 다른 방법들은 무엇이 있을까 궁금하여 찾아보다 제가 강의를 자주 듣던 김성범 교수님 채널에서 불균형 데이터 분석을 위한 샘플링 기법 강의를 보고 공부하여 포스팅하게 되었습니다. 그럼 불균형 데이터를 처리하는 여러 샘플링..

[교내 프로젝트] 오픈소스를 활용하여 테트리스 게임 개발하기 (2)

1편에 이어 2편에서는 코드를 수정하고 개발한 과정과 디버깅한 과정, 마지막으로 github에 최종 업로드한 과정을 포스팅하도록 하겠습니다. 3. 코드 수정 및 개발 3-1. 협업을 위한 git 협업규칙 정하기 코드를 협업해서 개발하기 위해서는 git이 필수적입니다. 저희 팀이 정한 git 협업규칙은 다음과 같습니다. Fork한 개인 Repository를 Local로 가져와서 자신이 구현할 기능 이름으로 branch를 생성하고 해당 branch로 이동한 뒤 작업을 한다. 주의사항: 반드시 main branch에서 branch를 생성해야 한다. 작업을 한 뒤 개인 Repository에 add, commit, push를 한 후 Main Repository로 pull request한다. 팀원들은 pull re..

프로젝트 2021.07.07

[교내 프로젝트] 오픈소스를 활용하여 테트리스 게임 개발하기 (1)

안녕하세요! 오픈소스 소프트웨어 프로젝트라는 전공 수업에서 오픈소스를 활용하여 테트리스 게임을 개발하는 프로젝트를 진행했습니다. 프로젝트의 전체적인 순서는 다음과 같습니다. 1. Base 코드 1-1. 오픈소스에서 Base 코드 정하기 1-2. Base 코드 분석하기 2. 개선 사항 및 수정 사항 정하기 2-1. Base 코드의 오류 찾기 2-2. 더 흥미로운 게임을 위한 개선 사항 정하기 3. 코드 수정 및 개발 3-1. 협업을 위한 git 협업 규칙 정하기 3-2. 팀원들이 진행한 부분 3-3. 내가 진행한 부분 3-3-1. AWS의 RDS와 MySQL을 이용한 회원가입/로그인 기능 3-3-2. 계정의 보안을 위한 비밀번호 Hashing & Salting 3-3-3. 모드별 랭킹 구현 및 랭킹 실시간..

프로젝트 2021.07.07

분류 실습 : 신용카드 사기 검출 (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