Hello world!

전체 글 44

[추천시스템] Wide & Deep Learning for Recommender systems paper

#GOOGLE 논문 #추천 시스템 #2016년도 해당 논문은 구글 Play store 앱 추천 시스템을 위한 논문이다. 해당 논문에서는 Memorization + Generalization을 동시에 만족하는 추천시스템을 만들고자 한다. 1. Memorization: linear model 통해서 feature들간의 연관성 파악 2. Generalization: neural network를 통해서 과거에 전혀 발생하지 않았거나 거의 발생하지 않은 새로운 feature 파악 Memorization의 문제점은 학습 데이터에 없던 feature 에 대해서는 파악하기가 힘들다. 이를 DNN 같은 딥러닝 기법을 사용해서 보완 할 수있다. 따라서, 해당 논문은 linear model component와 neural ..

[Python] 데이터를 빠르게 전처리 하는 방법 - (4) pandas apply 병렬처리

np.select나 np.where의 조건을 사용하는 것보다 더 복잡한 연산을 수행해야하는 경우 병렬처리를 통해 빠르게 연산할 수 있다. 1. groupby할 필요없이 apply만 적용하는 경우 from multiprocessing import Pool import multiprocessing print('cpu counts:%d' % multiprocessing.cpu_count()) # cpu 최대 가용 수 확인 def parallelize_dataframe(df, func, n_cores = 2): df_split = np.array_split(n_cores) # n_cores의 개수만큼 df를 나눔 pool = Pool(n_cores) # pool을 core개수만큼 생성 df = pd.concat..

Python 2022.06.06

[Python] 데이터를 빠르게 전처리 하는 방법 - (3) Numpy활용: np.where(), np.select()

1. np.where() condition이 2개인 경우 사용 (apply보다 속도가 훨씬 빠름), 이때, values를 쓸 경우 좀 더 speed up 가능(computation이 handle할 대상이 훨씬 줄어들기 때문) # fraud_reported가 'Y'인 경우 0, 아닌 경우 1 df['fraud_reported'] = np.where(df['fraud_reported'].values=='Y', 0, 1) 2. np.select() 한개의 column에 대해 적용할 condition이 2개보다 더 많을 경우 사용 conditions = [ df['auto_make'].str.startswith('A'), df['auto_make'].isin(['Saab', 'Mercedes', 'Dodge']..

Python 2022.06.05

[Python] 데이터를 빠르게 전처리 하는 방법 - (2) pandas 읽고 쓰기 비교 (pickle, npz, npy, feature, parquet)

다음과 같이 전처리 후, 생성된 데이터 프레임을 저장하는 방식은 여러가지가 있다. 이때 저장되는 타입별로 load하는 시간, 파일 용량이 각각 다르므로 가장 빠른것을 선택해 사용하는것을 추천한다. 1. npz, npy로 저장 dataframe에 있는 값들을 가져오고, key=value 값을 넣어준 후, npz형식으로 데이터 저장 import numpy as np # 저장 np.savez('test.npz',**{name:value for name,value in zip(list(df.columns), df.to_numpy().T)}) # data load (이후, 데이터프레임으로 변경하고 싶은 경우 allow_pickle True로 설정) data = np.load('test.npz', allow_pic..

Python 2022.06.04

[Python] 데이터를 빠르게 전처리 하는 방법 - (1) pandas

pandas에서 메모리 감소시키는 방법 1. 데이터 단위 줄이기 (dataframe은 기본적으로 64bit이므로 32bit 혹은 16bit로 줄여주기) bit의 범위를 바꿔주면 데이터에 따라 데이터의 정보를 잃을 수도 있음. 유의하여 진행 data[{column_name}] = data[{column_name}].astype(np.int32) 2. dataframe을 numpy로 접근해서 사용 from tqdm import tqdm # 모든 행값 출력 for rows in tqdm(df.to_numpy(), total=len(df), position=0, leave=True): print(rows)

Python 2022.06.03

Fashion recommendation system Review paper

목적: fashion 도메인에서 사용되는 추천시스템을 알아보고자 함 개인적인 결론: 삽질, image 자체를 학습시키는 논문들 위주. 유사성을 구하기 위해서 정보를 vector형식으로 만든다. 즉, 해당 리뷰에 담긴 논문들은 CNN으로 이미지를 vector화 시켜서 유사성을 구하게 된다. 하지만, 필자는 텍스트( 패션아이템 정보 )를 사용해서 추천시스템을 구축해야한다. 따라서, 방향성과 맞지않는 논문이다. Deldjoo, Yashar, et al. "A review of modern fashion recommender systems." arXiv preprint arXiv:2202.02757 (2022). 선택 이유: 패션 도메인에 국한된 추천 시스템에 대한 리뷰 페이퍼 발표 목적: 적합한 모델 찾기 위..

TFX ML Metadata

ML Metadata란? workflow에 관한 것들을 기록 및 트래킹 해주는 라이브러리이다. 따라서, 예시로 아래와 같은 질문을 Metadata로 부터 얻을 수 있다. Which dataset did the model train on? What were the hyperparameters used to train the model? Which pipeline run...... 그림을 더 자세히 설명해보자. 1. TFX pipeline(workflow)가 실행되면 각 components 별 Input/Ouput/meta 정보 들이 나오게 되는데, 이를 MLMD library를 통해서 데이터베이스(MetadataStore)에 저장되게 된다. 2. 그림1에서 볼 수 있듯이 Metadata Store에는 Co..

MLOps 2022.05.03