일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sklearn
- SQL
- 딥러닝
- pytorch
- IRIS
- matplotlib
- 데이터분석준전문가
- Python
- SQLD
- pandas
- ADsP
- 태블로
- 회귀분석
- 데이터 분석
- Google ML Bootcamp
- 머신러닝
- 자격증
- 이코테
- 시각화
- r
- ML
- 이것이 코딩테스트다
- 데이터분석
- 파이썬
- 통계
- tableau
- Deep Learning Specialization
- scikit learn
- 데이터 전처리
- 코딩테스트
- Today
- Total
목록데이터분석 공부/ML | DL (21)
함께하는 데이터 분석
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/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/cQ7F4d/btrME2JP8sB/ftROplglVQEOJSacI0rpHK/img.png)
모델 구현 import torch import torch.nn as nn import torch.optim as optim import numpy as np from tqdm.notebook import tqdm n_hidden = 35 # 순환 신경망의 노드 수 lr = 0.01 epochs = 1000 string = "hello pytorch. how long can a rnn cell remember? show me your limit!" chars = "abcdefghijklmnopqrstuvwxyz ?!.,:;01" char_list = [i for i in chars] n_letters = len(char_list) 예시에서 사용할 문장은 'hello pytorch. how long can ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpfB44/btrMDgJinS4/wZgqpOC0HLH5Kq6yuoa7kK/img.png)
순환 신경망의 발달 과정 순환 신경망(RNN)은 합성곱 신경망보다 먼저 나왔음 위키피디아에 따르면 1982년 존 홉필드가 순환 신경망의 기본적인 형태를 대중화했다고 알려져 있지만, 해당 아이디어가 이때 처음 나온 것은 아니고 이전에도 언급된 적이 있음 이때 만들어진 순환 신경망이 오늘날의 순환 신경망의 형태로 오기까지는 꽤 많은 시간이 걸렸는데, 발전된 연산 능력과 데이터의 증가로 인해 성과를 보일 수 있게 된 것 특히 발전 과정에서 나온 LSTM(long short-term memory)과 GRU(gated recurrent unit)같은 변형 모델들은 오늘날에도 많이 사용되고 있음 순환 신경망이 왜 필요한지를 살펴보면 TRIANGLE과 INTEGRAL이라는 글자는 같은 알파벳들의 나열이지만 순서가 다..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dWfS7n/btrLNvOru1r/khjKGjDJaJ5dcrzns61jqK/img.png)
모델 구현 import torch import torch.nn as nn import torch.optim as optim import torch.nn.init as init from tqdm.notebook import tqdm import matplotlib.pyplot as plt torch.nn에는 신경망 모델들이 포함 torch.optim에는 경사 하강법 알고리즘이 들어있음 torch.nn.init에는 텐서에 초깃값을 주기 위해 필요한 함수들이 있음 tqdm 라이브러리를 사용하여 상태진행률을 확인할 수 있음 num_data = 1000 num_epoch = 10000 noise = init.normal_(torch.FloatTensor(num_data,1), std=1) x = init.unif..