python

· 정리
immutable object와 mutable object에 대한 사전 지식이 필요한 포스팅입니다. mutable vs immutable object 불변 타입(immutable type) 한 번 생성되면 그 상태를 변경할 수 없는 데이터 타입. immutable type의 대표적인 예로는 int, float, str, tuple 등이 있음. immutable type의 특징 >>> a = "hello" >>> b = ["hello", "world"] >>> p sept-moon.tistory.com shallow copy a는 원본, b는 a를 복사한 복사본이라고 하자. shallow copy를 하면 같은 메모리 주소를 바라본다. 이 때, b 또는 a의 값을 바꿀 경우, 이 둘이 immutable인지,..
· 정리
불변 타입(immutable type) 한 번 생성되면 그 상태를 변경할 수 없는 데이터 타입. immutable type의 대표적인 예로는 int, float, str, tuple 등이 있음. immutable type의 특징 >>> a = "hello" >>> b = ["hello", "world"] >>> print(id(a), id(b), id(b[0])) 4340666864 4340667776 4340666864 >>> print(id(a) == id(b[0]) True 메모리 효율성: 동일한 값을 가진 객체가 메모리에 한 번만 저장될 수 있기 때문에 메모리 사용을 최적화할 수 있다. 예를 들어, “python”이라는 값을 가진 a와 b가 있으면 둘 다 같은 메모리 주소를 가리킨다. 따라서 이 ..
model training 순서 - 데이터 로딩 - 데이터 행, 열 확인 - 데이터 그룹핑 및 집계 - 차트 - 데이터 분할 - 평균 값 계산 - RMSE, MAE 계산 - 포스터 이미지 표시 CBF 기반 예측 아이템 유사도 기반 평점 예측 예) 영화 평점 예상 문제 가정: 유사한 영화에는 유사한 평점을 부여할 것이다. $$ \hat{r}_{u, i} = \frac{\sum _{j \in I_{u}} sim(i, j)*r_{u, j}}{\sum _{j \in I_{u}} sim(i, j)} $$ r : 사용자 u의 아이템 j에 대한 평점 I : 사용자 u가 평가한 아이템 집합 sim(i, j); 두 아이템 i와 j의 유사도 컨텐츠 기반 유사도 측정 sim(i, j) - 두 아이템 간의 유사도를 어떻게 정..
모델에 대한 성능 평가 단계 이론 데이터 기반 성능 평가 ( TODO ) 심사 위원 평가 과거 이력 데이터 기반 평가의 한계 신규 추천 결과에 대한 사용자의 반응을 알 수 없음 정량적 평가 심사위원 평가 내부 인력, 외부 인력이 추천 결과의 품질을 평가 Quality and Trust of Feedback' A/B Test ( TODO) - 서비스 KPI 지표로 평가 : 매출, PV, UV, CTR Rating Prediction 성능 평가 - 모델이 예측한 Rating과 사용자의 실제 Rating 차이를 계산 Top-K 추천 성능 평가 - 추천한 아이템 중 사용자에 의해 클릭된 아이템의 위치 및 개수를 이용하여 평가 Confusion Matrix Recommended(Predicted) Positive..
추천 시스템 Architecture 추천 시스템이란? 사용자나 서비스에 필요한 바를 잘 정의하고, 요건 다양한 데이터를 수집하고 활용하여, 데이터 적절한 방식을 통해 아이템의 적합도를 계량하여 모델 계량 방식 적절한 방식으로 제공하는 작업 UX/UI --> 어떤 요건에 맞춰 어떤 데이터를 활용해 어떤 모델을 이용해서 어떤 방식으로 계량하는가? 요건 데이터 모델 계량 방식 l Best l Related l Personalized l Context-aware l Explicit l Implicit l CBF l CF l Hybrid l Rating Prediction l Top-K Rec. 추천 시스템 분류 추천 요건에 따른 분류 Best : 전체 중에서 가장 잘팔리는 거. 베스트셀러를 생각하자 Best 지..
Dataset Dataset class 정의는 전체 dataset을 구성하는 단계이다. input으로는 전체 input feature와 label(=target)을 넣어주면 된다. dataset class를 정의하려면 필수로 정의해야 하는 함수들이 있는데 다음과 같다. __init__(self) : 필요한 변수들을 선언한다. self.~~ = ~~~ 이런식으로 __len__ : dataset의 사이즈를 return __getitem__ : i번째 data를 return. return type에 제약이 있는 것은 아니지만, 보통 tensor, a tuple of tensors, a dictionary를 많이 쓰는 듯 하다. - 하나의 변수에 target이 함께 있는 경우도 있고, target을 따로 ret..
1. Predict def predict( model, dataset, batch_size = 64, device = 'cuda' ): model.eval() loader = DataLoader( dataset, batch_size=batch_size, shuffle=False, num_workers=NUM_WORKERS ) preds = [] with torch.no_grad(): for data in loader: pred = model(data['input'].to(device)).squeeze(-1) preds.append(pred.detach().cpu().numpy()) preds = np.concatenate(preds, 0) ● Torch.no_grad() - gradient 계산을 안하게..
# pytorch에서는 keras와는 달리 compile, fit으로 쉽게 사용하는 부분을 전부 직접 코딩해야 한다고 한다. # 이것도 모르고 인터넷에서 찾은 자료만 보고 compile을 못 찾고 있었다. # compile, fit을 직접 만들어야 하기 때문에 실제 모델이 돌아가면서 해야할 일을 직접 코딩해 내 입맛에 맞출 수 있나보다. # 신경망의 구조를 모르면 구현하기 힘들 것 같다. # 아 그냥 keras로 할걸, 그래도 좋은 경험 했다 생각하자. 1. compile & fit & evaluate - 이 notebook에는 compiling과 fit, model evaluate이 한 function에 있다. 그래서 처음 딥러닝을 접하거나, 어색한 사람은 보다가 너무 길어 살짝 멘붕이 올 수도 있겠다..
미스따문
'python' 태그의 글 목록