Python(215)
-
multiprocessing으로 pandas replace 하면 더 빠를까?
피드백을 좋아합니다! 머신러닝을 할 때 category 형식은 숫자 형식으로 바꿔줘야 한다. 이럴 때 가장 쉬운 방법은 cat.codes를 사용하면 빠르게 바꿀 수 있다. category["nameDest"].cat.codes 하지만 가끔 이렇게 바꾼 코드를 다시 바꿔서 사용해야 할 때가 있다. 저런 식으로 5개짜리 category랑 2722362 같이 엄청나게 많은 숫자가 나오는 것을 알 수 있다. 실제로 여러가지 multiprocessing으로도 테스트를 해보고 그냥 해본 것도 해보니 결론적으로 그냥 한 개씩 하는 것이 내가 했을 때는 빨랐다... 왜 그럴까?.... ㅠㅠㅠ 암튼 다음과 같이 결과물을 공유하려 한다. 버전 1 partition을 나눠서 했을 경우 column 별로 multiproces..
2019.05.08 -
Ridge, Lasso, ElasticNet / train, test, coef 값 내뱉는 multiprocessing 함수 만들기
피드백은 항상 좋아합니다. https://github.com/sungreong/TIL/blob/master/Machine_Learning/Ridge%20%26%20Lasso%20%26%20Elastic%20Multiprocessing.ipynb 숙제로 제출해야 하는 게 있어서 만들어 봤습니다. 기본적으로 loop로 해야 하는 구조여서 적어도 모델 만들어지는 것은 multiprocessing으로 하려고 했는데 오히려 느리게 됐다는... 3가지 버전을 보여주려고 합니다. 1. Loop , 2, 잘못된 버전 3. 잘된 버전 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression, Rid..
2019.05.06 -
[변수 생성] 시간 데이터에서 어떤 변수를 새로 만들 수 있을까?
현재 이런 식으로 시간이 관련된 정보가 있다고 하자. 이러한 시간을 다룰 때 나는 아직 경험이 부족해서 막막하게 느껴진다. 머 두시간의 차이를 빼거나 아니면 사람별로 시간을 한개씩 shift(-1) (pandas)를 이용해서 빼서 이동 할 때 시간을 측정해본다던지, 여러가지로 시간을 잘 쓸 수 있을 것 같은데 아직 내공이 부족함을 느낀다. ## 기본적으로 뽑을 수 있는 정보들! * year: 연도 * month: 월 * day: 일 * hour: 시 * minute: 분 * second: 초 * microsecond: 마이크로초(micro seconds, 백만분의 일초) * weekday(): 요일 반환 (0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일) * strftime(): 문자열 반환..
2019.05.06 -
[ Python ] pysnooper 을 활용한 debug 하기
** 유용하셨다면 공감버튼 한번씩 눌러주세요** pip install pysnooper import pysnooper ## 해당 함수 debug 할 때 앞에 error check : 가 붙어서 나온다. @ pysnooper.snoop (prefix = 'error check : ' ) def plus_with_power (a, b , d) : a = a * a b = b * b b = b + d c = a + b return c command 창에 mkdir를 사용해서 my 폴더 안에 log를 만든다. (아무거나 원하는 이름 하면 된다.) @ pysnooper.snoop( '/my/log/file.log' ) def plus_with_power (a, b , d) : a = a * a b = b * b ..
2019.05.02 -
[ Python ] Jupyter에서 multiprocessing을 활용하여 bash 돌리기
** 유용하셨다면 공감버튼 한번씩 눌러주세요** import os , re , time import numpy as np from multiprocessing import Pool path = "/home/advice/Python/SR/" DIR = os.listdir(path) ## 원하는 Scripy ~.py를 찾기 dir2 = [ path + i for i in DIR if re.search("BayesOpt", i)] curr_path = os.getcwd() +"/" + str(date.today()) ## 폴더 추가 if not os.path.exists(curr_path): os.makedirs(curr_path) ## .sh 파일 여러개 생성하기 for idx , i in enumerate..
2019.05.01 -
[ Python ] 절대 경로로 Import 하기
import sys sys.path.append('/home/test') from define import TestClass 참고 사이트 : https://yujuwon.tistory.com/entry/%EC%A0%88%EB%8C%80-%EA%B2%BD%EB%A1%9C%EB%A1%9C-import-%ED%95%98%EA%B8%B0 절대 경로로 import 하기 절대 경로에 있는 파이썬 class를 import하려면 어떻게 해야 할까? /home/test/define.py 란 python 코드가 아래와 같이 있다고 가정하자. class TestClass: def testFunction(self, flag): print "test Function".. yujuwon.tistory.com
2019.05.01 -
알고리즘 체인과 파이프라인
알고리즘 체인과 파이프라인 데이터 변환 과정과 머신러닝을 연결해주는 파이프라인 from sklearn.svm import SVC from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler # 데이터 적재와 분할 cancer = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split( cancer.data, cancer.target, random_state=0) # 훈련 데이터의 최솟값, 최댓값을 계산합니다 scaler = Min..
2018.01.25 -
[ Python ]비지도 군집, 병합군집, 덴드로그램, DBSCAN
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ # 군집 데이터셋 -> 클러스터란느 그룹으로 나누는 것 , 한 클러스터 안의 데이터 포인트끼리는 매우 비슷, 다른 클러스터라는 구분 되도록 하는 것이 목표 분류 알고리즘과 비슷하게 군집 알고리즘은 각 데이터 포인트가 어느 클러스터에 속하는지 할당 (또는 예측) K-평균 군집 K-평균 군집은 가장 간단, 널리 사용하는 알고리즘 어떤 영역을 대표하는 클러스터 중심을 찾는다. 두단계를 반복 1. 데이터 포인트를 가장 가까운 클러스터 중심에 할당 2. 클러스터에 할당된 데이터 포인트의 평균으로 클러스터 중심을 다시 지정 -> 포인트 변화가 없을 때 종료 삼각형 : 클러스터 중심 / 원 : 데이터 포인트 클러스터 중심으로 삼을 데이터 ..
2018.01.09 -
matplotlib 간단한 실습
from collections import Counter from matplotlib import pyplot as plt import numpy as np years = [1950,1960,1970,1980,1990,2000,2010] gdp = [300.2,543.3,1075.9,2862.5,5979.5,10234.2, 15234.4] plt.plot(years,gdp,color="green",marker="o",linestyle="solid") plt.ylabel("billionsof $") plt.show() # 막대 그래프 movies =["a","b","c","d","e"] num_oscars=[5,11,3,6,10] # 막대 너비 default 0.8 # 막대가 가운데로 올수 있도록 왼쪽 좌..
2018.01.02 -
*args 와 **kwargs 사용하기 - 슬기로운 파이썬 트릭 中
이전에 했던 것 def doubler(f): def g(x) : return 3*f(x) return g def cal(x) : return x+10 ff=doubler(cal) print(ff(10)) # (10+10) X 3 def cal2(x,y): return x+y g=doubler(cal2) g(1,2) # -> 임의의 수의 인자를 받는 함수 만들어 줘야 한다 # args kwargs -> argument unpacking # 함수 정의에 주로 사용한다. def magic(*args , **kwargs) : print("unnamed args:",args) print("keyword args:", kwargs) magic(1,2,key="word",key2="word2") # args -> 이..
2018.01.01 -
띄어쓰기 안된 문장 띄어쓰기 적용시키기(네이버 맞춤법 검사기)
텍스트 데이터를 뽑아냈는데 모든 문장이 띄어쓰기가 안 될때 쓰면 좋은 코드입니다. - import codecs from bs4 import BeautifulSoup from konlpy.tag import Twitter import urllib.request import os, re, json, random ret="짐작이엇나갔으므로준구의말을하는데임이네도무슨까닭인지최참판의어머니에관한것을." abc = urllib.parse.urlencode({"_callback": "","q": ret}) data = urllib.request.urlopen("https://m.search.naver.com/p/csearch/dcontent/spellchecker.nhn?" + abc) data = data.read()..
2017.12.26