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 +0 -0
- .vs/IBCFProductRecommendations/FileContentIndex/d36c4651-d804-4ac6-b598-bf53344d6496.vsidx +0 -0
- .vs/IBCFProductRecommendations/FileContentIndex/ef4b1799-0292-49f2-abd8-9b28cc4edb00.vsidx +0 -0
- .vs/IBCFProductRecommendations/FileContentIndex/read.lock +0 -0
- .vs/IBCFProductRecommendations/v17/.wsuo +0 -0
- .vs/VSWorkspaceState.json +7 -0
- .vs/slnx.sqlite +0 -0
- Online_Retail.xlsx +0 -0
- app.py +50 -0
- requirements.txt +1 -0
.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
|