Skip to content

Commit 7d56936

Browse files
authored
Add files via upload
1 parent e907c0b commit 7d56936

File tree

1 file changed

+373
-0
lines changed

1 file changed

+373
-0
lines changed

Apriori Movies Recommend System.ipynb

Lines changed: 373 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,373 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": [
9+
"#import library\n",
10+
"import numpy as np\n",
11+
"import matplotlib.pyplot as plt\n",
12+
"import pandas as pd\n",
13+
"from mlxtend.frequent_patterns import apriori,association_rules"
14+
]
15+
},
16+
{
17+
"cell_type": "code",
18+
"execution_count": 2,
19+
"metadata": {},
20+
"outputs": [
21+
{
22+
"data": {
23+
"text/html": [
24+
"<div>\n",
25+
"<style scoped>\n",
26+
" .dataframe tbody tr th:only-of-type {\n",
27+
" vertical-align: middle;\n",
28+
" }\n",
29+
"\n",
30+
" .dataframe tbody tr th {\n",
31+
" vertical-align: top;\n",
32+
" }\n",
33+
"\n",
34+
" .dataframe thead th {\n",
35+
" text-align: right;\n",
36+
" }\n",
37+
"</style>\n",
38+
"<table border=\"1\" class=\"dataframe\">\n",
39+
" <thead>\n",
40+
" <tr style=\"text-align: right;\">\n",
41+
" <th></th>\n",
42+
" <th>V1</th>\n",
43+
" <th>V2</th>\n",
44+
" <th>V3</th>\n",
45+
" <th>V4</th>\n",
46+
" <th>V5</th>\n",
47+
" <th>Sixth Sense</th>\n",
48+
" <th>Gladiator</th>\n",
49+
" <th>LOTR1</th>\n",
50+
" <th>Harry Potter1</th>\n",
51+
" <th>Patriot</th>\n",
52+
" <th>LOTR2</th>\n",
53+
" <th>Harry Potter2</th>\n",
54+
" <th>LOTR</th>\n",
55+
" <th>Braveheart</th>\n",
56+
" <th>Green Mile</th>\n",
57+
" </tr>\n",
58+
" </thead>\n",
59+
" <tbody>\n",
60+
" <tr>\n",
61+
" <th>0</th>\n",
62+
" <td>Sixth Sense</td>\n",
63+
" <td>LOTR1</td>\n",
64+
" <td>Harry Potter1</td>\n",
65+
" <td>Green Mile</td>\n",
66+
" <td>LOTR2</td>\n",
67+
" <td>1</td>\n",
68+
" <td>0</td>\n",
69+
" <td>1</td>\n",
70+
" <td>1</td>\n",
71+
" <td>0</td>\n",
72+
" <td>1</td>\n",
73+
" <td>0</td>\n",
74+
" <td>0</td>\n",
75+
" <td>0</td>\n",
76+
" <td>1</td>\n",
77+
" </tr>\n",
78+
" <tr>\n",
79+
" <th>1</th>\n",
80+
" <td>Gladiator</td>\n",
81+
" <td>Patriot</td>\n",
82+
" <td>Braveheart</td>\n",
83+
" <td>NaN</td>\n",
84+
" <td>NaN</td>\n",
85+
" <td>0</td>\n",
86+
" <td>1</td>\n",
87+
" <td>0</td>\n",
88+
" <td>0</td>\n",
89+
" <td>1</td>\n",
90+
" <td>0</td>\n",
91+
" <td>0</td>\n",
92+
" <td>0</td>\n",
93+
" <td>1</td>\n",
94+
" <td>0</td>\n",
95+
" </tr>\n",
96+
" <tr>\n",
97+
" <th>2</th>\n",
98+
" <td>LOTR1</td>\n",
99+
" <td>LOTR2</td>\n",
100+
" <td>NaN</td>\n",
101+
" <td>NaN</td>\n",
102+
" <td>NaN</td>\n",
103+
" <td>0</td>\n",
104+
" <td>0</td>\n",
105+
" <td>1</td>\n",
106+
" <td>0</td>\n",
107+
" <td>0</td>\n",
108+
" <td>1</td>\n",
109+
" <td>0</td>\n",
110+
" <td>0</td>\n",
111+
" <td>0</td>\n",
112+
" <td>0</td>\n",
113+
" </tr>\n",
114+
" <tr>\n",
115+
" <th>3</th>\n",
116+
" <td>Gladiator</td>\n",
117+
" <td>Patriot</td>\n",
118+
" <td>Sixth Sense</td>\n",
119+
" <td>NaN</td>\n",
120+
" <td>NaN</td>\n",
121+
" <td>1</td>\n",
122+
" <td>1</td>\n",
123+
" <td>0</td>\n",
124+
" <td>0</td>\n",
125+
" <td>1</td>\n",
126+
" <td>0</td>\n",
127+
" <td>0</td>\n",
128+
" <td>0</td>\n",
129+
" <td>0</td>\n",
130+
" <td>0</td>\n",
131+
" </tr>\n",
132+
" <tr>\n",
133+
" <th>4</th>\n",
134+
" <td>Gladiator</td>\n",
135+
" <td>Patriot</td>\n",
136+
" <td>Sixth Sense</td>\n",
137+
" <td>NaN</td>\n",
138+
" <td>NaN</td>\n",
139+
" <td>1</td>\n",
140+
" <td>1</td>\n",
141+
" <td>0</td>\n",
142+
" <td>0</td>\n",
143+
" <td>1</td>\n",
144+
" <td>0</td>\n",
145+
" <td>0</td>\n",
146+
" <td>0</td>\n",
147+
" <td>0</td>\n",
148+
" <td>0</td>\n",
149+
" </tr>\n",
150+
" <tr>\n",
151+
" <th>5</th>\n",
152+
" <td>Gladiator</td>\n",
153+
" <td>Patriot</td>\n",
154+
" <td>Sixth Sense</td>\n",
155+
" <td>NaN</td>\n",
156+
" <td>NaN</td>\n",
157+
" <td>1</td>\n",
158+
" <td>1</td>\n",
159+
" <td>0</td>\n",
160+
" <td>0</td>\n",
161+
" <td>1</td>\n",
162+
" <td>0</td>\n",
163+
" <td>0</td>\n",
164+
" <td>0</td>\n",
165+
" <td>0</td>\n",
166+
" <td>0</td>\n",
167+
" </tr>\n",
168+
" <tr>\n",
169+
" <th>6</th>\n",
170+
" <td>Harry Potter1</td>\n",
171+
" <td>Harry Potter2</td>\n",
172+
" <td>NaN</td>\n",
173+
" <td>NaN</td>\n",
174+
" <td>NaN</td>\n",
175+
" <td>0</td>\n",
176+
" <td>0</td>\n",
177+
" <td>0</td>\n",
178+
" <td>1</td>\n",
179+
" <td>0</td>\n",
180+
" <td>0</td>\n",
181+
" <td>1</td>\n",
182+
" <td>0</td>\n",
183+
" <td>0</td>\n",
184+
" <td>0</td>\n",
185+
" </tr>\n",
186+
" <tr>\n",
187+
" <th>7</th>\n",
188+
" <td>Gladiator</td>\n",
189+
" <td>Patriot</td>\n",
190+
" <td>NaN</td>\n",
191+
" <td>NaN</td>\n",
192+
" <td>NaN</td>\n",
193+
" <td>0</td>\n",
194+
" <td>1</td>\n",
195+
" <td>0</td>\n",
196+
" <td>0</td>\n",
197+
" <td>1</td>\n",
198+
" <td>0</td>\n",
199+
" <td>0</td>\n",
200+
" <td>0</td>\n",
201+
" <td>0</td>\n",
202+
" <td>0</td>\n",
203+
" </tr>\n",
204+
" <tr>\n",
205+
" <th>8</th>\n",
206+
" <td>Gladiator</td>\n",
207+
" <td>Patriot</td>\n",
208+
" <td>Sixth Sense</td>\n",
209+
" <td>NaN</td>\n",
210+
" <td>NaN</td>\n",
211+
" <td>1</td>\n",
212+
" <td>1</td>\n",
213+
" <td>0</td>\n",
214+
" <td>0</td>\n",
215+
" <td>1</td>\n",
216+
" <td>0</td>\n",
217+
" <td>0</td>\n",
218+
" <td>0</td>\n",
219+
" <td>0</td>\n",
220+
" <td>0</td>\n",
221+
" </tr>\n",
222+
" <tr>\n",
223+
" <th>9</th>\n",
224+
" <td>Sixth Sense</td>\n",
225+
" <td>LOTR</td>\n",
226+
" <td>Gladiator</td>\n",
227+
" <td>Green Mile</td>\n",
228+
" <td>NaN</td>\n",
229+
" <td>1</td>\n",
230+
" <td>1</td>\n",
231+
" <td>0</td>\n",
232+
" <td>0</td>\n",
233+
" <td>0</td>\n",
234+
" <td>0</td>\n",
235+
" <td>0</td>\n",
236+
" <td>1</td>\n",
237+
" <td>0</td>\n",
238+
" <td>1</td>\n",
239+
" </tr>\n",
240+
" </tbody>\n",
241+
"</table>\n",
242+
"</div>"
243+
],
244+
"text/plain": [
245+
" V1 V2 V3 V4 V5 \\\n",
246+
"0 Sixth Sense LOTR1 Harry Potter1 Green Mile LOTR2 \n",
247+
"1 Gladiator Patriot Braveheart NaN NaN \n",
248+
"2 LOTR1 LOTR2 NaN NaN NaN \n",
249+
"3 Gladiator Patriot Sixth Sense NaN NaN \n",
250+
"4 Gladiator Patriot Sixth Sense NaN NaN \n",
251+
"5 Gladiator Patriot Sixth Sense NaN NaN \n",
252+
"6 Harry Potter1 Harry Potter2 NaN NaN NaN \n",
253+
"7 Gladiator Patriot NaN NaN NaN \n",
254+
"8 Gladiator Patriot Sixth Sense NaN NaN \n",
255+
"9 Sixth Sense LOTR Gladiator Green Mile NaN \n",
256+
"\n",
257+
" Sixth Sense Gladiator LOTR1 Harry Potter1 Patriot LOTR2 \\\n",
258+
"0 1 0 1 1 0 1 \n",
259+
"1 0 1 0 0 1 0 \n",
260+
"2 0 0 1 0 0 1 \n",
261+
"3 1 1 0 0 1 0 \n",
262+
"4 1 1 0 0 1 0 \n",
263+
"5 1 1 0 0 1 0 \n",
264+
"6 0 0 0 1 0 0 \n",
265+
"7 0 1 0 0 1 0 \n",
266+
"8 1 1 0 0 1 0 \n",
267+
"9 1 1 0 0 0 0 \n",
268+
"\n",
269+
" Harry Potter2 LOTR Braveheart Green Mile \n",
270+
"0 0 0 0 1 \n",
271+
"1 0 0 1 0 \n",
272+
"2 0 0 0 0 \n",
273+
"3 0 0 0 0 \n",
274+
"4 0 0 0 0 \n",
275+
"5 0 0 0 0 \n",
276+
"6 1 0 0 0 \n",
277+
"7 0 0 0 0 \n",
278+
"8 0 0 0 0 \n",
279+
"9 0 1 0 1 "
280+
]
281+
},
282+
"execution_count": 2,
283+
"metadata": {},
284+
"output_type": "execute_result"
285+
}
286+
],
287+
"source": [
288+
"#read csv file\n",
289+
"movie = pd.read_csv(\"~/Downloads/Data Science/data set/my_movies.csv\")\n",
290+
"movie"
291+
]
292+
},
293+
{
294+
"cell_type": "code",
295+
"execution_count": 3,
296+
"metadata": {},
297+
"outputs": [],
298+
"source": [
299+
"movie.drop(['V1','V2','V3','V4','V5'], axis=1, inplace=True)"
300+
]
301+
},
302+
{
303+
"cell_type": "code",
304+
"execution_count": 4,
305+
"metadata": {},
306+
"outputs": [],
307+
"source": [
308+
"# Building the model \n",
309+
"movie_apiori = apriori(movie, min_support = 0.1, use_colnames = True) "
310+
]
311+
},
312+
{
313+
"cell_type": "code",
314+
"execution_count": 5,
315+
"metadata": {},
316+
"outputs": [
317+
{
318+
"name": "stdout",
319+
"output_type": "stream",
320+
"text": [
321+
" antecedents consequents \\\n",
322+
"102 (Green Mile, Gladiator) (LOTR) \n",
323+
"107 (LOTR) (Green Mile, Gladiator) \n",
324+
"132 (Green Mile, Gladiator, Sixth Sense) (LOTR) \n",
325+
"136 (Green Mile, Gladiator) (LOTR, Sixth Sense) \n",
326+
"141 (LOTR, Sixth Sense) (Green Mile, Gladiator) \n",
327+
"\n",
328+
" antecedent support consequent support support confidence lift \\\n",
329+
"102 0.1 0.1 0.1 1.0 10.0 \n",
330+
"107 0.1 0.1 0.1 1.0 10.0 \n",
331+
"132 0.1 0.1 0.1 1.0 10.0 \n",
332+
"136 0.1 0.1 0.1 1.0 10.0 \n",
333+
"141 0.1 0.1 0.1 1.0 10.0 \n",
334+
"\n",
335+
" leverage conviction \n",
336+
"102 0.09 inf \n",
337+
"107 0.09 inf \n",
338+
"132 0.09 inf \n",
339+
"136 0.09 inf \n",
340+
"141 0.09 inf \n"
341+
]
342+
}
343+
],
344+
"source": [
345+
"# Collecting the inferred rules in a dataframe \n",
346+
"rules = association_rules(movie_apiori, metric =\"lift\") \n",
347+
"rules = rules.sort_values(['confidence', 'lift'], ascending =[False, False]) \n",
348+
"print(rules.head())"
349+
]
350+
}
351+
],
352+
"metadata": {
353+
"kernelspec": {
354+
"display_name": "Python 3",
355+
"language": "python",
356+
"name": "python3"
357+
},
358+
"language_info": {
359+
"codemirror_mode": {
360+
"name": "ipython",
361+
"version": 3
362+
},
363+
"file_extension": ".py",
364+
"mimetype": "text/x-python",
365+
"name": "python",
366+
"nbconvert_exporter": "python",
367+
"pygments_lexer": "ipython3",
368+
"version": "3.7.7"
369+
}
370+
},
371+
"nbformat": 4,
372+
"nbformat_minor": 4
373+
}

0 commit comments

Comments
 (0)