일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Python
- 데이터분석
- 데이터 분석
- 머신러닝
- SQLD
- 회귀분석
- pytorch
- 코딩테스트
- 시각화
- 태블로
- 데이터분석준전문가
- 이것이 코딩테스트다
- tableau
- matplotlib
- ADsP
- scikit learn
- SQL
- 통계
- r
- IRIS
- Deep Learning Specialization
- pandas
- 자격증
- sklearn
- ML
- 파이썬
- 데이터 전처리
- 이코테
- Google ML Bootcamp
- 딥러닝
- Today
- Total
목록데이터분석 공부 (64)
함께하는 데이터 분석
from sklearn.ensemble import RandomForestClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.linear_model import LogisticRegression from xgboost import XGBClassifier from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier rfc = RandomForestClassifier() dtc = DecisionTreeClassifier() lrc = LogisticRegression(solver='liblinear') xgb = XGBCl..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/l94Y5/btrX31HL1M9/OpCHSOMFgLTBf8Bh6wQJe1/img.png)
Positional Encoding 앞서 포스팅한 Transformer① 모델에서 한 가지 부족한 부분은 입력 문장에서 단어들의 순서를 고려하지 않았다는 것 이것을 추가하기 위해 Transformer 모델은 각각의 입력 임베딩에 "positional encoding"이라고 불리는 하나의 벡터를 추가 이 벡터들은 모델이 학습하는 특정한 패턴을 따르는데, 이 패턴은 모델이 각 단어의 위치와 시퀀스 내의 다른 단어 간의 위치 차이에 대한 정보를 알 수 있게 해 줌 이 벡터들을 추가하기로 한 배경에는 이 값들을 단어들의 임베딩에 추가하는 것이 query/key/value 벡터들로 나중에 투영되었을 때 단어들 간의 거리를 늘릴 수 있다는 점 모델에게 단어의 순서에 대한 정보를 주기 위해, 위치 별로 특정한 패턴을..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1eXoE/btrXZQkCk2Q/DGqH1QHSrckpjHdxeleO91/img.png)
Transformer 2017 NIPS에서 Google이 소개 CNN이나 RNN이 주를 이루었던 연구들에서 벗어난 아예 새로운 모델이고 실제 적용했을 때 큰 성능 향상을 보임 multi-head self-attention을 이용해 sequential computation을 줄여 더 많은 부분을 병렬처리가 가능하며 더 많은 단어들 간의 dependency를 모델링 함 이를 하나의 black box라고 보면 어떤 한 언어로 된 하나의 문장을 입력으로 받아 다른 언어로 된 번역을 출력으로 내놓음 black box를 열어보면 우리는 인코딩 부분, 디코딩 부분 그리고 그 사이를 이어주는 connection들을 보게 됨 인코딩 부분은 여러 개의 인코더를 쌓아 올려 만든 것이고 디코딩 부분은 인코딩 부분과 동일한 개..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GbOpJ/btrWSwoFtY5/d47fiJ2b7Kdg1ytkemiknk/img.png)
CatBoost CatBoost는 많은 범주형 변수로 이루어진 데이터셋에서 성능이 매우 우수하여 categorical boost라고도 불립니다 특히 CatBoost는 다른 boosting 기반 알고리즘과 달리 categorical feature를 특별하게 처리합니다 One-Hot Encoding이나 Label Encoding 등 인코딩 과정 없이 그대로 모델에 적합시킬 수 있습니다 또 categorical feature를 그대로 모델에 넣어주면 Ordered Target Encoding을 진행합니다 Target Encoding에서 발생할 수 있는 data leakage 문제를 해결하기 위해 과거의 데이터를 이용하여 현재의 데이터를 인코딩하는 원리입니다 부스팅을 할 때 일반적인 Boosting이 아닌 Or..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bWG1yG/btrWQbRPHrA/PiSE7kQF9TZrDpxGKmE1DK/img.png)
XGBoost XGBoost는 "eXtreme Gradient Boosting"에서 따온 이름입니다 XGBoost는 Gradient Boosting 방법 중 하나로 많은 장점이 존재합니다 장점 효율성, 유연성이 뛰어남 overfitting 방지 가능(과적합 규제) 신경망 모델에 비해 시각화와 직관적인 이해가 쉬움 cross validation을 지원 높은 성능을 나타내어 kaggle, dacon에 많이 사용 early stopping(조기종료) 기능이 있음 missing value를 내부적으로 처리 단점 하이퍼파라미터 수가 너무 많음 XGBoost는 앞선 LightGBM 포스팅에서 본 것과 같이 level-wise로 수평적으로 확장됩니다 Python 실습 import numpy as np import w..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ddDX6N/btrWQXehi3l/kwZE5cjvCIOa8JvcclutSk/img.png)
LightGBM LightGBM은 Gradient Boosting Machine에서 Light를 추가한 것입니다 Light가 붙은 만큼 속도도 빠르고 큰 사이즈의 데이터를 다룰 수 있고 실행시킬 때 적은 메모리를 차지합니다 추가로 LightGBM은 GPU 학습을 지원하고 결과의 정확도에 초점을 맞추므로 인기 있는 모델입니다 LightGBM은 기본적으로 GBM의 학습방식의 틀린 부분에 가중치를 주며 진행하는 방식입니다 GBM에 대한 소개는 이전 포스팅을 참고하세요 2023.01.15 - [데이터분석 공부/ML | DL] - [ML] Gradient Boosting Machine [ML] Gradient Boosting Machine Gradient Boosting Machine Gradient Boosti..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1lDPg/btrWrqob1TM/JrR2WQhqLiuxbV60N7KqwK/img.png)
머신러닝 분류 모델에서 성능 평가 지표로 Confusion Matrix를 기반으로 하여 Accuracy, Precision, Recall, F1 score 등으로 측정합니다 Confusion Matrix Prediction positive(1) negative(0) Actual positive(1) TP FN negative(0) FP TN TP(True Positive) : 실제 positive인데 예측도 positive인 경우 FN(False Negative) : 실제 positive인데 예측은 negative인 경우 - Type II error FP(False Positive) : 실제 negative인데 예측은 positive인 경우 - Type I error TN(True Negative) : ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/WMzMR/btrWedJXvMw/BRZq8gUGPQK9ZzTvIz7myk/img.png)
Gradient Boosting Machine Gradient Boosting Machine, GBM은 이름에서도 알다시피 Boosting 알고리즘입니다 앙상블과 부스팅에 관한 설명은 이전 포스팅을 참고해 주세요 2022.08.19 - [데이터분석 공부/ML | DL] - [Ensemble] 머신러닝 앙상블 기법 [Ensemble] 머신러닝 앙상블 기법 오늘은 머신러닝에서 자주 등장하는 앙상블 기법에 대해 알아볼게요! 우선 앙상블(Ensemble)이란 여러 개의 분류기를 생성하여 예측값을 종합하여 보다 정확한 예측값을 구하고 각각의 분류기를 tnqkrdmssjan.tistory.com GBM을 알기 위해서는 AdaBoost에 대해서도 알아야 하는데 AdaBoost는 오류 데이터에 가중치를 부여하면서 부스..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LZ8qX/btrWfP89RIP/AcZ1nu2wPqkBLaQtf0m4i1/img.png)
교차검증과 하이퍼파라미터 튜닝은 머신러닝 모델의 성능을 높이기 위해 사용하는 기법 교차검증 학습과 검증을 위해 train set, validation set, test set으로 데이터를 나눔 하지만 이러한 방법은 overfitting에 취약할 수 있고 데이터의 개수가 적을 때 어려움이 있음 그리고 고정된 train set와 test set으로 평가를 하다 보면 test set에서만 최적의 성능을 발휘하도록 편향될 수 있기에 이 문제를 해결하기 위해 나온 것이 교차검증 raw 데이터가 충분하지 않을 때 사용하는 방법이 k-fold cross validation 가장 보편적으로 사용되는 교차검증 기법으로 train set를 k개로 분할하여 1개의 validation fold를 나머지 k-1개의 traini..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/djWGKh/btrOrgOijkF/cujPk9khszN98pkQ1F8vy0/img.png)
라이브러리 불러오기 import pandas as pd import seaborn as sns Seaborn을 활용하여 데이터 불러오기 mpg = sns.load_dataset('mpg') mpg.head() mpg=mpg.drop(columns='name') mpg.head() mpg['origin'].value_counts() >>> usa 249 japan 79 europe 70 Name: origin, dtype: int64 usa, japan, europe 3개의 값으로 origin 칼럼이 구성되어있음 get_dummies() pd.get_dummies(mpg) get_dummies()를 사용하여 간단하게 One-Hot Encoding을 한 것을 확인할 수 있음 결측 값이 존재한다면 dummy_..