목록분류 전체보기 (52)
내가 보려고 만든 블로그
추천에서 나름 유명한 프레임웤인 Surprise. 토치로 구현하느라 많이 써보진 않았는데 어쩌다 사용할 기회가 생겨 모듈들 간단하게 정리해봄. surprise.Dataset.load_from_file(file_path , reader=reader) surprise.Reader 토치의 Dataloader 같은 클래스임. args 에 reader가 들어가는데 아래처럼 surprise.Reader 에 데이터 형태에 맞춰서 line_format에 넣주면 알아서 파싱해준다. reader = Reader(line_format='user item rating timestamp', sep=',', skip_lines=1) ratingsDataset = Dataset.load_from_file(self.ratingsP..
추천시스템에서 등장하는 Metric 정리 . Precision , Recall , NDCG , Coverage , Diversity , Novelty , Churn , Responsiveness, HR ( Hit Rate) , ARHR , CHR , rHR 까지 논문에 자주 보이던 Metric 뜻 알아보기 Precision & Recall 항상 헷갈리는 Precision 과 Recall 예시로 들어야 쉽다. 모델이 A ,B ,C ,D , E 라는 아이템을 추천했다고 했을때 User가 실제로 선호한 상품은 A,B,C,F 라고 하자. 이 때 Precision 은 전체 5개 상품중에 3개를 선호했으니 3/5 -> 0.6 이 된다 Recall 은 유저가 선호한 상품 4개(A,B,C,F) 에서 실제 모델이 추천한..
AWS가 GUI를 제공하여 손쉽게 파일을 관리할 수 있긴 하지만 파일의 수가 많아지면 이를 일일이 다 클릭기반으로 관리할 수가 없다. 이때 필요한 것이 바로 Boto3이다. AWS에서 제공하는 sdk로 이를 이용해 S3도 손쉽게 다룰 수있다. import boto3 s3 = boto3.client('s3' , region_name = 'ap-northeast-2') obj_list = s3.list_objects(Bucket ='amplitude-class101-41574' , Prefix = 'class101/194714' ) contents = obj_list['Contents'] 위와 같이 버켓내 파일들의 리스트를 볼 수 가 있다. paginator = s3.get_paginator('list_ob..
회사에서 사용하고 있는 앰플리튜드의 일부 로그데이터를 적재해야 하는 일을 맡게 되었다. 앰플리튜드에서 제공하는 기능 덕분에 데이터를 적재하는 것은 어렵지 않았으나, 데이터가 다음과 같이 1. 압축된 형태로 들어왔으며 2. complete이라는 파일이 같이 적재가 되어 Glue 크롤러를 통해 읽어올 수가 없었다. ETL을 위해 새로 코드를 짜야 할 만큼 큰 작업은 아니기에 glue studio를 통해 간단하게 처리를 해보기로 하였다. 스파크 기반이며 클릭기반으로 ETL을 할 수 있도록 UI를 제공한다. 하지만 아직 베타서비스인지 ETL을 하며 2가지 버그를 발견하였다. 사용법은 매우 간단해서 Extract 해 올 디렉토리 , 저장할 공간 , 파일 타입등을 지정만 해주면 된다. 만일 추가적으로 코드를 손보고..
class model(nn.module): def __init__(self): pass def forward(sefl): pass Torch로 모델을 만들다 보면 항상 궁금한 것이 있었다. 보통 토치에서 모델을 만들때 다음과 같은 형태로 모델을 만드는데 이렇게 만들어진 클래스를 model = model() 과 같이 인스턴스한 한 후 input을 넣기만 하면 모델이 동작을 한다는 점이다. 분명히 forward부분을 정의만하고 사용한 적이 없는데도 말이다. 궁금해서 module.nn의 소스코드를 열어보았다. https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/module.py GitHub - pytorch/pytorch: Tensors and D..
from torchvision import datasets datasets.MNIST(~~~) torchvision에서 제공하는 mnist 데이터셋으로 연습을 하려고 하다가 문득 궁금증이 들었다. torchvision의 소스코드를 확인해보았더니 dataasets 라는 디렉토리 안에 mnist.py 가 존재하고 , mnist.py 안에 MNIST 클래스가 존재하였다. 즉, datasets.mnist.MNIST 인데 어떻게 datasets.MNIST 만으로 MNIST 클래스가 불러와지는지가 궁금해졌다. datasets의 __init__.py 안에서 다음과 같은 코드를 찾을수가 있었다. __init__.py는 파이썬 파일을 패키지로 인식할 수 있도록 도와주는 파일로 알고있다. 이 __init__.py 에 위 ..