본문 바로가기

분류 전체보기128

[ML] 교차 검증 (CV, Cross Validation) -목차- 1. 교차 검증이란? 2. 교차 검증의 장점과 단점 3. 교차 검증 기법 종류 3.1 K-Fold Cross Validation ( k-겹 교차 검증) 3.2 Stratified K-Fold Cross Validation ( 계층적 k-겹 교차 검증 ) 4. GridSearchCV 구현 코드 : Cross_Validation 1. 교차 검증이란? 보통은 train set 으로 모델을 훈련, test set으로 모델을 검증한다. 여기에는 한 가지 약점이 존재한다. 고정된 test set을 통해 모델의 성능을 검증하고 수정하는 과정을 반복하면, 결국 내가 만든 모델은 test set 에만 잘 동작하는 모델이 된다. 즉, test set에 과적합(overfitting)하게 되므로, 다른 실제 데이터를.. 2022. 2. 21.
Matrix Factorization(MF)기반 추천 이전 업로드한 메모리 기반 협업 필터링인 사용자 기반 협업 필터링(UBCF)에 이어서 모델 기반 협업 필터링인 MF기반의 협업 필터링의 기본 개념에 대해서 정리해보려고 한다. 구현 코드 : SGD를 사용한 MF 알고리즘 -목차- 1. Matrix Factorization(MF) 의 원리 2. SGD(Stochastic Gradient Descent)를 사용한 MF 알고리즘 3. 모델 기반 추천 시스템의 장단점 4. SGD(Stochastic Gradient Descent)를 사용한 MF 구현 1. Matrix Factorization(MF) 의 원리 우선 MF 모델은 user-item 의 matrix에서 이미 rating이 부여되어 있는 상황을 가정한다. (당연히 sparse한 m.. 2022. 2. 21.
Passed-By-Assignment 들어가기 앞서 Call by value(값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다. Call by reference(참조에 의한 호출)는 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. 간단히 말해 값을 복사를 하여 처리를 하느냐, 아니면 직접 참조를 하느냐 차이인 것이다. 프로그래밍 구조상 Call by value(값에 의한 호출)를 하면 복사가 되기 때문에 메모리량이 늘어난다. 요즘에는 기기의 성능이 좋아져서 상관이 없다지만 많은 계산이 들어간다면 과부하의 원인이 된다. 하지만 복사처리가 되기 때문에 원래의 값은 영향을 받지 않아서 안전하다. Call by value(값에 의한 호출) 장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단점 : 복사를 하.. 2022. 2. 18.
Tim Sort -목차- 1. Tim sort의 등장 2. Tim sort의 기본 원리 3. Tim sort의 최적화 기법 3.1 Run 3.2 Binary Insertion Sort 3.3 Merge 4. Galloping 참고 자료 1. Tim sort의 등장 2002년 소프트웨어 엔지니어 Tim Peters에 의하여 Tim sort가 등장했다. 이 정렬 알고리즘은 Insertion sort와 Merge sort를 결합하여 만든 정렬이다. 실생활 데이터의 특성을 고려하여 더욱 빠르게 고안된 이 알고리즘은 최선의 시간 복잡도는 \(O(n)\), 평균은 \(O(n\log n)\), 최악의 경우 시간 복잡도는 \(O(n\log n)\)이다. Tim sort는 안정적인 두 정렬 방법을 결합했기에 안정적이며, 추가 메모리는 .. 2022. 2. 17.