Gopala Krishna commited on
Commit
87b43cf
·
1 Parent(s): db79437

working with Online_Retail 10k

Browse files
.vs/IBCFProductRecommendations/FileContentIndex/301a4f59-4692-4d0c-b0b7-f716f937f55e.vsidx ADDED
Binary file (4.95 kB). View file
 
.vs/IBCFProductRecommendations/FileContentIndex/d36c4651-d804-4ac6-b598-bf53344d6496.vsidx ADDED
Binary file (387 Bytes). View file
 
.vs/IBCFProductRecommendations/FileContentIndex/ef4b1799-0292-49f2-abd8-9b28cc4edb00.vsidx ADDED
Binary file (403 Bytes). View file
 
.vs/IBCFProductRecommendations/FileContentIndex/read.lock ADDED
File without changes
.vs/IBCFProductRecommendations/v17/.wsuo ADDED
Binary file (29.2 kB). View file
 
.vs/VSWorkspaceState.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "ExpandedNodes": [
3
+ ""
4
+ ],
5
+ "SelectedNode": "\\app.py",
6
+ "PreviewInSolutionExplorer": false
7
+ }
.vs/slnx.sqlite ADDED
Binary file (90.1 kB). View file
 
Online_Retail.xlsx ADDED
Binary file (454 kB). View file
 
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from sklearn.metrics.pairwise import cosine_similarity
3
+ import gradio as gr
4
+
5
+ def find_similar_items(stock_code):
6
+ # Read data source Excel files.
7
+ df1 = pd.read_excel('Online_Retail.xlsx')
8
+
9
+ # Check dataframe information.
10
+ df1a = df1.dropna(subset=['CustomerID'])
11
+
12
+ # Create CustomerID vs Item (Purchased Items, by StockCode) matrix by pivot table function.
13
+ CustomerID_Item_matrix = df1a.pivot_table(
14
+ index='CustomerID',
15
+ columns='StockCode',
16
+ values='Quantity',
17
+ aggfunc='sum'
18
+ )
19
+
20
+ # Update illustration of the matrix, 1 to represent customer have purchased item, 0 to represent customer haven't purchased.
21
+ CustomerID_Item_matrix = CustomerID_Item_matrix.applymap(lambda x: 1 if x > 0 else 0)
22
+
23
+ # Create Item to Item similarity matrix.
24
+ item_item_similarity_matrix = pd.DataFrame(
25
+ cosine_similarity(CustomerID_Item_matrix.T)
26
+ )
27
+
28
+ # Update index to corresponding Item Code (StockCode).
29
+ item_item_similarity_matrix.columns = CustomerID_Item_matrix.T.index
30
+ item_item_similarity_matrix['StockCode'] = CustomerID_Item_matrix.T.index
31
+ item_item_similarity_matrix = item_item_similarity_matrix.set_index('StockCode')
32
+
33
+ # Randomly pick StockCode (23166) to display the most similar StockCode.
34
+ top_10_similar_items = list(
35
+ item_item_similarity_matrix\
36
+ .loc[22632]\
37
+ .sort_values(ascending=False)\
38
+ .iloc[:5]\
39
+ .index
40
+ )
41
+
42
+ # Display the list of similar items of StockCode (23166) with item Description.
43
+ results_df = df1a.loc[df1a['StockCode'].isin(top_10_similar_items), ['StockCode', 'Description']].drop_duplicates().set_index('StockCode').loc[top_10_similar_items]
44
+ return "\n" + results_df.to_string()
45
+
46
+ # Set up the interface
47
+ stock_code_input = gr.inputs.Textbox(label="Enter Stock Code:")
48
+ output_table = gr.outputs.Textbox(label="Similar Items")
49
+
50
+ gr.Interface(fn=find_similar_items, inputs=stock_code_input, outputs=output_table, title="Similar Items Recommendation System", description="Enter a stock code to find similar items").launch()
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ sklearn