database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30751 게시물 읽기
No. 30751
유사도 찾기!! 조언 부탁드립니다.
작성자
박용섭(differeye)
작성일
2014-08-21 20:15
조회수
8,445

 

 

안녕하세요?

혼자 고민중에 좋은 이론이나 참고할만한 것이 있는지 여쭙고자 질문을 올립니다.

유사도를 찾는 구조입니다.
예시를 그려봤는데요.(위 이미지파일)

민수를 선택했다고 가정하면 민수를 기준으로 가장 유사도가 높은 MEMBER_UID를 구하는 로직입니다.
저기 표에서는 딸기와 사과가 겹치는 100번 영희가 나와야 겠지요...
두번쨰는 1개가 일치하는 수영과 철의 일테고요...
( 예시를 저렇게 들어서 그렇지 미팅이나 주선 사이트는 아닙니다.. --; 마케팅용 자료통계 목적임 )

민수가 가지고 있는 LIKE_UID 6,7,8,9의 LIKE 값과 가장 많은 값을 출력하면 되긴 하는데....
문제 이게 각 인물이 만명 가까히 되고, 개별마다 좋아하는건 천개씩 되고, 좋아품목은 거의 무한대 입니다.
그냥 그룹묶고 or하고 count 해서는 답이 안나오겠더라고요...
효과적으로 매칭 시킬수 있는 방법이 있을까요???

혹시 위와같은 수학적 이론 같은게 있나요???

조언 부탁드립니다.
감사합니다.

이 글에 대한 댓글이 총 1건 있습니다.
INDEX만 잘 걸려 있다면 다음 질의로 가능할 것입니다.
1천만개 (1만명 x 1천개)에서 수초내로 결과 나올 듯 한데요..
 
    SELECT *
    FROM (
        SELECT t2.member_uid, COUNT(*) AS cnt
        FROM like_tbl t1 INNER JOIN like_tbl t2
        WHERE t1.member_uid = 200 // 민수의 uid
          AND t1.like = t1.like
        GROUP BY t2.member_uid
    ) t
    ORDER BY cnt DESC
    LIMIT 1;
 
>> 혹시 위와같은 수학적 이론 같은게 있나요???
 
서로 다른 객체의 유사도를 찾는 내용도 관련 논문이 많습니다. 다만, 유사도 정의에 따라서 방법이 많이 다른 듯 합니다. 님의 경우에 적용 가능한지 잘 모르겠으며 SQL로 표현이 가능한지 모르겟군요.
 
그리고 속도가 느리다면 데이터마이닝 툴 써어 Clustering하면 관심도 비슷한 사람끼리 군집화가 가능할 듯 한데요. 이건 개념만 알고 직접 해보진 못해서 제가 도울 순 없겠습니다.
 
우선 위의 SQL을 시도해보시고 튜팅을 해 보는 게 좋을 듯 합니다.
 
 
허정수(wertyu)님이 2014-08-22 11:20에 작성한 댓글입니다.
이 댓글은 2014-08-22 11:20에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
30756where 절에서 사용한 값으로 order by 할수있나요? [4]
질문자
2014-09-05
8484
30755mysql 쿼리를 한페이지에 약 5천번 정도 해야 할꺼 같은데... [2]
박순채
2014-09-04
8528
30752쿼리문좀 도와주세요 [1]
울트라
2014-08-22
8372
30751유사도 찾기!! 조언 부탁드립니다. [1]
박용섭
2014-08-21
8445
30750날짜와 시간이 구분된 데이터 검색 [1]
강선홍
2014-08-14
8347
307471달 데이터 조인 질문 드립니다. [2]
최범선
2014-08-11
9462
30746두화일조인해서 결과값얻기 [4]
김양훈
2014-08-08
8107
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다