Sso-끄적거리다.
-
[python] [pandas] 특정 칼럼 기준으로 값이 개수 구해서 새로운 칼럼에 추가하기 ( = 엑셀의 countif 함수)Data miner/Development log 2021. 1. 20. 16:31
# 적용 전 Color Value Red 100 Red 150 Blue 50 NaN 30 # 적용 후 Color Value Counts Red 100 2 Red 150 2 Blue 50 1 NaN 30 0 Color열 기준으로 같은 값을 가지는 개수를 Counts 열로 추가하고자 한다면, 다음의 코드를 사용한다. df['Counts'] = df.groupby(['Color'])['Value'].transform('count') 다만, 컬럼의 값이 Null(Nan) 비어 있는 경우, 비어 있는 값의 개수들을 따로 카운팅하지 않는다. 이에, NaN 인 컬럼의 값들은 Counts 열에서 0의 값을 가진다.
-
[Machine Learning] Time series data란?Data miner 2021. 1. 18. 23:40
시계열 데이터(Time series data)는 데이터 중에서 시간 요소가 있는 데이터를 일컫는다. 여러 데이터에서 시간의 요소만 넣으면, 시계열 데이터가 될 수 있으므로 일상의 거의 모든 데이터가 시계열 데이터가 될 수 있다. 머신러닝에서 시계열 데이터는, ... 1) 특정 시간대의 데이터의 값을 예측하거나 데이터의 경향성을 보는데 유용하게 활용될 수 있다. 2) 어느 정도의 과거 데이터가 충분히 쌓인 경우, 현재의 흐름을 읽기 위해, 현재의 데이터를 과거의 데이터에 덧대어 현재의 상황을 파악할 수 있다. 3) 특정 시간대의 데이터가 소실된 경우, 소실된 시점의 전후 데이터를 참고하여 공란의 값(Null값)의 데이터를 합당한 값으로 대체할 수 있다. 4) 이상의 값을 탐지할 수 있다(detect ano..
-
[tf.Keras] Keras.models의 Model과 keras.layers의 LambdaData miner/Development log 2021. 1. 15. 16:57
케라스의 Model 클래스를 사용하고자 할 때, Keras의 Layer의 형식을 따라야 한다. 1) 다른 텐서플로우의 클래스/함수를 이용하여 이 결과값을 활용하는 경우, 2) Keras Model에 일괄적으로 input데이터를 넣는 게 아닌, 데이터를 직접 로드하여 Custom layer을 지정하는 경우 Keras Layer 형식으로 통일시켜주는 Keras.layers의 Lambda 함수를 사용한다. lambda_layer1 = Lambda(lambda x: (외부 데이터를 받아서 변형하거나, 다른 tensorflow의 output을 단순히 넣어주면 된다.)(previous_layer) #사용예시 x = Lambda(lambda x: X[:,t,:])(X) y = Lambda(lambda x: tf.im..
-
Data AugmentationData miner/Development log 2021. 1. 7. 17:30
이미지 분류 작업을 한다고 가정해보자. 모델을 충분하지 않은 데이터로 학습시킬 경우, 학습데이터에 존재하지 않은 분류 클래스별 특징으로 인해, 모델의 정확도가 떨어질 수 있다. 이 경우, 이미지를 단순히 변형시키는 방식으로 Augmentation으로 하여, 모델의 정확도를 향상시킬 수 있다. 아래의 사진을 보자. 왼쪽 고양이의 원본 사진은 고양이의 귀가 위를 향한 사진이었다. 누워 있는 고양이를 식별하기 위해서, 우리는 왼쪽 사진을 오른쪽으로 45도 정도 회전시켜 학습시킬 수 있다. 우리가 기대하는 효과는, 누워있는 고양이의 귀의 특징을 변형된 왼쪽 사진을 활용해 학습시키는 것이다. Data augmentation는 Keras의 preprocessing의 ImageDataGenerator의 클래스를 활용..
-
[딥러닝 학습 팁] Gradient checkingData miner 2020. 12. 12. 20:58
Gradinet checking은 Forward propagation, Backward propagation 이후, backward propagation으로 구해진 역전파값이 정확한지 점검하는 과정이다. 학습 단계에서 사용하는 것이 아니라 디버깅 단계에서 사용한다. 왜냐하면, 한 번 학습할 때마다 Gradient checking할 경우 시간이 너무 오래 소요되기 때문이다. 수식으로 정의된 Derivative(혹은 Gradient)값과 Backward progation으로 구해진 값이 동일하거나 근소한 차이를 보이는지 확인한다. 구체적으로, delta에 속하는 여러가지 파라미터들(W,b...)들을 각 레이어에 속한 각 뉴런값들을 n by 1차원의 메트릭스로 표현한다. (n=전체 모델이 학습시켜야 하는 파라..
-
[딥러닝 학습 팁] Drop outData miner 2020. 12. 9. 18:30
특정 모델이 학습 데이터에 과학습 되었을 때만 사용하는 기술이다. 학습하는 데이터의 수가 적은 경우, 딥러닝 모델이 데이터의 노이즈 부분까지 세밀하게 학습하여 궁극적으로 테스트 데이터에서 좋은 성능을 내지 않을 수 있다. 테스트 데이터와 학습 데이터의 분포가 동일함에도 이러한 문제는 발생한다. 학습하는 데이터의 수가 충분하여 모델이 과학습 되지 않았다면, 굳이 사용하지 않아도 된다. 여러 모델의 결합이 머신러닝의 성능을 높여줄 수 있으나, 이러한 접근 방식은 비용이 많이 드는 방식이다. 여러 모델은 각기 다른 아키텍처를 가지고 있어야 하며, 다른 데이터에서 학습된 것이어야 하기 때문이다. Dropout은 이러한 이슈를 해소시켜준다. Dropout은 모델의 과학습을 방지하기 위한 Regularization..
-
[Machine learning] Evaluating metric 의 역할 및 설정하는 방법Data miner/Algorithm & Data structure 2020. 11. 22. 20:09
머신러닝의 프로세스에는 1) 아이디어를 설정하고, 2) 특정 아이디어를 시도해보고, 3) 그 아이디어가 목적에 맞는 것이었는지 확인하는 단계가 있다. 아이디어를 구체화 할 수 있는 알고리즘 모델이 문제를 푸는 데 있어서 적절한 것인지, 성능을 평가하기 위해서 평가 지표(Evaluating metric)를 사용한다. 어떤 알고리즘이 우수한지 가늠하기 위해서 보통은 하나의 평가 지표를 사용하고자 하며, 머신러닝 영역에서는 정밀도(Precision)와 재현율(Recall)의 조화 평균인 F1 score을 사용한다. 그러나, 하나의 평가 지표만으로 하나의 알고리즘을 선택하기가 어려울 수 있다. 모델을 만들거나 모델을 실제 응용 분야에서 활용하는데 있어서 영향을 미치는 외적 조건들을 최소한으로 만족시켜야 하는 경..
-
[IBM C:LOUDERs] 쿠버네티스 시작하기카테고리 없음 2020. 10. 21. 22:01
도커 컨테이너*, 도커 스웜, 도커 컴포즈 등의 유용한 도구 외의 이러한 개념들을 모두 아우를 수 있는 쿠버네티스(Kubernetes)가 있다. 쿠버네티스는 특히 수많은 컨테이너를 관리할 때 유용하다. 쿠버네티스의 장점으로는 크게 4가지가 있다. *컨테이너는 어플리케이션을 이루는 종속성 요소(런타임, binary 파일, 라이브러리, 데이터와 같은 것)를 패키징하는 것을 뜻한다. CNCF와 쉽게 연동될 수 있는 오픈소스 프로젝트이다. 이용률에 기반하여 서비스를 자동으로 확장 또는 축소할 수 있게 한다. 컨테이너 기반의 서비스 운영에 필요한 오케스트레이션 기능을 지원한다. 어디에서나 사용할 수 있도록 구축되어 있다. 쿠버네티스를 시작하는 방법에는 두 가지 접근 방식이 있다. 먼저 자체 서버 환경에서 쿠버네티..