Python(215)
-
Activation (SQNL , Soft Cliping , Gaussian)
Activations 중에서 보통 Relu 계열들이 잘 되기 때문에 그 부분에 대해서 많이 발전을 한 것 같다. 하지만 나는 생성 모델에 관심을 가지고 있다 보니, Scaling을 특정 구간에 가두는 그런 함수들이 필요한데 그 예로는 tanh(-1, 1)와 sigmoid(0 , 1) 같은 함수가 있다. 하지만 이 함수들은 미분한 것을 이용하다보면 많은 한계가 있다는 것을 알 수 있다. 이런 것들을 사용하면 Gradient Update 하는 방식으로 하는 것에서 큰 문제가 생긴다. Layer를 깊게 쌓을 수록 Activation의 영향력이 점점 줄어든다는 단점이 분명히 존재한다. 이러한 것을 해결하기 위해 찾은 것들이 Square Nonlinearity (SQNL) ( -1 , 1) 과 Soft Clipi..
2019.06.09 -
Python Group 별로 Bar Graph 그릴 때,
그룹별로 시각화할 일이 있어서 찾아보는데, R과 같이 제공해주는 것도 있지만, 잘 생각해서 해야 하는 것도 있다 목적은 train과 test 별로 각각의 Category 비율 파악을 하는 것이 목적 f, ax = plt.subplots(3,4 , figsize = (20,20)) axx = ax.flatten() f2, ax2 = plt.subplots(3,4 , figsize = (20,20)) axx3 = ax2.flatten() for axx2 , axx4 , j in zip(axx, axx3, catcols) : #output = data.iloc[index_info[0]].reset_index(drop=True).iloc[idx][j].value_counts() tr = data.iloc[ind..
2019.06.09 -
UMAP은 어떻게 작동할까? (Uniform Manifold Approximation and Projection) - 3
https://data-newbie.tistory.com/171 UMAP은 어떻게 작동할까? (Uniform Manifold Approximation and Projection) - 2 https://data-newbie.tistory.com/169 UMAP은 어떻게 작동할까? (Uniform Manifold Approximation and Projection) - 1 저번에는 UMAP 실습 코드를 공유했는데, 이번에는 어떻게 작동하는지에 대해서, 공부해야 할.. data-newbie.tistory.com Finding a Low Dimensional Representation 그냥 사용만 하면 마음이 편한데, 알려고 하니 너무 어렵네요 예를 들면 통상적인 숫자 2 나 3에 퍼지의 사고방식을 도입하면 '..
2019.06.08 -
Scipy에서 제공하는 분포간 거리 함수(Statistical Distance)와 차이점.
우연히 유튜브에서 추천해준 2018 Detecting Anomalies Using Statistical Distances 이 내가 관심이 있는 Anomaly detection과 Statistica Distance라서 듣게 되었고, 좋은 것을 많이 얻어서 공유합니다. 그렇다면 Quantile로 하면 되지 않느냐? 이렇게 간단한 통계량 값만 이용해서는 충분하지 못하다. 그러므로 이런 통계량 값들을 결합해서 사용하거나, 통계적 거리를 사용해야 한다. Statistical Distance Kolmogorov-Smirnov Distance 하지만 약간 기존 family가 아닌 쌍봉 같은 경우가 나오는 경우 KS로 거리를 재게 되면, 다음과 같은 문제가 생긴다. 멀리 떨어져있어도 거의 같은 값으로 표현이 된다. 그..
2019.06.08 -
[변수 생성] AutoEncoder로 파생변수 만들기 -2 (모델링 파트) Catboost
https://data-newbie.tistory.com/163 AutoEncoder로 파생변수 만들기 데이터 분석을 하다보면, 새로운 파생변수를 만들어야 할 때가 있다. 개인적으로 나도 그러한 부분에 관심이 있어서 여래개로 포스팅을 했는데, 한번 보시면 도움이 될 것 같다. https://data-newbie.tistory.com/.. data-newbie.tistory.com ## 모델링 파트 이전에 AutoEncoder에서 얻은 Code값을 이용해서 모델링을 해봤습니다. 모델은 tree-based model 중에서 그나마 Parameter에 크게 의존하지 않는다는 catboost로 하였습니다. 궁금하신분은 https://data-newbie.tistory.com/131?category=750846 ..
2019.06.02 -
[ Python ] Python에서도 R처럼 data.table을 사용할 수 있어요.
Python에서 대부분의 데이터를 읽을 때 주로 Pandas를 사용하지만, 작은 데이터를 읽을 때는 상관이 없다. 하지만 최근에 34GB짜리를 읽어보려고 했는데, 시간을 많이 잡아먹어서 스트레스를 너무 많이 받았다. 머 Spark나 이런 걸 사용하면 된다고 하지만, 전처리를 좀 하고 싶었던 게 있었는데, 아직 내가 Spark 같은 것을 잘 사용하지 못해서 결국 Pandas로 하였다. data.table은 알려진 바로는 단일 머신으로 했을 때 가장 빠르게 데이터 핸들링을 할 수 있는 도구다. 이 글에서는 100GB까지 된다고 하니, 잘 사용할 줄 알아야겠다. ## 리눅스 버전 # If you have Python 3.5 pip install https://s3.amazonaws.com/h2o-release..
2019.06.02 -
[Python] Lightgbm Bayesian Optimization
이전에는 catboost였지만, 여기선 Lightgbm을 Bayesian Optimization을 해봤다. 일단 성능은 둘 다 잘 나오는데, 개인적으로 쭉 살펴보면 오히려 lightgbm 알고리즘이 f1 score가 더 잘 나온다. 암튼 둘 다 좋은 알고리즘이니 파리 미터 튜닝을 자주 할 테니 이렇게 베이지안 최적화를 연습해본다. from bayes_opt import BayesianOptimization def learning_rate_005_decay_power_099(current_iter): base_learning_rate = 0.05 lr = base_learning_rate * np.power(.99, current_iter) return lr if lr > 1e-3 else 1e-3 def..
2019.06.01 -
[Python] Catboost Bayesian Optimization
최근에 Tree based 모델을 좀 보고 있는데, Python에서 categorical 변수를 One-hot을 하지 않고 하는 알고리즘은 현재, lightgbm과 catboost인 것 같다. 개인적으로 원핫을 안 좋아해서 인지, xgboost는 별로 하기가 싫다. 물론 tree-based model이라서 다차원으로 갔을 때의 고민이 좀 없겠지만, 현재 데이터중에 날짜 데이터도 있는데.. 이것을 onehot 하면 너무 Sparse하지 않겠는가............... 그래서 나는 여기선 catboost를 parameter tuning을 해보려고 한다. https://data-newbie.tistory.com/131 이전에 간략하게 논문리뷰를 해봤다. CatBoost란? unbiased boosting ..
2019.06.01 -
[ 변수 생성] pandas groupby 와 merge로 파생변수 넣기
인터넷에 R처럼 파이썬에서 Groupby후 컬럼을 바로 생성하는 게 잘 보이지 않아서 공유합니다. data[['Location','month' , 'Sunshine']].head() 이러한 변수가 있을 때, 해보고 싶은 것은 지역과 월을 이용하여서 평균 온도를 넣고 싶을 때가 있다. 그럴 때 다음과 같이 하면 된다. newdata = data.groupby(['Location','month'], group_keys=False).apply(lambda x: x.Sunshine.mean() ).reset_index() newdata.columns = ["Location", 'month', "Shunshine_mean"] data2 = pd.merge(data, newdata, how='left') 다음과 같..
2019.05.21 -
[ Python ] 이미지를 gif로 바꾸는 방법
Python 안에서 사진을 gif로 만들고 싶을 때가 있다. 나도 그 부분에 대해서 하고 싶었지만 알지 못했는데, 오늘 다른 코드를 보다가 방법을 알게되서 공유하려고 한다. os.system('convert -delay 15 -loop 0 {0}/posterior_predictive_map_frame*png {0}/posterior_predictive.gif' .format(logdir)) 이런식으로 특정 dir에서 원하는 것만 posterior_predictive_map_frame*png 같이 조건을 줘서 만들어줄 수 있다. Loop에 간단하게 쓸 수 있는 구조라서 좋은 것 같다. 이만!
2019.05.11 -
Anomaly Detection Using VAE
일단 neural network 기반으로 하는 것이 아닌 일반적인(?) ML로 Anomaly Detection을 해주는 패키지부터 소개해드리겠습니다. 종류는 엄청나게 많습니다. https://pyod.readthedocs.io/en/latest/ Welcome to PyOD documentation! — pyod 0.7.0 documentation [AJHuszarPvdH12]JHM Janssens, Ferenc Huszár, EO Postma, and HJ van den Herik. Stochastic outlier selection. Technical Report, Technical report TiCC TR 2012-001, Tilburg University, Tilburg Center for Co..
2019.05.11 -
Overfit? or dissimilar train and test? (medium 번역 및 생각)
https://towardsdatascience.com/how-dis-similar-are-my-train-and-test-data-56af3923de9b How (dis)similar are my train and test data? Understanding a scenario where your machine learning model can fail towardsdatascience.com 해당 내용이 굉장히 흥미로워서 공유를 하면서 나도 연습을 해보려고 작성했다. 흥미로운 이유는 만약 train으로 함수를 추정하고 test로 평가했을 때 성능이 안좋은 이유는 우리는 보통 overfitting이 발생했다고 한다. 하지만 이 글에서는 그 문제일수도 있지만, 새로운 문제를 제기한다. 실제 train 분..
2019.05.08