-
[DAYCON] 타이타닉 생존자 예측python/오늘의 파이썬 2021. 11. 24. 14:47
1. 라이브러리 및 데이터 라이브러리 불러오기 import pandas as pd #판다스 패키지 불러오기 from sklearn.linear_model import LogisticRegression # 로지스틱 회귀 모델 불러오기 from sklearn.tree import DecisionTreeClassifier # 의사결정 나무 모델 불러오기 data 불러오기(pd.read_csv()) train = pd.read_csv('/media/train.csv')# 모델 학습 파일 test = pd.read_csv('/media/test.csv')# 모델 시험지 파일 submission = pd.read_csv('/media/submission.csv') #답안지 파일 2. 탐색적 자료분석 pd.DataF..
-
[DAYCON][오늘의 파이썬] Lv4 교차검증과 모델 앙상블을 활용한 와인 품질 분류하기python/오늘의 파이썬 2021. 11. 22. 16:17
[EDA] 1. seaborn pairplot pairplot은 데이터에 들어 있는 각 컬럼(열)들의 모든 상관관계를 출력한다. 3차원 이상의 데이터라면 pairplot 함수를 사용해 분포도를 그려서 쉽게 모든 변수 간의 상관관계를 얻을 수 있다. pairplot은 grid(격자) 형태로 각 집합의 조합에 대해 히스토그램과 분포도를 그려준다. 'data' 변수에 train의 "fixed acidity"부터 "chlorides"까지의 변수를 저장한다. data = train.loc[:, 'fixed acidity' : 'chlorides'] 'data'의 pairplot을 그린다. sns.pairplot(data) 2. seaborn distplot distplot 함수는 데이터의 히스토그램을 그려준다. ..
-
[모두를 위한 딥러닝 시즌2][Lab 12](2) RNN TensorFlow모두를 위한 딥러닝 시즌2 2021. 11. 17. 16:43
tf keras를 사용해 RNN을 직접 코드로 구현해보자. 두 가지 방법 - 특정 셀을 선언하고 이를 LOOP 하는 방식 - 이 두가지를 결합한 api를 활용하는 방식 입력으로 전달 받는 데이터는 (betch size x sequence length x input dimension)으로 전 처리되어야 한다. sequence가 1인 데이터를 전처리해서 RNN을 적용하는 코드는 다음과 같다. hidden size가 2인 RNN을 만들어서 전처리해준 데이터들을 넣어준다. 이때 outputs 변수는 전체 sequence에 해당하는 hidden state 값들을 가지고 있고 states 변수는 마지막 hidden state 값만 가지고 있기 때문에 shape이 다르다. Unfolding to n sequences..
-
[모두를 위한 딥러닝 시즌2][Lab 12] RNN모두를 위한 딥러닝 시즌2 2021. 11. 17. 11:29
우리가 사용하는 데이터에는 Sequence data가 많다. 단어를 읽을 때 하나의 알파벳이 아닌 그 앞과 뒤의 알파벳들까지 이해해야 전체 한 단어를 이해할 수 있다. 입력이 있으면 연산을 통해 출력을 뽑는 간단한 NN이나 CNN으론 이것이 어렵다. 그래서 탄생한 것이 현재의 state가 그다음 state에 영향을 미치는 Recurrent Neural Network이다. x라는 입력값과 이전의 RNN에서 나온 old state 값을 같이 사용해서 함수 f를 적용한 것이 출력 값 ht다. Vanilla Recurrent Neural Network 최종 출력 y가 몇 개의 벡터로 나올 것인가는 W의 형태(벡터 사이즈)에 따라 정해진다. Language model 현재 글자가 주어졌을 때 다음에 올 글자가 뭔..
-
[모두를 위한 딥러닝 시즌2][Lab 11](2) mnist cnn keras sequential/functional/subclassing/ensemble/keras eager모두를 위한 딥러닝 시즌2 2021. 11. 16. 10:46
이런 과정의 CNN으로 실습을 진행해 볼 것이다. Convolution layer에선 stride를 1로 하고 padding=SAME으로 할 것이다. Pooling layer에선 stride를 2로 하고 padding=SAME으로 할 것이다. 사용할 라이브러리들이다. 첫 번째로 하이퍼 파라미터들을 설정한다. 그리고 check point를 저장할 디렉터리를 설정해주었다. 네트워크를 만들기 전에 데이터를 수집, 가공 분석하는 과정을 거친다. 이제 본격적으로 네트워크를 만든다. Sequential API를 사용해서 벽돌을 한 장 한 장 쌓듯이 모델에 하나씩 layer들을 추가해준다. 모델을 다 만들고 나서 summary()를 사용하면 모델에 대한 정보를 볼 수 있다. 모델을 만들었으면 Loss function..
-
[모두를 위한 딥러닝 시즌2][Lab 11] Convolution Neural Networks모두를 위한 딥러닝 시즌2 2021. 11. 15. 16:33
Convolution Neural Networks는 고양이에게 어떤 이미지를 보여주었을 떄 뇌에서 이미지를 부분부분 나누어서 반응하는 것에 착안해서 탄생하게 되었다. 하나의 이미지(width x hight x depth)를 입력받은 경우, filter는 자신의 크기만큼 입력을 읽어들여, 연산을 수행해서 하나의 값을 만들어낸다. 이때 연산은 'Wx + b'이고 여기에 ReLU 함수를 사용해서 ReLU(Wx+b)가 된다. 이미지 크기와 filter 크기가 주어졌을 때, output의 크기는 얼마가 될까? 이떄 필요한 개념이 stride로, filter가 이미지에서 몇칸씩 이동할 지 나타내는 수이다. 이렇게 filter를 적용하게 되면 output의 크기가 작아져서 정보를 잃는다는 문제점이 있다. Paddin..
-
[DAYCON][오늘의 파이썬] Lv3. 교차검증과 LGBM 모델을 활용한 와인 품질 분류하기python/오늘의 파이썬 2021. 11. 13. 15:10
이번 챕터에서는 딥러닝 모델로 와인의 품질을 예측해볼 것이다. [EDA] 1. read_csv(), info(), shape(), head() 먼저 가장 기본적인 데이터 불러오기, 데이터 정보 관측하기, 데이터 크기 파악하기, 데이터 피쳐 알아보기를 진행한다. read_csv() 메서드를 사용해서 csv 파일을 Pandas DataFrame class로 불러온다. train = pd.read_csv('data/train.csv') info() 매서드를 사용하여 데이터의 피쳐수와 칼럼명, 결측치 여부, Dtype에 대한 정보를 알아낸다. train.info() shape 어트리뷰트를 사용해 데이터의 행갯수, 열 개수를 출력해 데이터의 크기를 파악한다. train.shape head() 매서드를 통해 데이터..
-
[모두를 위한 딥러닝 시즌2][Lab 10] Relu, Weight Initialization, Dropout, Batch Normalization모두를 위한 딥러닝 시즌2 2021. 11. 10. 00:19
Problem of Sigmoid Network에 데이터를 입력해서 나온 output과 ground-truth 값의 차(loss)를 구해서 그 loss 값의 미분 값을 Backpropagation 해서 Network를 학습시킨다. 이때 Backpropagation으로 전달되는 loss를 미분한 것을 gradient라고 한다. 이 gradient 값은 그래프의 기울기 값이라고 할 수 있는데, sigmoid 함수 그래프의 가운데 부분은 0보다 매우 크다. 반면에 극단 좌표의 gradient값은 0에 가깝다(매우 작다). Vanishing Gradient 만약 Neural Network가 딥해서 이런 sigmoid 함수가 많다면 매우 작은 gradient 값들이 많이 곱해져서 결국 gradinet 값이 너무 ..