Python(215)
-
[ Python ] Cross Validation 병렬로 돌리고 BoxPlot 시각화
(상황) 여러 가지 테이블들이 있고 각각을 GBM으로 모델링을 하고 CrossValidation을 하고 나서 결과값을 box plot으로 시각화하고 싶다. Result라는 dictionary에 총 8개의 방법론을 사용해서 Imputation 된 값들이 들어가 있다. 이것들을 모델은 Gradient Boosting Machine 이용하고 CrossValidation을 진행하고 Boxplot을 그릴 것다. 시간이 오래 걸릴 것 같아서 joblib을 사용하여 Parallel 하게 돌리도록 했다. 모델링 ㄱㄱ! from joblib import Parallel, delayed from sklearn.model_selection import KFold from sklearn.ensemble import Gradi..
2019.11.07 -
[ Python ] 신뢰구간 시각화하기 (lineplot or fill_between)
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ 시각화를 할 때 신뢰구간을 같이 그려줘야 하는 경우가 있다. 그때 단순히 선으로 표시를 해줄 수도 있고 영역을 색칠해서 표현하는 경우가 있는데, 여기선 영역을 색칠하는 경우에 대해서 알아보고자 한다. 간편하게 그리는 방법은 lineplot 일일이 그리는 방법 (fill_between) 사용하는 방법이 있다. seaborn lineplot timepoint 쌓아 놓으면 안에서 해주는 구조 import numpy as np import pandas as pd value = np.random.normal(loc = 0 , scale = 1.0 , size= (10000,1)) event = np.random.randint(0,2 ,..
2019.10.31 -
[ Python ] 파일 폴더 관리시 자주 사용하는 것
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ # copy file shutil.copyfile( from , to ) # copy folder shutil.copytree(from , to ) # delete file or folder shutil.rmtree(file path , ignores_erros= True) # move file shutil.move( from path , to path ) # 파일 존재 여부 os.path.isfile( path ) # config 간단 사용 config = configparser.RawConfigParser() config.add_section("name") config.set("name" , "tag1" , somethin..
2019.10.31 -
[ Python ] Pandas idxmin , idxmax, pd.cut 함수 알아보기
데이터셋 만들기 from sklearn.datasets import load_iris import numpy as np import pandas as pd Iris = load_iris() concat = np.concatenate( (Iris.data , np.array(Iris.target).reshape(-1,1)) , axis = 1) data = pd.DataFrame(concat , columns = Iris.feature_names + ["Species"]) 가끔 먼가 데이터에서 가장 작은 값? 큰 값을 찾고 싶을 때가 있다. 그럴 때 보통 코드는 다음과 같다. idxmin() , idxmax() ## min data[data['sepal length (cm)'] == data['sepal ..
2019.10.29 -
[ Python ] Gmail로 메일 보내기
먼가 돌아가는 것에 대해서 error 같은 것을 빨리 체크하기 위해서 logging 작업을 하긴 하지만, 다른 작업과 병행을 하다보면 확인하기가 어려울 때가 있어서, 시간을 낭비할 우려가 있다. 그래서 이런 문제를 해결 하기 위해 에러가 날 때 메일을 보내주면, 더 쉽게 파악할 수 있지 않을까 생각을 했다. 그래서 오늘에서야 자료를 찾고 시도해봤다! 역시 파이썬에서는 이미 구현이 되어 있어서 참 편하게 아래 방법을 잘 따라 하니 바로 되었다! 일단은 구글 메일로 보내는 것을 할 예정이고, 구글 아이디에서 해줘야하는 것이 있다. 네이버도 된다고 하니, 아래 medium url을 눌러서 해보시면 된다! 구글 계정 로그인 -> 보안 -> 보안 수준이 낮은 앱으로 엑세스를 사용 나의 보안을 주고 편리함을 얻자 ..
2019.10.26 -
[ Python ] Loop ProgressBar 구현물
Python에서 Loop를 돌릴 때 유용한 ProgressBar 구현체 여기다가 먼가 중간 값으로 보고 싶을 때 함수에 추가하면 Loop마다 쌓여서 보이지 않고 그대로 보여줌. def printProgress(iteration, total, prefix = '', suffix = '', decimals = 1, barLength = 50): formatStr = "{0:." + str(decimals) + "f}" percent = formatStr.format(100 * (iteration / float(total))) filledLength = int(round(barLength * iteration / float(total))) bar = '#' * filledLength + '-' * (barLe..
2019.10.23 -
Kafka MultiProcesisng Queue Test
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ ## Producer from time import sleep from json import dumps from kafka import KafkaProducer import numpy as np def on_send_success(record_metadata): print("topic : {} , partition : {} , offset : {}".\ format( record_metadata.topic , record_metadata.partition , record_metadata.offset)) def on_send_error(excp): log.error('I am an errback', exc_info=excp) p..
2019.10.21 -
[ Python ] scikitplot 다양한 metric plot 제공
분석을 하다 보면 여러 Metric Plot을 그려야 하는 경우가 많다. 그래서 R에서는 제공하는게 많지만, 은근히 파이썬에서는 사람이 그려야 하는 게 많았다. 이번에는 ScikitPlot 라는 패키지를 소개하려고 한다. 여기서는 여러 가지 Plot을 제시해준다. 나중에 쓸 수도 있으니 간단한 사용법을 미리 정리! ## Multiclass ROC CURVE Confusion Matrx Plot silhouette precision_recall ## Binary lift_curve cumulative_gain ks_statistic calibration_curve ## Kmeans elbow curve (optimal cluster) ## PCA pca component variance import mat..
2019.10.19 -
[ Python ] plotly express facet_row , col scale free 하는 법 공유
개인적으로 R을 하였을 때 ggplot을 자주 사용하였다. 거기서 facet_row를 통해서 여러 변수를 분리해서 표현하는데, R에서는 scales = free라는 것을 제공해서 아주 예쁘게 그려준다. 그러나 파이썬에서는 이런 시각화를 ggplot만큼 grammar로 편하게 해주는 것을 찾지 못하다가, plotly express가 나올 때 딱 ggplot의 느낌을 받았다. 그래서 몇가지 실험을 해보다가 아쉬운 것을 발견했다. 먼가 변수별로 나눠서 표현하고 싶어서 해보니 다음과 같이 나왔다. import numpy as np d = pd.DataFrame(np.concatenate( (features , np.expand_dims(target, axis = 1)), axis = 1)) d.columns =..
2019.10.18 -
[ Python ] aiokafka 가 python-kafka 보다 나은 점
기존에 작업을 python-kafka로 겨우 익숙해졌는데, 비동기적인 처리 방법이 필요하게 됐다. 그래서 찾아보니 비동기 코 루틴인 asyncio 방식이 필요하게 됐다. 처음에는 지나친 패키지였지만 asyncio 개념이 필요하게 돼서 다시 보게 되니 생각보다 간편했다. 그래서 찾은 것이 aiokafka이다! 일단 이걸 하게 된 이유는 다음과 같다. asyncio를 적극적으로 쓴다. python-kafka 보다 거의 동일한 형태라서 익숙하다. python-kafka 보다 좀 더 성능이 좋다고 한다. URL python-kafka는 속도를 중시하지 않았지만, 자바 클라이언트 변화에 빠르게 변화했다. Producer 뿐만 아니라 Consumer도 기능이 python-kafka 보다 훨씬 다양하다. batch ..
2019.10.01 -
[ Python ] modin 으로 pandas 더 빠르게 사용하기
https://modin.readthedocs.io/en/latest/installation.html 1. Installation — Modin 0.6.0 documentation 1. Installation There are a couple of ways to install Modin. Most users will want to install with pip, but some users may want to build from the master branch on the GitHub repo. 1.1. Installing with pip 1.1.1. Stable version Modin can be installed with pi modin.readthedocs.io 후배가 한번 언급을 해서 궁금해서 ..
2019.09.28 -
Conda 가상환경을 shell script 한개로 여러 Python 환경 실행시키기
conda 나 virtualenv 같은 경우에는 환경을 여러 개를 만들 수 있다. 그렇다면 이러한 환경들을 여러 개로 다루면서, 사용하고 싶은 경우가 있다. 이 글에선 결론적으로 sh로 실행을 할 것이고, 그전에 일단 각각의 환경에 대해서 다른 버전을 제공하는지를 확인해보자. 일반적으로 환경에 접속을 하고 나서 실행을 한다. 보통은 activate를 하고 나서, 해당 파이썬에서 script를 실행한다. ## version check conda info --envs conda activate py36 python test.py 하지만 이런 경우에는 sh을 이용할 때 문제가 발생한다. 일단 sh에서 conda activate 를 하고 python을 실행해주면 될 것 같기도 한데...(테스트 안 해봄) 그래서..
2019.09.21