• 티스토리 홈
  • 프로필사진
    조별하
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
조별하
  • 프로필사진
    조별하
    • 분류 전체보기 (124)
      • 1. 공부 (0)
        • 기술 면접 (0)
      • 2. 웹개발 (7)
        • Java (1)
        • IT 정보 (5)
        • Error 모음 (1)
      • 3. 개인관심 (1)
        • 전자 (1)
      • GITHUB (5)
      • IT 기술 면접 (3)
      • COMPUTER (2)
      • TASK (1)
      • LANGUAGES (20)
        • Python (3)
        • Django (6)
        • Java (7)
        • Node (1)
        • Jsp (2)
        • R (1)
      • 데이터과학 (2)
        • 머신러닝 및 딥러닝 (2)
      • DATABASE (5)
        • Oracle (2)
      • ISSUE (10)
        • Django (4)
        • Drf (2)
        • Javascript (1)
        • Git (1)
      • JAVA 교육 (65)
        • Java (3)
        • Jquery (2)
        • Sql (16)
        • Jdbc (1)
        • Db (2)
        • Jsp (9)
        • myWeb (15)
        • Servlet (4)
        • Spring (12)
        • Crawling (0)
        • Hosting (1)
      • 정보처리산업기사 (1)
      • EDUCATION (2)
        • IoT 서비스 (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [딥러닝] 자카드 유사도(Jaccard Similarity) 개념 이해
        2023년 04월 28일
        • 조별하
        • 작성자
        • 2023.04.28.:27

        📌 자카드 유사도(Jaccard Similarity)

        자카드 유사도는 모두들 다 알고 있는 개념이다.

        내가 만약에 A와 B라는 아이템이 얼마나 유사한지 비교하고 싶다라고 한다면 대부분이 자카드 유사도 개념 모르더라도 그 방법을 떠올릴 것이다.

        그렇다면 자카드 유사도를 어떻게 구하는지 한 번 알아보자.

         

        ➤ 자카드 유사도 공식

        위에 보이는 것처럼 공식이 너무나 간단하다. 두 아이템 A와 B의 교집합에서 합집합을 나눈 값이 바로 자카드 유사도를 구하는 공식이다.

        이를 데이터 기반으로 이해하기 위해 계산해 보자.

         

        ➤ 종목 유사도 데이터 예시

        보통 문서 유사도 같은 자연어 처리 관련으로 설명을 하는데 이해를 쉽게 하기 위해 주식 종목이 얼마나 유사한지 측정해 보자.

        A 유저의 주식 종목

        삼성전자, 테슬라, LG전자, 카카오, 펄어비스

        B 유저의 주식 종목

        삼성전자, 카카오, 넷마블, 현대자동차, 셀트리온

        A유저와 B유저의 비교를 원할하게 하기 위해, 종목의 수는 동일하게 5개로 지정하였고 A와 B가 얼마나 유사한지를 체크해보도록 하자.

        ➤ 종목 유사도 검증

        교집합

        삼성전자, 카카오 = 2개

        합집합

        A유저(5) + B유저(5) - 교집합(2) = 8

        자카드 유사도 계산

        2/8 = 0.25

        A와 B가 25% 유사하다고 계산이 되었다. 이 계산이 맞는지 자카드 유사도를 Python 코드를 이용하여 구현해 보자.

         

        ➤ Python으로 자카드 유사도 구현

        def jacaard_similarity(listA, listB):
            s1 = set(listA)
            s2 = set(listB)
            return float(len(s1.intersection(s2)) / len(s1.union(s2)))
        
        listA = ["삼성전자", "테슬라", "LG전자", "카카오", "펄어비스"]
        listB = ["삼성전자", "카카오", "넷마블", "현대자동차", "셀트리온"]
        
        print(jacaard_similarity(listA, listB))

        위 코드를 실행하면 0.25의 자카드 유사도가 나오는 것을 확인할 수 있다.

        이처럼 자카드는 공식이 매우 간단하기 때문에 그만큼 속도도 보장이 되는 공식이다. 자카드가 최고의 공식이 아니지만, 많이 쓰는 이유는 현업에서 다른 공식들은 속도 이슈로 인해서 쓰지 못할 경우가 많기 때문이라고 한다.

         

        저작자표시 (새창열림)

        '데이터과학 > 머신러닝 및 딥러닝' 카테고리의 다른 글

        [딥러닝] 딥러닝이란?  (0) 2023.05.08
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바