Last active
February 6, 2019 15:19
-
-
Save yaravind/6767290 to your computer and use it in GitHub Desktop.
Product Association Recommender
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
= Product Association Recommender | |
Aravind R. Yarram <[email protected]> | |
v1.0, 30-Sep-2013 | |
== Domain Model | |
Association Rules: Support, Confidence and Lift | |
== Setup | |
//hide | |
//setup | |
//output | |
[source,cypher] | |
---- | |
CREATE (m11:Movie { name:"Star Wars: Episode IV - A New Hope (1977)", id:11 }) | |
CREATE (m12:Movie { name:"Finding Nemo (2003)", id:12 }) | |
CREATE (m13:Movie { name:"Forrest Gump (1994)", id:13 }) | |
CREATE (m14:Movie { name:"American Beauty (1999)", id:14 }) | |
CREATE (m22:Movie { name:"Pirates of the Caribbean: The Curse of the Black Pearl (2003)", id:22 }) | |
CREATE (m24:Movie { name:"Kill Bill: Vol. 1 (2003)", id:24 }) | |
CREATE (m38:Movie { name:"Eternal Sunshine of the Spotless Mind (2004)", id:38 }) | |
CREATE (m63:Movie { name:"Twelve Monkeys (a.k.a. 12 Monkeys) (1995)", id:63 }) | |
CREATE (m77:Movie { name:"Memento (2000)", id:77 }) | |
CREATE (m85:Movie { name:"Raiders of the Lost Ark (Indiana Jones and the Raiders of the Lost Ark) (1981)", id:85 }) | |
CREATE (m98:Movie { name:"Gladiator (2000)", id:98 }) | |
CREATE (m105:Movie { name:"Back to the Future (1985)", id:105 }) | |
CREATE (m107:Movie { name:"Snatch (2000)", id:107 }) | |
CREATE (m114:Movie { name:"Pretty Woman (1990)", id:114 }) | |
CREATE (m120:Movie { name:"The Lord of the Rings: The Fellowship of the Ring (2001)", id:120 }) | |
CREATE (m121:Movie { name:"The Lord of the Rings: The Two Towers (2002)", id:121 }) | |
CREATE (m122:Movie { name:"The Lord of the Rings: The Return of the King (2003)", id:122 }) | |
CREATE (m134:Movie { name:"O Brother Where Art Thou? (2000)", id:134 }) | |
CREATE (m141:Movie { name:"Donnie Darko (2001)", id:141 }) | |
CREATE (m146:Movie { name:"Crouching Tiger Hidden Dragon (Wo hu cang long) (2000)", id:146 }) | |
CREATE (u1000:User { name:"kmh1234-wd4321-iamawesome6789", id:1000 }) | |
CREATE (u1001:User { name:"ca6faa08-232e-4ac1-a364-13c062fd3ae4", id:1001 }) | |
CREATE (u1002:User { name:"rdb", id:1002 }) | |
CREATE (u1003:User { name:"skins428", id:1003 }) | |
CREATE (u1004:User { name:"ergunner", id:1004 }) | |
CREATE (u1005:User { name:"886a2ea4-6356-46fd-a904-6e22ff83b8bf", id:1005 }) | |
CREATE (u1006:User { name:"jewelhuq", id:1006 }) | |
CREATE (u1007:User { name:"kdarm", id:1007 }) | |
CREATE (u1008:User { name:"be0e8990-91c1-453b-a087-81feeadde37b", id:1008 }) | |
CREATE (u1009:User { name:"mypetrock", id:1009 }) | |
CREATE (u100:User { name:"deyaeddin-s-y-muhammad", id:100 }) | |
CREATE (u1010:User { name:"8965a9a8-88a4-4a8b-b0c6-89a36457605e", id:1010 }) | |
CREATE (u1011:User { name:"8da3204f-75cc-4457-8b9b-aea3543ade60", id:1011 }) | |
CREATE (u1012:User { name:"af568f6a-7a88-40a0-a735-ed56c50afdc4", id:1012 }) | |
CREATE (u1013:User { name:"f59ac70b-0740-4666-b3b0-49dc6de85651", id:1013 }) | |
CREATE u100-[:HAS_SEEN {rating:5.0}]->m105 | |
CREATE u100-[:HAS_SEEN {rating:4.5}]->m24 | |
CREATE u100-[:HAS_SEEN {rating:4.5}]->m22 | |
CREATE u100-[:HAS_SEEN {rating:4.5}]->m13 | |
CREATE u100-[:HAS_SEEN {rating:4.0}]->m11 | |
CREATE u100-[:HAS_SEEN {rating:5.0}]->m77 | |
CREATE u100-[:HAS_SEEN {rating:4.5}]->m14 | |
CREATE u100-[:HAS_SEEN {rating:3.0}]->m120 | |
CREATE u100-[:HAS_SEEN {rating:3.0}]->m121 | |
CREATE u100-[:HAS_SEEN {rating:4.0}]->m85 | |
CREATE u100-[:HAS_SEEN {rating:4.0}]->m12 | |
CREATE u100-[:HAS_SEEN {rating:3.5}]->m122 | |
CREATE u100-[:HAS_SEEN {rating:4.5}]->m114 | |
CREATE u100-[:HAS_SEEN {rating:4.0}]->m146 | |
CREATE u100-[:HAS_SEEN {rating:4.0}]->m141 | |
CREATE u100-[:HAS_SEEN {rating:5.0}]->m63 | |
CREATE u100-[:HAS_SEEN {rating:3.0}]->m98 | |
CREATE u1000-[:HAS_SEEN {rating:3.5}]->m24 | |
CREATE u1000-[:HAS_SEEN {rating:5.0}]->m22 | |
CREATE u1000-[:HAS_SEEN {rating:3.0}]->m12 | |
CREATE u1000-[:HAS_SEEN {rating:3.0}]->m121 | |
CREATE u1000-[:HAS_SEEN {rating:5.0}]->m13 | |
CREATE u1000-[:HAS_SEEN {rating:4.0}]->m107 | |
CREATE u1000-[:HAS_SEEN {rating:5.0}]->m85 | |
CREATE u1000-[:HAS_SEEN {rating:5.0}]->m105 | |
CREATE u1000-[:HAS_SEEN {rating:3.0}]->m120 | |
CREATE u1000-[:HAS_SEEN {rating:1.0}]->m114 | |
CREATE u1000-[:HAS_SEEN {rating:4.5}]->m122 | |
CREATE u1000-[:HAS_SEEN {rating:5.0}]->m11 | |
CREATE u1000-[:HAS_SEEN {rating:0.5}]->m38 | |
CREATE u1000-[:HAS_SEEN {rating:3.0}]->m146 | |
CREATE u1000-[:HAS_SEEN {rating:4.0}]->m134 | |
CREATE u1000-[:HAS_SEEN {rating:2.5}]->m14 | |
CREATE u1000-[:HAS_SEEN {rating:4.0}]->m63 | |
CREATE u1000-[:HAS_SEEN {rating:5.0}]->m98 | |
CREATE u1001-[:HAS_SEEN {rating:2.0}]->m14 | |
CREATE u1001-[:HAS_SEEN {rating:2.0}]->m63 | |
CREATE u1001-[:HAS_SEEN {rating:4.0}]->m22 | |
CREATE u1001-[:HAS_SEEN {rating:2.0}]->m85 | |
CREATE u1001-[:HAS_SEEN {rating:4.0}]->m11 | |
CREATE u1001-[:HAS_SEEN {rating:2.0}]->m122 | |
CREATE u1001-[:HAS_SEEN {rating:4.0}]->m114 | |
CREATE u1001-[:HAS_SEEN {rating:2.0}]->m120 | |
CREATE u1001-[:HAS_SEEN {rating:3.5}]->m24 | |
CREATE u1001-[:HAS_SEEN {rating:4.0}]->m98 | |
CREATE u1001-[:HAS_SEEN {rating:4.5}]->m146 | |
CREATE u1001-[:HAS_SEEN {rating:4.0}]->m12 | |
CREATE u1001-[:HAS_SEEN {rating:3.0}]->m107 | |
CREATE u1001-[:HAS_SEEN {rating:3.0}]->m141 | |
CREATE u1001-[:HAS_SEEN {rating:3.0}]->m77 | |
CREATE u1001-[:HAS_SEEN {rating:3.0}]->m105 | |
CREATE u1001-[:HAS_SEEN {rating:5.0}]->m13 | |
CREATE u1001-[:HAS_SEEN {rating:3.0}]->m121 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m107 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m24 | |
CREATE u1002-[:HAS_SEEN {rating:4.5}]->m63 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m85 | |
CREATE u1002-[:HAS_SEEN {rating:4.5}]->m12 | |
CREATE u1002-[:HAS_SEEN {rating:4.0}]->m98 | |
CREATE u1002-[:HAS_SEEN {rating:4.0}]->m38 | |
CREATE u1002-[:HAS_SEEN {rating:3.0}]->m13 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m105 | |
CREATE u1002-[:HAS_SEEN {rating:3.0}]->m114 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m120 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m121 | |
CREATE u1002-[:HAS_SEEN {rating:4.0}]->m122 | |
CREATE u1002-[:HAS_SEEN {rating:4.5}]->m77 | |
CREATE u1002-[:HAS_SEEN {rating:3.5}]->m22 | |
CREATE u1002-[:HAS_SEEN {rating:4.0}]->m146 | |
CREATE u1003-[:HAS_SEEN {rating:4.0}]->m22 | |
CREATE u1003-[:HAS_SEEN {rating:3.5}]->m14 | |
CREATE u1003-[:HAS_SEEN {rating:5.0}]->m120 | |
CREATE u1003-[:HAS_SEEN {rating:5.0}]->m122 | |
CREATE u1003-[:HAS_SEEN {rating:4.0}]->m12 | |
CREATE u1003-[:HAS_SEEN {rating:4.0}]->m77 | |
CREATE u1003-[:HAS_SEEN {rating:4.0}]->m105 | |
CREATE u1003-[:HAS_SEEN {rating:4.0}]->m107 | |
CREATE u1003-[:HAS_SEEN {rating:5.0}]->m121 | |
CREATE u1003-[:HAS_SEEN {rating:4.5}]->m85 | |
CREATE u1003-[:HAS_SEEN {rating:4.5}]->m13 | |
CREATE u1003-[:HAS_SEEN {rating:4.5}]->m24 | |
CREATE u1004-[:HAS_SEEN {rating:4.0}]->m120 | |
CREATE u1004-[:HAS_SEEN {rating:4.0}]->m77 | |
CREATE u1004-[:HAS_SEEN {rating:4.5}]->m13 | |
CREATE u1004-[:HAS_SEEN {rating:4.0}]->m121 | |
CREATE u1004-[:HAS_SEEN {rating:5.0}]->m98 | |
CREATE u1004-[:HAS_SEEN {rating:3.5}]->m24 | |
CREATE u1004-[:HAS_SEEN {rating:4.5}]->m105 | |
CREATE u1004-[:HAS_SEEN {rating:4.0}]->m122 | |
CREATE u1004-[:HAS_SEEN {rating:2.5}]->m22 | |
CREATE u1005-[:HAS_SEEN {rating:2.0}]->m114 | |
CREATE u1005-[:HAS_SEEN {rating:5.0}]->m85 | |
CREATE u1005-[:HAS_SEEN {rating:1.0}]->m141 | |
CREATE u1005-[:HAS_SEEN {rating:5.0}]->m98 | |
CREATE u1005-[:HAS_SEEN {rating:0.5}]->m38 | |
CREATE u1005-[:HAS_SEEN {rating:4.0}]->m146 | |
CREATE u1005-[:HAS_SEEN {rating:2.0}]->m77 | |
CREATE u1005-[:HAS_SEEN {rating:5.0}]->m12 | |
CREATE u1005-[:HAS_SEEN {rating:4.5}]->m105 | |
CREATE u1005-[:HAS_SEEN {rating:2.0}]->m14 | |
CREATE u1005-[:HAS_SEEN {rating:5.0}]->m107 | |
CREATE u1005-[:HAS_SEEN {rating:3.5}]->m120 | |
CREATE u1005-[:HAS_SEEN {rating:3.0}]->m24 | |
CREATE u1005-[:HAS_SEEN {rating:4.0}]->m63 | |
CREATE u1005-[:HAS_SEEN {rating:4.0}]->m121 | |
CREATE u1005-[:HAS_SEEN {rating:4.0}]->m11 | |
CREATE u1005-[:HAS_SEEN {rating:5.0}]->m22 | |
CREATE u1005-[:HAS_SEEN {rating:5.0}]->m122 | |
CREATE u1005-[:HAS_SEEN {rating:4.0}]->m13 | |
CREATE u1006-[:HAS_SEEN {rating:4.5}]->m14 | |
CREATE u1006-[:HAS_SEEN {rating:4.5}]->m38 | |
CREATE u1006-[:HAS_SEEN {rating:3.5}]->m22 | |
CREATE u1006-[:HAS_SEEN {rating:4.0}]->m134 | |
CREATE u1006-[:HAS_SEEN {rating:4.0}]->m63 | |
CREATE u1006-[:HAS_SEEN {rating:5.0}]->m105 | |
CREATE u1006-[:HAS_SEEN {rating:4.0}]->m77 | |
CREATE u1006-[:HAS_SEEN {rating:4.5}]->m107 | |
CREATE u1006-[:HAS_SEEN {rating:5.0}]->m98 | |
CREATE u1006-[:HAS_SEEN {rating:3.5}]->m141 | |
CREATE u1006-[:HAS_SEEN {rating:3.5}]->m122 | |
CREATE u1006-[:HAS_SEEN {rating:3.5}]->m12 | |
CREATE u1006-[:HAS_SEEN {rating:3.0}]->m11 | |
CREATE u1006-[:HAS_SEEN {rating:4.0}]->m146 | |
CREATE u1006-[:HAS_SEEN {rating:5.0}]->m13 | |
CREATE u1006-[:HAS_SEEN {rating:5.0}]->m114 | |
CREATE u1006-[:HAS_SEEN {rating:3.0}]->m24 | |
CREATE u1006-[:HAS_SEEN {rating:4.0}]->m85 | |
CREATE u1006-[:HAS_SEEN {rating:3.0}]->m120 | |
CREATE u1006-[:HAS_SEEN {rating:3.0}]->m121 | |
CREATE u1007-[:HAS_SEEN {rating:3.5}]->m14 | |
CREATE u1007-[:HAS_SEEN {rating:5.0}]->m12 | |
CREATE u1007-[:HAS_SEEN {rating:5.0}]->m98 | |
CREATE u1007-[:HAS_SEEN {rating:3.5}]->m24 | |
CREATE u1007-[:HAS_SEEN {rating:5.0}]->m13 | |
CREATE u1007-[:HAS_SEEN {rating:4.0}]->m63 | |
CREATE u1007-[:HAS_SEEN {rating:4.0}]->m105 | |
CREATE u1007-[:HAS_SEEN {rating:4.0}]->m85 | |
CREATE u1007-[:HAS_SEEN {rating:4.0}]->m38 | |
CREATE u1007-[:HAS_SEEN {rating:3.5}]->m114 | |
CREATE u1007-[:HAS_SEEN {rating:5.0}]->m77 | |
CREATE u1007-[:HAS_SEEN {rating:4.0}]->m141 | |
CREATE u1008-[:HAS_SEEN {rating:4.0}]->m13 | |
CREATE u1008-[:HAS_SEEN {rating:4.0}]->m38 | |
CREATE u1008-[:HAS_SEEN {rating:3.5}]->m11 | |
CREATE u1008-[:HAS_SEEN {rating:3.0}]->m98 | |
CREATE u1008-[:HAS_SEEN {rating:2.5}]->m114 | |
CREATE u1008-[:HAS_SEEN {rating:2.5}]->m22 | |
CREATE u1008-[:HAS_SEEN {rating:4.0}]->m121 | |
CREATE u1008-[:HAS_SEEN {rating:4.0}]->m24 | |
CREATE u1008-[:HAS_SEEN {rating:3.0}]->m120 | |
CREATE u1008-[:HAS_SEEN {rating:4.5}]->m105 | |
CREATE u1008-[:HAS_SEEN {rating:5.0}]->m122 | |
CREATE u1009-[:HAS_SEEN {rating:4.5}]->m141 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m105 | |
CREATE u1009-[:HAS_SEEN {rating:4.5}]->m13 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m14 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m120 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m38 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m121 | |
CREATE u1009-[:HAS_SEEN {rating:4.0}]->m107 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m146 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m12 | |
CREATE u1009-[:HAS_SEEN {rating:4.0}]->m63 | |
CREATE u1009-[:HAS_SEEN {rating:4.5}]->m24 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m85 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m11 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m98 | |
CREATE u1009-[:HAS_SEEN {rating:4.5}]->m122 | |
CREATE u1009-[:HAS_SEEN {rating:5.0}]->m77 | |
CREATE u1009-[:HAS_SEEN {rating:4.0}]->m134 | |
CREATE u1009-[:HAS_SEEN {rating:4.0}]->m22 | |
CREATE u1009-[:HAS_SEEN {rating:4.0}]->m114 | |
CREATE u1010-[:HAS_SEEN {rating:5.0}]->m77 | |
CREATE u1010-[:HAS_SEEN {rating:4.0}]->m122 | |
CREATE u1010-[:HAS_SEEN {rating:3.0}]->m13 | |
CREATE u1010-[:HAS_SEEN {rating:3.5}]->m38 | |
CREATE u1010-[:HAS_SEEN {rating:5.0}]->m134 | |
CREATE u1010-[:HAS_SEEN {rating:4.0}]->m121 | |
CREATE u1010-[:HAS_SEEN {rating:3.0}]->m12 | |
CREATE u1010-[:HAS_SEEN {rating:3.0}]->m98 | |
CREATE u1010-[:HAS_SEEN {rating:3.5}]->m105 | |
CREATE u1011-[:HAS_SEEN {rating:4.5}]->m122 | |
CREATE u1011-[:HAS_SEEN {rating:2.5}]->m98 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m121 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m77 | |
CREATE u1011-[:HAS_SEEN {rating:4.0}]->m14 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m120 | |
CREATE u1011-[:HAS_SEEN {rating:2.5}]->m11 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m12 | |
CREATE u1011-[:HAS_SEEN {rating:3.0}]->m114 | |
CREATE u1011-[:HAS_SEEN {rating:2.5}]->m22 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m63 | |
CREATE u1011-[:HAS_SEEN {rating:4.5}]->m107 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m24 | |
CREATE u1011-[:HAS_SEEN {rating:5.0}]->m105 | |
CREATE u1011-[:HAS_SEEN {rating:4.5}]->m13 | |
CREATE u1011-[:HAS_SEEN {rating:4.0}]->m85 | |
CREATE u1012-[:HAS_SEEN {rating:4.0}]->m141 | |
CREATE u1012-[:HAS_SEEN {rating:5.0}]->m122 | |
CREATE u1012-[:HAS_SEEN {rating:4.0}]->m105 | |
CREATE u1012-[:HAS_SEEN {rating:5.0}]->m120 | |
CREATE u1012-[:HAS_SEEN {rating:5.0}]->m121 | |
CREATE u1012-[:HAS_SEEN {rating:3.0}]->m63 | |
CREATE u1012-[:HAS_SEEN {rating:5.0}]->m22 | |
CREATE u1012-[:HAS_SEEN {rating:2.0}]->m114 | |
CREATE u1013-[:HAS_SEEN {rating:5.0}]->m122 | |
CREATE u1013-[:HAS_SEEN {rating:5.0}]->m121 | |
CREATE u1013-[:HAS_SEEN {rating:3.5}]->m105 | |
CREATE u1013-[:HAS_SEEN {rating:4.0}]->m24 | |
CREATE u1013-[:HAS_SEEN {rating:4.5}]->m85 | |
CREATE u1013-[:HAS_SEEN {rating:5.0}]->m11 | |
CREATE u1013-[:HAS_SEEN {rating:3.5}]->m22 | |
CREATE u1013-[:HAS_SEEN {rating:3.0}]->m63 | |
CREATE u1013-[:HAS_SEEN {rating:3.0}]->m98 | |
CREATE u1013-[:HAS_SEEN {rating:5.0}]->m120 | |
CREATE u1013-[:HAS_SEEN {rating:5.0}]->m13 | |
---- | |
=== Try other queries yourself! | |
//console | |
== Use Cases | |
MATCH m2:Movie<-[r2:HAS_SEEN]-u:User-[r1:HAS_SEEN]->m1:Movie | |
WHERE r1.rating >= 4.0 AND r2.rating >= 4.0 AND m1.name="Kill Bill: Vol. 1 (2003)" | |
with count(DISTINCT (u.name)) AS XandY | |
match u:User-[r1:HAS_SEEN]->m1:Movie | |
where m1.name="Kill Bill: Vol. 1 (2003)" | |
WITH count(DISTINCT (u)) AS X, XandY | |
RETURN (XandY*100)/X |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment