일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- Deep Learning Specialization
- 데이터 분석
- 이것이 코딩테스트다
- ML
- pytorch
- pandas
- 데이터분석
- 딥러닝
- SQL
- matplotlib
- 회귀분석
- tableau
- Google ML Bootcamp
- 데이터분석준전문가
- 통계
- scikit learn
- r
- 자격증
- ADsP
- 태블로
- 이코테
- SQLD
- 데이터 전처리
- Python
- 시각화
- 파이썬
- IRIS
- sklearn
- 머신러닝
- Today
- Total
목록데이터 분석 (55)
함께하는 데이터 분석
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1eDkd/btrMIXoY6ze/hXrxK1VeTgeEy2rAKUL9Fk/img.png)
RNN 모델 구현 import torch import torch.nn as nn import string import random import re import time, math num_epochs = 2000 print_every = 100 plot_every = 10 chunk_len = 200 hidden_size = 100 batch_size = 1 num_layers = 1 embedding_size = 70 lr = 0.002 필요한 하이퍼 파라미터를 지정 # import 했던 string에서 출력가능한 문자들을 다 불러옴 all_characters = string.printable # 출력가능한 문자들의 개수를 저장 n_characters = len(all_characters) print(..
![](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/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..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhjfTN/btrLE8SdYRF/UOWO9KwmdPupYsIAZPLKuK/img.png)
Pytorch란? 파이토치는 2017년 초에 공개된 딥러닝 프레임워크로 GPU를 활용하여 인공 신경망 모델을 만들고 학습시킬 수 있게 도와줌 Numpy라이브러리에 비해 계산이 간단하고 병렬 연산에서 GPU를 사용하므로 CPU보다 속도면에서 월등히 빠름 유명한 딥러닝 프레임워크인 텐서플로(tensorflow)는 'Define and Run' 방식으로 연산 그래프를 먼저 만들고 실제 연산할 때 값을 전달하여 결과를 얻고 파이토치(Pytorch)는 'Define by Run' 방식으로 연산 그래프를 정의하는 것과 동시에 값도 초기화되어 연산이 이루어지고 연산 속도도 빠르고, 적어도 밀리지는 않음 Pytorch 설치하기 https://pytorch.org/ PyTorch An open source machine..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/CULgR/btrKIreHnRy/po9PjTIMktunEwaIcMmMp0/img.png)
랜덤 포레스트(Random Forest) 배깅 방식을 적용한 의사결정 나무(Decision Tree)의 앙상블 따라서 사이킷런의 BaggingClassifier에 DecisionTreeClassifier를 넣어 만들거나 RandomForestClassifier를 사용 사이킷런 from sklearn.model_selection import train_test_split from sklearn.datasets import make_moons X, y = make_moons(n_samples=500, noise=0.3, random_state=42) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) 사이킷런의 moons 데이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bROOgA/btrKMEYq6MQ/gzjh1iJJrIVsTJ8qNdJ831/img.png)
앙상블 학습 가장 좋은 모델 하나보다 비슷한 일련의 예측기로부터 예측을 수집하여 더 좋은 예측을 얻는 것 투표 기반 분류기 정확도가 80% 정도 되는 분류기를 여러 개 훈련시켰다고 가정 더 좋은 분류기를 만드는 매우 간단한 방법은 각 분류기의 예측을 모아 가장 많이 선택된 클래스를 예측 이렇게 다수결의 투표 즉, 통계적 최빈값으로 정해지는 분류기를 직접 투표(hard voting)이라 함 이 다수결 투표 분류기가 앙상블에 포함된 개별 분류기 중 가장 뛰어난 것보다 정확도가 높은 경우가 많음 각 분류기가 약한 학습기(weak learner)일지라도 많고 다양하면 앙상블은 강한 학습기(strong learner)가 될 수 있음 큰 수의 법칙 import numpy as np import pandas as p..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vJ3lQ/btrKsOokQxZ/evNW8VzRp8gNSxGGkrunA0/img.png)
의사결정 나무(Decision Tree) 분류와 회귀 작업, 다중출력 작업도 가능한 다재다능한 머신러닝 알고리즘 최근에 자주 사용되는 강력한 머신러닝 알고리즘 중 하나인 랜덤 포레스트의 기본 구성 요소 1. 의사결정 나무 학습과 시각화 from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X = iris['data'][:, (2, 3)] y = iris['target'] 사이킷런의 iris 데이터를 불러오고 X에 PetalLength, PetalWidth y에 꽃의 품종인 Setona, Versicolor, Virginica를 할당 tree_clf = DecisionTr..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/8p2iA/btrJ4dBeTqe/Wn4eamKSaVOkcIiFK3uJWK/img.png)
안녕하세요! 오늘은 로지스틱 회귀모형을 Python으로 돌려보겠습니다. 다른 포스팅에도 개념은 설명되어 있어 간단하게 말하고 넘어갈게요. 로지스틱 회귀는 이진 분류기로 샘플이 특정 클래스에 속할 확률을 추정합니다. 추정 확률이 50%가 넘으면 그 샘플이 해당 클래스에 속한다고 예측합니다. 0 이면 음성 클래스, 1이면 양성 클래스로 보통 분류합니다. 이제 Python의 iris데이터를 활용하여 분류해볼게요! 라이브러리 불러오기 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import sklearn import warnings warnings.filterwarnings('ignore')..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/erMFW5/btrBZx87rGw/U8MqwPXcgy2PPYBpOJ9Iy0/img.png)
안녕하세요. 머신러닝을 돌리기 전 전처리 작업 중 하나인 인코딩에 대해 살펴볼게요. 전 포스트에서 말씀드렸기에 간단하게 설명한다면 인코딩은 문자형 변수를 수치형 변수로 변환해주는 것입니다. 저번 포스팅에서는 Label Encoding을 알아봤고 이번에는 One-Hot Encoding을 살펴볼게요. One-Hot Encoding 머신러닝을 공부하신 분들이라면 한 번씩은 들어보셨을 One-Hot Encoding입니다. One-Hot Encoding은 말 그대로 하나만 Hot하고 나머지는 Cold 한다는 뜻입니다. 새로운 칼럼을 추가하여 해당하는 칼럼에만 1을 표시하고 나머지 칼럼에는 0을 표시합니다. 이제 Python을 통해 One-Hot Encoding을 진행해보겠습니다. 라이브러리 불러오기 import ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6YEXO/btrB2rmvi3i/EzSyjYl7DpA1aDks0GTgRk/img.png)
안녕하세요. 머신러닝을 돌리기 전 전처리 작업 중 하나인 인코딩을 살펴보겠습니다. 머신러닝 알고리즘은 대부분 문자형 데이터를 이해하지 못하므로 수치형 데이터로 인코딩하는 작업은 거의 필수적이라고 할 수 있습니다. 그래서 오늘은 사이킷런의 대표적인 두 가지 인코딩 방법 중 Label Encoding을 알아보겠습니다. Label Encoding Label Encoding은 어떤 피쳐의 n개의 범주형 데이터를 0 ~ n-1의 수치형 데이터로 변환합니다. 이때 이 변환 값이 수치적 차이를 나타내는 것은 아닙니다. 따라서 선형 회귀 등의 알고리즘에는 적용하는 것은 적합하지 않고 트리 계열의 알고리즘에는 적용해도 괜찮습니다. 이제 Python을 통해 Label Encoding을 살펴보겠습니다. 라이브러리 불러오기 ..