Computer Science74 [LSTM] LSTM + Fully Connected Layer 두가지 방법 LSTM return_sequences LSTM의 return_sequences=True는 아웃풋 시퀀스 전체를 다음 layer로 넘긴다. return_sequences=False는 마지막 아웃풋만 다음 layer로 넘긴다. 따라서 더 적은 정보를 담고있기 때문에, accuracy가 떨어진다. y3 = LSTM(128, return_sequences=True)(y2) x2 = Dense(64, activation='swish')(y3) # ValueError: Shapes (None, 60) and (None, 1) are incompatible y3 = LSTM(128, return_sequences=False)(y2) x2 = Dense(64, activation='swish')(y3) return_.. 2022. 4. 23. [CNN] Conv1D의 causal padding이란 convolution 연산은 인풋에 커널을 곱해서 feature map을 만든다. 연산을 거칠 때마다 feature map의 크기가 인풋의 크기보다 작아지는데, 이 문제를 해결하는 것이 padding이다. padding을 통해서 인풋의 크기 (spatial dimension)를 유지할 수 있고, 또 인풋의 모든 파트를 feature map에 반영할 수 있게된다. (padding이 없으면 2D 이미지의 중간 부분만 커널이 여러번 지나가게됨) causal padding 시계열 데이터를 다룰 때, 위의 사진처럼 4개의 인풋이 한개의 타겟에 영향을 미친다고 하자. 커널 사이즈를 4로 정해서 인풋과 아웃풋을 매핑할 수 있다. 하지만 2, 3, 4의 값은 4개의 인풋이 전부 존재하지 않는다. causal paddi.. 2022. 4. 22. [cv] 시계열 데이터 Cross Validation - GroupKFold GroupKFold is a variation of k-fold which ensures that the same group is not represented in both testing and training sets. For example if the data is obtained from different subjects with several samples per-subject and if the model is flexible enough to learn from highly person specific features it could fail to generalize to new subjects. GroupKFold makes it possible to detect this kind of ov.. 2022. 4. 16. [FE] 시계열 데이터 lag feature 추가하기 EDA를 통해서 어떤 feature들을 선택하거나 추가할지 정할 수 있다. 시계열 데이터를 다룰 때 lag feature을 추가할 수 있다. lag feature는 이전 타임스텝의 데이터를 뜻한다. lag value가 1이면 한개 전 타임스텝의 데이터, 2이면 두개 전 타임스텝의 데이터이다. 타임스텝별로 어떤 트렌드가 있다면 그만큼을 lag value로 정해준다. 예를들어 일주일마다 어떤 트렌드가 있으면 lag value을 7로 정해줄 수 있다. 또 이전 타임스텝의 데이터가 존재하지 않을 때 Nan값이 들어가기 때문에 pandas fillna()를 이용해서 0으로 바꿔준다. # lag value = 1 # sequence라는 컬럼을 groupby df[feature + '_lag1'] = df.group.. 2022. 4. 15. [Algorithm] Bucket Sort + 347. Top K Frequent Elements Bucket Sort INPUT: 길이가 n인 리스트 (array), 키값이 균등하게 분포한다고 가정 1. 구간을 n등분한 버킷을 만든다. 2. array[i]를 인덱스가 n * array[i]인 버킷의 위치에 추가한다. 3. 각각의 버킷에 여러개의 요소가 있으면 insertion sort로 정렬한다. 리트코드 347. Top K Frequent Elements - Bucket Sort를 이용한 풀이 - n이 인풋 리스트의 길이일 때, 빈도는 1에서 n까지 분포. (가장 작은 빈도수 = 1, 가장 큰 빈도수 = n) - 빈도수는 collections.Counter()로 센다. Counter()은 소를 key로, 빈도수를 value로 가진 딕셔너리를 리턴. INPUT: 숫자를 요소로 가진 리스트 1. 길이.. 2022. 4. 14. [LSTM] LSTM unit, cell, layer에 대한 이해 LSTM unit (num_units), cell? LSTM cell은 3개의 게이트로 구성되어있고, 이를 통해서 기존 RNN보다 긴 시퀀스를 학습할 수 있게된다. 아래 사진은 한개의 cell에 대한 설명이다. keras LSTM의 인풋 중 하나인 num_units는 hidden state (output)의 차원이다. 위 사진의 빨간색 동그라미의 개수가 num_units이다. 따라서 위의 그림은 2개의 units를 가진 하나의 LSTM cell이다. 그리고 다음 cell이 전 hidden state (units, ht)와 input (xt)를 더하고 세개의 게이트를 지나서, 다음 hidden state (units, ht+1)를 계산한다. (= layer의 num_units에 지정해준 개수) 반복되는 L.. 2022. 4. 13. [LSTM] keras.layers.LSTM()의 input_shape LSTM의 첫번째 layer에는 input_shape를 넣어줘야한다. LSTM 모델의 input은 항상 3D이다. = (# of samples, timestep, # of features) 3D로 넣어주기 위해서 기존 데이터를 형식에 맞게 reshape해줘야 한다. 예를 들어서 train.shape가 (1558080, 13) test.shape가 (733080, 13)일 때 train = train.reshape(int(len(train)/60), 60, 13) test = test.reshape(int(len(test)/60), 60, 13) print(f'train reshape: {train.shape}') print(f'test reshape: {test.shape}') # train reshap.. 2022. 4. 10. [Algorithm] Top 75 LeetCode https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU New Year Gift - Curated List of Top 75 LeetCode Questions to Save Your Time New Year Gift to every fellow time-constrained engineer out there looking for a job, here's a list of the best LeetCode questions that teach you core concepts and techniques for each category/type of proble.. 2022. 2. 21. 이전 1 2 3 4 5 ··· 10 다음