추천 시스템 2 번 째 예제 입니다 . 저번 에 는 7 . 영화 평점 예측 하 기 로 SVD 모델 을 활용 추천 시스템 을 진행 하 였 는데요 . 이번 에 는 구매 데이터 기반 하 여 상품 을 추천 하 는 예제 를 진행 하 려 합니다 . ​ 도서 에서 의 마지막 실습 이 네요 . ​ 간단 하 게 추천 시스템 에 대해 개념 을 잡 고 가 보 도록 하 겠 습니다 . User _ based ( CF - 협업 필터링 ) Item _ based ( CF - 협업 필터링 ) Contents _ based 가 일단 기본 적 으로 이해 하 기 제일 쉬울 것 같 네요 깊 게 들어가 면 딥 러닝 , Matrix Factorization 등등 있 죠 . .. 사실 SVD 가 Matrix Factorization 에 속하 는 추천 알고리즘 이 긴 하 죠 . .​ 그리고 최근 에 는 알리바바 에서 Reinforcement leanring 을 사용 하 고 아마존 에서 Hierarchial RNN 개인 화 로 이슈 가 되 었 죠 . . ( 이것 도 2018 년 ) 그리고 Matrix Factorization 에서 더 발전 된 Factorization Machine 도 연구 가 많이 되 고 있 습니다 . ​ 이렇게 계속 발전 하 고는 있 는데 처음 부터 깊 은 것 을 이해 하 는 것 은 불 가능 합니다 . ​ 그래서 기본 적 인 흐름 을 설명 드리 자면 . 1 . User _ based 은 User 를 기준 으로 잡 고 , 비슷 한 상품 을 구매 했 거나 , 구매 한 상품 에 비슷 한 평점 을 내렸 다면 서로 닮 은 User 라고 판단 하 는 거 죠 . 그래서 User 1 과 User 2 가 비슷 하 다고 나온다면 User 1 이 구매 한 상품 중 에 User 2 가 구매 하 지 않 은 상품 이 있 다면 추천 해 주 는 식 으로 진행 됩니다 . ​ 2 . Item _ based 는 Item 이 기준 이 됩니다 . 판매 된 item 을 기반 으로 item 1 과 item 2 가 비슷 하 게 판매 되 었 다면 User 가 item 1 을 샀 을 때 item 2 를 추천 해 주 는 것 이 죠 . ​ 3 . contents _ based 는 item 의 특성 을 반영 하 는 것 입니다 . User 가 Item 1 이 라는 상품 을 구매 하 면 , item 1 의 속성 을 구매 한 것 으로 판단 하 는 것 이 죠 . 그래서 item 1 과 비슷 한 속성 을 지닌 상품 을 추천 하 게 되 는 것 입니다 . 예 를 들 어 item 1 이 화장품 인데 , 피부 가 지성 인 사람 에게 좋 고 , 30 대 남성 이 많이 쓰 며 , 달콤 한 향 이 있 다고 한다면 30 대 남성 , 지성 피부 , 달콤 한 향 이 하나 의 속성 으로 저장 되 어 비슷 한 화장품 을 추천 해 주 는 것 이 겠 죠 . ​ 이 정도 가 추천 시스템 에 발 만 담그 는 정도 이 긴 하 지만 . .. 이 정도 만 알 아도 대충 흐름 은 파악 하 실 수 있 으실 것 같 네요 . ​ 그럼 실습 으로 들어가 겠 습니다 . Step 1 탐색 적 분석 : UK Retail 데이터 분석 하 기 중요 한 부분 EDA 과정 은 많이 해볼수록 실력 이 늘어나 는 것 이 라서 중요 한 부분 을 설정 하 기 가 어렵 네요 . 전체 코드 가 손 에 익 도록 연습 하 셔야 합니다 . ​ 1 결 측 치 제거 df . isnull ( ) . sum ( ) 으로 결 측 치 파악 df . dropna ( ) 로 결 측 치 제거 ​ 2 groupby 그룹 으로 모아서 데이터 를 탐색 하 는 함수 입니다 . pandas 사이트 에서 사용 예제 들 로 공부 하 면 좋 을 것 같 아요 . ​ https : / / pandas . pydata . org / docs / user _ guide / groupby . html Group By : split - apply - combine — pandas 1 . 0 . 3 documentationGroup By : split - apply - combine By “ group by ” we are referring to a process involving one or more of the followingsteps : Splitting the data into groups based on some criteria . Applying a function to each group independently . Combining the results into a data structure . Out of these , the split step is . .. pandas . pydata . org https : / / pandas . pydata . org / docs / getting _ started / 10 min . html ? highlight = datetime # grouping 10 minutes to pandas — pandas 1 . 0 . 3 documentation 10 minutes to pandas This is a short introduction to pandas , geared mainly for new users . You can see more complex recipes in the Cookbook . Customarily , we import as follows : In [ 1 ] : import numpy as np In [ 2 ] : import pandas as pd Object creation See the Data Structure Intro section . Creating a Ser . .. pandas . pydata . org ​ 3 datetime 시계열 분석 을 위한 필수 함수 입니다 . 아래 링크 에서 다양 한 예제 들 확인 해 보 세요 ​ https : / / docs . python . org / 3 / library / datetime . html datetime — Basic date and time types — Python 3 . 8 . 2 documentationdatetime — Basic date and time types Source code : Lib / datetime . py The datetime module supplies classes for manipulating dates and times . While date and time arithmetic is supported , the focus of the implementation ison efficient attribute extraction for output formatting and manipulation . See also . .. docs . python . org https : / / pandas . pydata . org / docs / getting _ started / 10 min . html ? highlight = datetime # time - series 10 minutes to pandas — pandas 1 . 0 . 3 documentation 10 minutes to pandas This is a short introduction to pandas , geared mainly for new users . You can see more complex recipes in the Cookbook . Customarily , we import as follows : In [ 1 ] : import numpy as np In [ 2 ] : import pandas as pd Object creation See the Data Structure Intro section . Creating a Ser . .. pandas . pydata . org ​