새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 내일배움캠프
  • portfolio
  • 내일배움카드
  • 코린이
  • 자기주도학습
  • 개발일지
  • 프로그래머스
  • Github
  • TodayILearned
  • Python
  • docker
  • Selenium 4
  • machine learning
  • 내일배움단
  • til
  • 국비지원
  • 코딩
  • 스파르타코딩클럽
  • AI트랙
  • 코딩프로젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

2-9[Project] 술 추천 시스템 구현 - 유저기반 추천 시스템
TIL

2-9[Project] 술 추천 시스템 구현 - 유저기반 추천 시스템

2022. 2. 9. 18:48

오늘 할 일 (계획)

1. AI 기능 구현

 

2. 포켓몬 얼굴상 프로젝트 자동 업데이트 설정 완료하기

 

3. AI 분석 준비하기 - 두 번째 사이트 크롤링되면 실행할 수 있게 준비

 

4. 프로젝트 완성

오늘 한 일 (회고)

1. AI 기능 구현

- 유저 데이터 기반 협업 관리 툴 방식으로 술 추천 시스템 구현

 

drink rating이라는 파일과 

drinks 라는 파일을 만들어서

유저에 따른 선호도를 조사 유저끼리의 유사도를 측정하여 유저기반의 협업 관리툴을 구현

 

def drink_db_view(request):
    print("drink_db_view 실행확인")

    user = request.user.is_authenticated
    if user:
        ratings = pd.read_csv('./static/model/drink_ratings.csv')
        drinks = pd.read_csv('./static/model/drinks.csv', encoding='cp949')

        pd.set_option('display.max_columns', 10)
        pd.set_option('display.width', 300)

        drink_ratings = pd.merge(ratings, drinks, on='drinkid')
        # print(drink_ratings)

        # user별로 술에 부여한 rating 값을 볼 수 있도록 pivot table 사용
        title_user = drink_ratings.pivot_table('score_x', index='userId', columns='title')

        # 평점을 부여안한 술은 그냥 0이라고 부여
        title_user = title_user.fillna(0)
        # print(title_user)

        user_based_collab = cosine_similarity(title_user, title_user)
        # print(user_based_collab)

        user_based_collab = pd.DataFrame(user_based_collab, index=title_user.index, columns=title_user.index)
        # print(user_based_collab)

        # 접속한 유저의 아이디를 받아옴
        id = request.user.id

        # 4번 유저와 비슷한 유저를 내림차순으로 정렬한 후에, 상위 10개만 뽑음
        # print(user_based_collab[id].sort_values(ascending=False)[:10])

        # 4번 유저와 가장 비슷한 266번 유저를 뽑고,
        user = user_based_collab[id].sort_values(ascending=False)[:10].index[1]
        # 266번 유저가 좋아했던 술의 평점 내림차순으로 출력
        category_recommend = title_user.query(f"userId == {user}").sort_values(ascending=False, by=user, axis=1)

        category_recommend = category_recommend[:30]

 

2. AI 분석 준비하기 - 두 번째 사이트 크롤링되면 실행할 수 있게 준비

- 음식 사이트 크롤링 된 내용과 연결하여 술과 음식 페어링 완료

 

3. Drink_plus 프로젝트 디테일 정리 

- 프론트 관련 및 세부 기능 구현 마무리

- 프로젝트 완성

 

내일 할 일

1. 포켓몬 얼굴상 프로젝트 자동 업데이트 설정 완료하기

 

2. 개발일지 작성 

 

3. 클론 코딩 프로젝트 위주로 학습내용 시작

저작자표시 비영리 변경금지 (새창열림)

'TIL' 카테고리의 다른 글

2-11[Django, migrations, DOCKER, tmate sh] python Django 실무 정리 #2  (0) 2022.02.11
2-10[Django, 환경변수, 가상환경] python Django 실무 정리 #1  (0) 2022.02.10
2-8[Project] aspx 사이트 크롤링 완료  (0) 2022.02.08
2-7[Project] aspx 사이트 분석 크롤링 준비  (0) 2022.02.07
2-6[Project] Django를 이용한 검색기능  (0) 2022.02.06
    'TIL' 카테고리의 다른 글
    • 2-11[Django, migrations, DOCKER, tmate sh] python Django 실무 정리 #2
    • 2-10[Django, 환경변수, 가상환경] python Django 실무 정리 #1
    • 2-8[Project] aspx 사이트 크롤링 완료
    • 2-7[Project] aspx 사이트 분석 크롤링 준비
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바