분석 Python(343)
-
[TIP / Pandas] Pandas를 보다 올바르게 사용하는 방법
https://towardsdatascience.com/how-to-use-pandas-the-right-way-to-speed-up-your-code-4a19bd89926d How to use Pandas the RIGHT way to speed up your code The Pandas library has been a heavenly gift to the Data Science community. Ask any Data Scientist how they like to handle their datasets… towardsdatascience.com 원글을 참고하면 더욱 좋습니다. Pandas하면 파이썬에서 자주 사용하는 패키지인데요. 이것이 작은 데이터에서는 할만한데, 큰 데이터를 가끔 다룰 때는 ..
2019.05.23 -
[ Python ] UMAP (Uniform Manifold Approximation and Projection)
이것의 관심을 가진 이유는 원래 기본적인 T-SNE은 Visualization 용으로만 쓰는데, 실제로 이 패키지에서는 그 Embedding 한 것을 변수로 사용할 수 있다고 합니다. 그래서 train을 학습시켜서 그걸 다시 test에 transform 하는 식으로 변형도 가능하다고 해서, 일반적으로 우리가 알고 있는 T-SNE와는 달리, 저차원으로 잘 축소해서 사용할 수 있을 것 같아서 포스팅합니다.. https://arxiv.org/abs/1802.03426 https://github.com/lmcinnes/umap https://umap-learn.readthedocs.io/en/latest/parameters.html 제가 한번 해본건데요! 지금 이게 결국 feature로 쓸 수 있다면 KNN C..
2019.05.22 -
[ 변수 생성] 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] 실습 Categorical 변수를 Embedding 해보기
https://data-newbie.tistory.com/90?category=749566 NN에서 Categorical Variables에 대해서는 어떻게 해야할까? 현재 Neural Network는 주로 이미지나 비디어 같이 Unconstructed Data에 대해서 Convolution을 사용해서 feature의 Parameter 개수를 축약하면서 Wide한 구조로 만들 수 데이터에 대한 Representation을 layer에.. data-newbie.tistory.com 이번에는 실습을 해보려고 합니다. 이것의 배경에 대해서는 위에 있으니, 참고해주시면 감사하겠습니다. 일단 직관적인 설명은 Categorical를 Embedding을 통해 더 낮은 차원으로 Embedding을 해줍니다. 곧 wor..
2019.05.20 -
Colaboratory와 tensorboard와 tensorflow를 활용한 GAN 구현물
Colab도 있으니 원하시는 분은 댓글 달아주세요 GPU를 제공하는 갓 구글님께서 만들어주신 Colab으로 간단한 Original GAN 구현물입니다. 추가) 학습된 weight를 구글 드라이브에서 가져오는 것도 했습니다! 추가) GPU 설정하는 것도 넣어놨습니다. 추가) Tensorboard도 코드도 넣어놨습니다. 수정이 안되면 복사해서 사용하세요!
2019.05.18 -
Python에서 RocCurve 시각화하기.
딱히 함수로 지정되어있지 않은 것 같아서 공유합니다. + 저도 나중에 찾아서 보기 편하게 보려고요 ㅎㅎㅎ def rocvis(true , prob , label ) : from sklearn.metrics import roc_curve if type(true[0]) == str : from sklearn.preprocessing import LabelEncoder le = LabelEncoder() true = le.fit_transform(true) else : pass fpr, tpr, thresholds = roc_curve(true, prob) plt.plot(fpr, tpr, marker='.', label = label ) fig , ax = plt.subplots(figsize= (20,10..
2019.05.18 -
[ Python ] xml 파일 형식에서 원하는 부분 빼서 사용해보기
이번에는 xml을 다뤄야 해서, 여기서 원하는 것을 빼는 것을 연습해보겠습니다. 현재 옆에 보시면 annotation 한 것 중에서 저는 object에서 name과 bndbox를 빼고 싶다고 합시다. 그렇다면 어떻게 해야 할까요? 여기서 보시면은 root를 보면 위에서 처럼 annotation이 나옵니다 이제 그다음 그 뿌리를 얻으려면 getchildren을 해야 합니다 해보면 위에 그림과 같이 뿌리를 보여주는 것을 알 수 있습니다. 여기서 보면 알 수 있듯이 결국 어딜 하나를 들어가서 그다음에 뿌리를 보고 또 뿌리를 보고 계속계속 들어가면 되는 구조인 것 같습니다. 그 다음 원하는 것을 얻기 위해 re로 object만 빼냅니다. object_ = [ i for i in child if re.search..
2019.05.16 -
Confusion matrix 시각화
“How to plot wholesome confusion matrix?” by Deepanshu Jindal 유용한 코드니 참고해서 사용하려고하니, 여러분도 애용하세요! https://link.medium.com/dlmxbyUxFW “How to plot wholesome confusion matrix?” A place where words matter link.medium.com def plot_confusion_matrix(cm, target_names=None, cmap=None, normalize=True, labels=True, title='Confusion matrix'): accuracy = np.trace(cm) / float(np.sum(cm)) misclass = 1 - accurac..
2019.05.14 -
Jupyter에서 Plotly로 Bargraph Button 구현하기
Jupyter에서 widget으로도 그래프에서 버튼 기능이 구현이 되는 것으로 알고 있지만, Plotly를 다른 데에서 버튼 기능을 유지한 채로 적용해야 할 일이 있어서, 구현을 연습해봅니다. widget도 언제 가는 해야겠죠?.... https://lineup.js.org/integrations/jupyter.html http://hselab.org/jupyter-widgets-explore-queueing-models.html 아무튼 지금은 https://data-newbie.tistory.com/106 보여준 Lasso coef 결과물을 Plotting 해보려고 합니다. import plotly.plotly as py import plotly.graph_objs as go from plotly.of..
2019.05.12 -
Lasso coordinate Descent 방식으로 최적의 Coef 구하기
전제를 두고 한다. lambda 는 lassocv를 이용해서 지정한다. tolerance 를 줘서 loop를 빠져나가게 한다. x와 y 는 임의로 줬다고 하자 그다음에 soft-thresholding에 다른 모습을 이용해서 coordinate Descent 하는 것을 보이겠다. 다음 과 같이 정리할 수 있다. 구체적인 식은 나중에 잘 써서 올리겠다. 결국 오른쪽의 하단의 식을 계속 업데이트 해나가면서, 점점 최적화를 진행하면 된다. np.random.seed(19510) reg = LassoCV(cv=5, random_state=0).fit(train_x , train_y ) best_alpha = reg.alpha_ x_corr = pd.DataFrame(train_x).corr().values pri..
2019.05.12 -
[ Python ] numpy를 사용하지 않고 argmax나 argmin을 할 수 있을까?
해당 작업은 어디 글을 보다가 궁금하게 되서 진행을 하게되었다 만약 우리가 numpy가 없다면.......... argmin, argmax는 어떻게 해야 할까?! 항상 보면 가장 작은 값 가장 큰 값을 뽑기 위해서 list를 numpy로 바꾸고 하긴 했었다. 그러면 이제 numpy를 안쓰고 해보자. argmax 경우 output = [0.1,0.25, 0.3 ,0.2 ,0.1,0.05] f = lambda i: output[i] max(range(len(output)), key=f) argmin 경우 min(range(len(output)), key=f) 그렇다면 만약 최대 2개를 찾고 싶으면? 해봤는데 코드가 좀 복잡해져서 Numpy의 소중함을 알게 됬다.... output = [0.1,0.25, 0...
2019.05.12 -
[ 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