프로그래밍 집단 지성 책을 읽고 Northwind 데이터베이스에 대해 내가 배운 것을 적용하려고합니다. 내가 제시 한 알고리즘에 대한 나의 이해에 아직 확신이 없지만, 나는 일반적인 개념에 대한 아이디어를 얻기 시작했다. 추천 시스템 실험
Northwind 데이터베이스를 사용
, 나는 다음과 같은 의사 로직을 사용하여 "이것은 또한 XYZ를 구입 구입 고객"의 목록을 표시하려고 해요 :- 하는 것도 내 아이템을 구매 한 다른 고객을 찾기를
- 이전 단계에서
- 반환 상위 N 항목을 계산
- 순위 항목이 구매를 기반으로하는 고객이 구입 한 다른 모든 항목 찾기
declare
@customerid nchar(5),
@productid int;
set @customerid = 'ALFKI';
set @productid = 59;
-- find other products from customers who
-- also purchased my productid
select top 10
od.productid, c.categoryname, p.productname, p.unitsonorder, count(od.productid)
from
[order details] od
inner join orders o on o.orderid = od.orderid
inner join products p on p.productid = od.productid
inner join categories c on c.categoryid = p.categoryid
where
o.customerid <> @customerid and
od.productid <> @productid and
p.discontinued = 0
group by
od.productid, c.categoryname, p.productname, p.unitsonorder
order by 5 desc,4 desc
및 제한 고객 :
나는 아래의 쿼리 함께 일하고 있어요 내 제품을 구입 한 모든 고객이 아닌 N 명의 고객과 일치합니다. 누구든지 어떤 포인터를 제공 할 수 있습니까? 나는 올바른 방향으로 향하고 있는가? 나는 완전히 다른 방향을 택해야 하는가?
지금까지 알고리즘을 최대한 활용할 수있는 경험이 아직 없다는 것을 알았 기 때문에,이 시점에서 저의 목표는 정확도를 능가하는 성능입니다. 나는 단지 그 개념을 적용하려고하고있다. 만족 스럽다면 충분히 이해할 수 있습니다. 더 현실적인 고객 데이터를 사용하여 더 큰 데이터베이스에 대해이 쿼리를 테스트 할 생각입니다.