GitHub Actions commited on
Commit
e7ced75
·
1 Parent(s): 5974e1f

Sync from GitHub Actions

Browse files
app.py CHANGED
@@ -1,18 +1,127 @@
 
 
 
 
 
1
  from visual_product_search.pipeline.training_pipeline import VisualProductPipeline
2
  from visual_product_search.pipeline.prediction_pipeline import ProductPredictionPipeline
3
  from visual_product_search.logger import logging
4
  from visual_product_search.exception import ExceptionHandle
5
- from flask import Flask, render_template, request
6
- import sys
7
 
8
  app = Flask(__name__)
9
- predictionPipeline = ProductPredictionPipeline()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
 
12
  @app.route("/", methods=["GET"])
13
  def home():
14
  return render_template("home.html")
15
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  @app.route("/train", methods=["GET"])
17
  def train_page():
18
  return render_template("train.html")
@@ -31,16 +140,17 @@ def model_train():
31
  def predict():
32
  try:
33
  k = int(request.form.get("k", 5))
34
-
 
35
  if request.form.get("text_field"):
36
  query = request.form["text_field"]
37
- outputs = predictionPipeline.search_with_text(query, k)
38
  results = [item.entity['image_link'] for item in outputs[0]]
39
  return render_template("home.html", results=results)
40
 
41
  elif "img_field" in request.files:
42
  img_file = request.files["img_field"]
43
- outputs = predictionPipeline.search_with_image(img_file, k)
44
  results = [item.entity['image_link'] for item in outputs[0]]
45
  return render_template("home.html", results=results)
46
 
 
1
+ import sys
2
+ import json
3
+ from pathlib import Path
4
+ from flask import Flask, render_template, request, jsonify
5
+
6
  from visual_product_search.pipeline.training_pipeline import VisualProductPipeline
7
  from visual_product_search.pipeline.prediction_pipeline import ProductPredictionPipeline
8
  from visual_product_search.logger import logging
9
  from visual_product_search.exception import ExceptionHandle
10
+ from visual_product_search.utils.config import load_json_file, to_percent
 
11
 
12
  app = Flask(__name__)
13
+ prediction_pipeline = None
14
+
15
+ def get_prediction_pipeline():
16
+ global prediction_pipeline
17
+
18
+ if prediction_pipeline is None:
19
+ prediction_pipeline = ProductPredictionPipeline()
20
+
21
+ return prediction_pipeline
22
+
23
+
24
+ def prepare_evaluation_view(metrics_data):
25
+ if not metrics_data or metrics_data.get("status") == "not_run_yet":
26
+ return None
27
+
28
+ metrics = metrics_data.get("metrics", {})
29
+ rows = [
30
+ {
31
+ "name": "Article Type Match",
32
+ "definition": "Same articleType",
33
+ "source": "strict",
34
+ },
35
+ {
36
+ "name": "Subcategory Match",
37
+ "definition": "Same subCategory",
38
+ "source": "medium",
39
+ },
40
+ {
41
+ "name": "Gender + Master Category Match",
42
+ "definition": "Same gender and masterCategory",
43
+ "source": "soft",
44
+ },
45
+ ]
46
+
47
+ prepared_rows = []
48
+ for row in rows:
49
+ source_metrics = metrics.get(row["source"], {})
50
+
51
+ prepared_rows.append(
52
+ {
53
+ "name": row["name"],
54
+ "definition": row["definition"],
55
+ "precision_5": to_percent(source_metrics.get("precision@5", 0)),
56
+ "ndcg_10": to_percent(source_metrics.get("ndcg@10", 0)),
57
+ "map_10": to_percent(source_metrics.get("map@10", 0)),
58
+ "mrr_10": to_percent(source_metrics.get("mrr@10", 0)),
59
+ }
60
+ )
61
+
62
+ return {
63
+ "model": metrics_data.get("model", "N/A"),
64
+ "dataset": metrics_data.get("dataset", "N/A"),
65
+ "num_queries": metrics_data.get("num_queries", 0),
66
+ "num_indexed_images": metrics_data.get("num_indexed_images", 0),
67
+ "embedding_dimension": metrics_data.get("embedding_dimension", 0),
68
+ "exclude_self_match": metrics_data.get("exclude_self_match", False),
69
+ "rows": prepared_rows,
70
+ "main_cards": {
71
+ "article_precision_5": prepared_rows[0]["precision_5"],
72
+ "subcategory_precision_5": prepared_rows[1]["precision_5"],
73
+ "gender_master_precision_5": prepared_rows[2]["precision_5"],
74
+ },
75
+ }
76
+
77
+
78
+ def prepare_benchmark_view(benchmark_data):
79
+ if not benchmark_data or benchmark_data.get("status") == "not_run_yet":
80
+ return None
81
+
82
+ latency = benchmark_data.get("latency_ms", {})
83
+ artifact_sizes = benchmark_data.get("artifact_sizes", {})
84
+
85
+ return {
86
+ "benchmark_type": benchmark_data.get("benchmark_type", "N/A"),
87
+ "top_k": benchmark_data.get("top_k", 0),
88
+ "num_runs": benchmark_data.get("num_runs", 0),
89
+ "mean": latency.get("mean", 0),
90
+ "p50": latency.get("p50", 0),
91
+ "p95": latency.get("p95", 0),
92
+ "p99": latency.get("p99", 0),
93
+ "embedding_file_mb": artifact_sizes.get("embedding_file_mb", 0),
94
+ "metadata_file_mb": artifact_sizes.get("metadata_file_mb", 0),
95
+ }
96
 
97
 
98
  @app.route("/", methods=["GET"])
99
  def home():
100
  return render_template("home.html")
101
+
102
+ @app.route("/health", methods=["GET"])
103
+ def health():
104
+ return jsonify(
105
+ {
106
+ "status": "ok",
107
+ "service": "visual-product-search",
108
+ }
109
+ )
110
+
111
+ @app.route("/evaluation", methods=["GET"])
112
+ def evaluation_dashboard():
113
+ metrics_data = load_json_file("artifacts/evaluation/image_to_image_metrics.json")
114
+ benchmark_data = load_json_file("artifacts/benchmark/benchmark_results.json")
115
+
116
+ evaluation_view = prepare_evaluation_view(metrics_data)
117
+ benchmark_view = prepare_benchmark_view(benchmark_data)
118
+
119
+ return render_template(
120
+ "evaluation.html",
121
+ evaluation=evaluation_view,
122
+ benchmark=benchmark_view,
123
+ )
124
+
125
  @app.route("/train", methods=["GET"])
126
  def train_page():
127
  return render_template("train.html")
 
140
  def predict():
141
  try:
142
  k = int(request.form.get("k", 5))
143
+ pipeline = get_prediction_pipeline()
144
+
145
  if request.form.get("text_field"):
146
  query = request.form["text_field"]
147
+ outputs = pipeline.search_with_text(query, k)
148
  results = [item.entity['image_link'] for item in outputs[0]]
149
  return render_template("home.html", results=results)
150
 
151
  elif "img_field" in request.files:
152
  img_file = request.files["img_field"]
153
+ outputs = pipeline.search_with_image(img_file, k)
154
  results = [item.entity['image_link'] for item in outputs[0]]
155
  return render_template("home.html", results=results)
156
 
artifacts/benchmark/benchmark_results.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "benchmark_type": "image_to_image_search_latency",
3
+ "num_indexed_images": 44065,
4
+ "metadata_rows": 44065,
5
+ "embedding_dimension": 768,
6
+ "top_k": 10,
7
+ "warmup_runs": 5,
8
+ "num_runs": 100,
9
+ "latency_ms": {
10
+ "mean": 10.4144,
11
+ "min": 3.2936,
12
+ "p50": 8.6958,
13
+ "p95": 20.1617,
14
+ "p99": 24.5445,
15
+ "max": 25.6564
16
+ },
17
+ "artifact_sizes": {
18
+ "embedding_file_mb": 129.0968,
19
+ "metadata_file_mb": 16.4993
20
+ },
21
+ "artifacts": {
22
+ "embedding_path": "/artifacts/embeddings/image_embeddings.npy",
23
+ "metadata_path": "/artifacts/embeddings/metadata_aligned.csv"
24
+ }
25
+ }
artifacts/evaluation/error_cases.csv ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ query_index,top1_index,query_image,query_articleType,query_subCategory,query_gender,query_masterCategory,top1_image,top1_articleType,top1_subCategory,top1_gender,top1_masterCategory,similarity_score,error_type
2
+ 948,34636,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/15526.jpg,Heels,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/47232.jpg,Sandals,Sandal,Men,Footwear,0.9425674676895142,wrong_articleType
3
+ 3558,1318,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/45098.jpg,Briefs,Innerwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/45097.jpg,Bra,Innerwear,Women,Apparel,0.8857896327972412,wrong_articleType
4
+ 3744,34366,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/27271.jpg,Tunics,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/24539.jpg,Kurtis,Topwear,Women,Apparel,0.9289357662200928,wrong_articleType
5
+ 4220,22572,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/33848.jpg,Casual Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/8972.jpg,Sports Shoes,Shoes,Men,Footwear,0.919640302658081,wrong_articleType
6
+ 4531,168,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/33087.jpg,Heels,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/53130.jpg,Flats,Shoes,Women,Footwear,0.9259762763977051,wrong_articleType
7
+ 4763,4992,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/46823.jpg,Heels,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/49608.jpg,Casual Shoes,Shoes,Women,Footwear,0.900321900844574,wrong_articleType
8
+ 5818,36142,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/37590.jpg,Innerwear Vests,Innerwear,Girls,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/3855.jpg,Tshirts,Topwear,Girls,Apparel,0.7995977401733398,wrong_articleType
9
+ 6142,24145,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/24948.jpg,Tshirts,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/26955.jpg,Tops,Topwear,Women,Apparel,0.9501664042472839,wrong_articleType
10
+ 7880,9021,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/30947.jpg,Tops,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/28773.jpg,Kurtis,Topwear,Women,Apparel,0.9203122854232788,wrong_articleType
11
+ 8861,3681,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/28910.jpg,Kurtas,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23241.jpg,Kurtis,Topwear,Women,Apparel,0.9279676079750061,wrong_articleType
12
+ 9814,13630,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/51175.jpg,Socks,Socks,Men,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/51135.jpg,Free Gifts,Free Gifts,Men,Free Items,0.9759629964828491,wrong_articleType
13
+ 10446,38764,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/43647.jpg,Tops,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/44702.jpg,Shirts,Topwear,Women,Apparel,0.8996403217315674,wrong_articleType
14
+ 10701,36464,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/57072.jpg,Jeans,Bottomwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/51598.jpg,Jeggings,Bottomwear,Women,Apparel,0.9528329372406006,wrong_articleType
15
+ 11533,24370,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/7692.jpg,Tshirts,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/7704.jpg,Tops,Topwear,Women,Apparel,0.9103350043296814,wrong_articleType
16
+ 11919,30804,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/49993.jpg,Lounge Shorts,Loungewear and Nightwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/42105.jpg,Shorts,Bottomwear,Men,Apparel,0.9306782484054565,wrong_articleType
17
+ 12481,23324,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/4624.jpg,Tops,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/5835.jpg,Tshirts,Topwear,Women,Apparel,0.8793818950653076,wrong_articleType
18
+ 13192,24273,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/22262.jpg,Heels,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/45404.jpg,Flats,Shoes,Women,Footwear,0.9214053153991699,wrong_articleType
19
+ 13606,6119,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/24502.jpg,Belts,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/24510.jpg,Kurtas,Topwear,Women,Apparel,0.9752088785171509,wrong_articleType
20
+ 13850,7839,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/28969.jpg,Kurta Sets,Apparel Set,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/58663.jpg,Kurtas,Topwear,Women,Apparel,0.915608823299408,wrong_articleType
21
+ 14744,8932,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/53402.jpg,Kurtas,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/53824.jpg,Tunics,Topwear,Women,Apparel,0.9279063940048218,wrong_articleType
22
+ 16487,37147,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/13972.jpg,Casual Shoes,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/6149.jpg,Sports Shoes,Shoes,Unisex,Footwear,0.9227504730224609,wrong_articleType
23
+ 17495,2226,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/41829.jpg,Flats,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/47563.jpg,Heels,Shoes,Women,Footwear,0.9254391193389893,wrong_articleType
24
+ 18926,39233,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/34827.jpg,Sports Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23856.jpg,Casual Shoes,Shoes,Men,Footwear,0.909993052482605,wrong_articleType
25
+ 19088,21023,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/31797.jpg,Tshirts,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/25365.jpg,Innerwear Vests,Innerwear,Men,Apparel,0.8886074423789978,wrong_articleType
26
+ 19519,25007,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/17838.jpg,Casual Shoes,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/9403.jpg,Sports Shoes,Shoes,Women,Footwear,0.9467912912368774,wrong_articleType
27
+ 19630,17840,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/30084.jpg,Free Gifts,Free Gifts,Men,Free Items,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/30071.jpg,Watches,Watches,Men,Accessories,0.7353814840316772,wrong_articleType
28
+ 20044,25824,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/50739.jpg,Formal Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/26560.jpg,Casual Shoes,Shoes,Men,Footwear,0.9567035436630249,wrong_articleType
29
+ 20201,15377,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/20015.jpg,Tshirts,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/19684.jpg,Tops,Topwear,Women,Apparel,0.8790856599807739,wrong_articleType
30
+ 20395,23151,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/19163.jpg,Tshirts,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/19528.jpg,Sweaters,Topwear,Men,Apparel,0.8501044511795044,wrong_articleType
31
+ 20581,28297,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/55617.jpg,Casual Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/17762.jpg,Formal Shoes,Shoes,Men,Footwear,0.9698576331138611,wrong_articleType
32
+ 21757,34488,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/1622.jpg,Jackets,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/59105.jpg,Rain Jacket,Topwear,Men,Apparel,0.8497763872146606,wrong_articleType
33
+ 21972,12862,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/51810.jpg,Nightdress,Loungewear and Nightwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/59993.jpg,Dresses,Dress,Women,Apparel,0.9154999256134033,wrong_articleType
34
+ 22367,13831,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23810.jpg,Casual Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/21810.jpg,Wallets,Wallets,Men,Accessories,1.0000004768371582,wrong_articleType
35
+ 24002,20159,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/2624.jpg,Heels,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/34071.jpg,Flats,Shoes,Women,Footwear,0.9188306331634521,wrong_articleType
36
+ 24436,35349,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/52447.jpg,Nightdress,Loungewear and Nightwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/52517.jpg,Baby Dolls,Loungewear and Nightwear,Women,Apparel,0.9396724700927734,wrong_articleType
37
+ 26245,14893,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/52228.jpg,Pendant,Jewellery,Women,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/52178.jpg,Ring,Jewellery,Women,Accessories,0.7879135608673096,wrong_articleType
38
+ 28947,11193,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/2967.jpg,Sports Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/26691.jpg,Casual Shoes,Shoes,Men,Footwear,0.9181327819824219,wrong_articleType
39
+ 29071,35040,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/58439.jpg,Dresses,Dress,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/28708.jpg,Kurtas,Topwear,Women,Apparel,0.8897051811218262,wrong_articleType
40
+ 29427,38883,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/47610.jpg,Heels,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/47528.jpg,Flats,Shoes,Women,Footwear,0.9208894968032837,wrong_articleType
41
+ 29799,13453,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/20182.jpg,Shirts,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/20156.jpg,Tshirts,Topwear,Men,Apparel,0.9264822006225586,wrong_articleType
42
+ 31647,24611,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/32288.jpg,Watches,Watches,Men,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/53592.jpg,Free Gifts,Free Gifts,Men,Free Items,0.8738217353820801,wrong_articleType
43
+ 32046,22588,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/52568.jpg,Clutches,Bags,Women,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/16763.jpg,Handbags,Bags,Women,Accessories,0.9237739443778992,wrong_articleType
44
+ 32512,36077,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/44404.jpg,Sports Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/22851.jpg,Casual Shoes,Shoes,Men,Footwear,0.9264622926712036,wrong_articleType
45
+ 32882,9067,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/4602.jpg,Backpacks,Bags,Unisex,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/4601.jpg,Rucksacks,Bags,Unisex,Accessories,0.9151055812835693,wrong_articleType
46
+ 33057,32323,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23143.jpg,Sweatshirts,Topwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23150.jpg,Jackets,Topwear,Women,Apparel,0.9352626800537109,wrong_articleType
47
+ 33143,9482,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23527.jpg,Deodorant,Fragrance,Men,Personal Care,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/44063.jpg,Fragrance Gift Set,Fragrance,Men,Personal Care,0.8310849666595459,wrong_articleType
48
+ 33519,35684,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/27346.jpg,Deodorant,Fragrance,Women,Personal Care,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/26001.jpg,Perfume and Body Mist,Fragrance,Women,Personal Care,0.6996232271194458,wrong_articleType
49
+ 33718,32208,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/38533.jpg,Casual Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/12889.jpg,Sports Shoes,Shoes,Men,Footwear,0.9219768047332764,wrong_articleType
50
+ 33732,9081,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/18550.jpg,Casual Shoes,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/18549.jpg,Flats,Shoes,Women,Footwear,0.9110183715820312,wrong_articleType
51
+ 34561,74,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/19245.jpg,Jackets,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23876.jpg,Sweatshirts,Topwear,Men,Apparel,0.8904398679733276,wrong_articleType
52
+ 34798,1876,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/16804.jpg,Dresses,Dress,Girls,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/10656.jpg,Tops,Topwear,Women,Apparel,0.8774722814559937,wrong_articleType
53
+ 35412,21750,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/15016.jpg,Sweatshirts,Topwear,Men,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/13094.jpg,Sweaters,Topwear,Men,Apparel,0.8954243659973145,wrong_articleType
54
+ 35417,37534,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/32634.jpg,Track Pants,Bottomwear,Women,Apparel,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/32632.jpg,Capris,Bottomwear,Women,Apparel,0.9590926766395569,wrong_articleType
55
+ 36246,36151,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/56120.jpg,Lip Gloss,Lips,Women,Personal Care,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/56118.jpg,Lipstick,Lips,Women,Personal Care,0.826729416847229,wrong_articleType
56
+ 37406,35802,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/20767.jpg,Flats,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/20766.jpg,Heels,Shoes,Women,Footwear,0.9011647701263428,wrong_articleType
57
+ 39313,42540,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/2631.jpg,Flats,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/10615.jpg,Casual Shoes,Shoes,Women,Footwear,0.9223020076751709,wrong_articleType
58
+ 39396,10745,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/23097.jpg,Flip Flops,Flip Flops,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/56968.jpg,Heels,Shoes,Women,Footwear,0.857206404209137,wrong_articleType
59
+ 41085,1320,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/25934.jpg,Scarves,Scarves,Women,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/14635.jpg,Mufflers,Mufflers,Men,Accessories,0.959419846534729,wrong_articleType
60
+ 41170,42962,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/55086.jpg,Eye Cream,Skin Care,Women,Personal Care,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/55087.jpg,Face Wash and Cleanser,Skin Care,Women,Personal Care,0.864392101764679,wrong_articleType
61
+ 42267,2991,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/12348.jpg,Handbags,Bags,Men,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/12361.jpg,Shirts,Topwear,Men,Apparel,0.9148913025856018,wrong_articleType
62
+ 42333,22889,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/39505.jpg,Duffel Bag,Bags,Unisex,Accessories,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/29188.jpg,Laptop Bag,Bags,Men,Accessories,0.931201696395874,wrong_articleType
63
+ 42730,42721,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/11932.jpg,Flats,Shoes,Women,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/19363.jpg,Sandals,Sandal,Men,Footwear,0.9256055355072021,wrong_articleType
64
+ 42799,29722,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/18413.jpg,Sports Shoes,Shoes,Men,Footwear,/.cache/kagglehub/datasets/paramaggarwal/fashion-product-images-dataset/versions/1/fashion-dataset/images/22874.jpg,Casual Shoes,Shoes,Men,Footwear,0.8891521692276001,wrong_articleType
artifacts/evaluation/image_to_image_category_breakdown.csv ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ relevance_level,category,num_queries,precision@1,recall@1,map@1,ndcg@1,mrr@1,precision@5,recall@5,map@5,ndcg@5,mrr@5,precision@10,recall@10,map@10,ndcg@10,mrr@10,precision@20,recall@20,map@20,ndcg@20,mrr@20,precision@50,recall@50,map@50,ndcg@50,mrr@50,precision@100,recall@100,map@100,ndcg@100,mrr@100
2
+ strict,Tops,18,0.8333333333333334,0.000473215975771342,0.8333333333333334,0.8333333333333334,0.8333333333333334,0.7111111111111111,0.002019054829957726,0.6640740740740741,0.7350814933641876,0.875,0.6333333333333333,0.0035964414158622,0.5517328042328042,0.6698131142608914,0.8819444444444444,0.611111111111111,0.006940500977979683,0.49793498728128505,0.642204687563015,0.8819444444444444,0.58,0.016467915956842702,0.42422927076383904,0.60326939731902,0.8819444444444444,0.5394444444444445,0.030632847498264875,0.3707854832660573,0.5634845554012787,0.8819444444444444
3
+ strict,Tshirts,88,0.9431818181818182,0.00013351950993513846,0.9431818181818182,0.9431818181818182,0.9431818181818182,0.934090909090909,0.0006611628744980952,0.9121969696969696,0.9385926391750444,0.9696969696969696,0.9090909090909091,0.0012869350355194068,0.87846636002886,0.9200122972592815,0.9696969696969696,0.8880681818181819,0.002514349325646041,0.8437451498664733,0.9015957778736605,0.9696969696969696,0.8620454545454546,0.006101680737156389,0.8008346714138312,0.8756923030610495,0.9696969696969696,0.847159090909091,0.011992625862246475,0.7759391024914041,0.8591985295439801,0.9696969696969696
4
+ strict,Handbags,18,0.9444444444444444,0.0005372266464416635,0.9444444444444444,0.9444444444444444,0.9444444444444444,0.9222222222222223,0.0026229300973328274,0.9222222222222223,0.9298661024986288,0.9444444444444444,0.9166666666666666,0.00521425862722791,0.9061728395061728,0.9229752610322923,0.9444444444444444,0.9249999999999999,0.010523321956769055,0.9094763435643208,0.9265857720796262,0.9444444444444444,0.9244444444444445,0.026292504108203763,0.9081574252746315,0.9254140074792109,0.9444444444444444,0.9188888888888889,0.05226899254203008,0.901953176878259,0.9208904224917797,0.9444444444444444
5
+ strict,Sports Shoes,21,0.8095238095238095,0.000401748788845563,0.8095238095238095,0.8095238095238095,0.8095238095238095,0.7904761904761903,0.00196147938083422,0.7620634920634921,0.7952007057071833,0.8571428571428571,0.7904761904761903,0.003922958761668439,0.7430461073318215,0.7933768670693558,0.861904761904762,0.8023809523809523,0.007964078931820866,0.7378201032897517,0.8002812926071309,0.8647058823529411,0.7771428571428571,0.01928394186458703,0.7122546797137153,0.7813996327502599,0.8647058823529411,0.7785714285714285,0.038638780574264446,0.7061694368489198,0.7809789784486773,0.8647058823529411
6
+ strict,Bracelet,1,1.0,0.015384615384615385,1.0,1.0,1.0,0.8,0.06153846153846154,0.76,0.8539316501572937,1.0,0.5,0.07692307692307693,0.43555555555555553,0.6203974344166849,1.0,0.45,0.13846153846153847,0.32327228327228325,0.5458694151459268,1.0,0.32,0.24615384615384617,0.17908286005646976,0.4023703741270275,1.0,0.3,0.46153846153846156,0.2023320688963479,0.48024162892530664,1.0
7
+ strict,Kurtas,28,0.9285714285714286,0.0005038369118672972,0.9285714285714286,0.9285714285714286,0.9285714285714286,0.9285714285714286,0.0025191845593364862,0.899047619047619,0.9304727963376725,0.9642857142857143,0.9249999999999999,0.005018990775908845,0.8867375283446712,0.927533115144157,0.9642857142857143,0.9214285714285714,0.009999224866289439,0.8759252746230991,0.9247340909270163,0.9642857142857143,0.9,0.02441671188279978,0.8437564062102467,0.9075707107832117,0.9642857142857143,0.8821428571428571,0.04786450662739322,0.8145613138827877,0.8909763181227406,0.9642857142857143
8
+ strict,Heels,22,0.7272727272727273,0.0005501306560308074,0.7272727272727273,0.7272727272727273,0.7272727272727273,0.7454545454545456,0.002819419612157888,0.6916666666666667,0.7453831654409865,0.7954545454545454,0.7181818181818181,0.005432540228304222,0.6322132034632035,0.7262726196617075,0.8075757575757575,0.7318181818181819,0.01107137945262,0.6186297986714009,0.7333608756562491,0.8075757575757575,0.7054545454545456,0.026681336817494152,0.5737303078669301,0.7128166547944184,0.8075757575757575,0.7063636363636363,0.05343143996699217,0.5616343166115465,0.7108525914364241,0.8075757575757575
9
+ strict,Jeans,7,0.8571428571428571,0.0014261944378416924,0.8571428571428571,0.8571428571428571,0.8571428571428571,0.9714285714285714,0.008081768481102923,0.9347619047619047,0.951548542103769,0.9285714285714286,0.9714285714285714,0.016163536962205845,0.942641723356009,0.9586395731093061,0.9285714285714286,0.9571428571428572,0.03185167577846446,0.928934316334803,0.9535232797506514,0.9285714285714286,0.9428571428571428,0.07844069408129307,0.9034625773894069,0.9439557263206402,0.9285714285714286,0.9085714285714286,0.15117661041121938,0.8587349398390582,0.9170977421855958,0.9285714285714286
10
+ strict,Ring,2,1.0,0.008547008547008548,1.0,1.0,1.0,1.0,0.042735042735042736,1.0,1.0,1.0,1.0,0.08547008547008547,1.0,1.0,1.0,1.0,0.17094017094017094,1.0,1.0,1.0,0.8999999999999999,0.3846153846153846,0.879746704990426,0.925948336628803,1.0,0.71,0.6068376068376069,0.6596103048359846,0.7728204820135358,1.0
11
+ strict,Sandals,11,1.0,0.0011185682326621922,1.0,1.0,1.0,0.8909090909090908,0.0049827130364043124,0.8863636363636364,0.920105110213332,1.0,0.8181818181818182,0.009151921903599756,0.7901948051948053,0.8582601574801992,1.0,0.7363636363636363,0.016473459426479563,0.6813522767573921,0.786617765694098,1.0,0.6545454545454545,0.036607687614399025,0.5708433799760771,0.7027965170098897,1.0,0.6218181818181818,0.06955460646735814,0.5154956048169166,0.6587621043447288,1.0
12
+ strict,Casual Shoes,38,0.8157894736842105,0.0002868458064993709,0.8157894736842105,0.8157894736842105,0.8157894736842105,0.7947368421052632,0.001397216670367903,0.7376315789473684,0.7978539329174572,0.875,0.7736842105263156,0.002720408616477904,0.7031140350877193,0.7812549803094687,0.875,0.7526315789473683,0.005292767784440002,0.6733284655197337,0.7639756161487942,0.875,0.7142105263157894,0.012556443852246649,0.6244824529197538,0.7302952495486165,0.875,0.6878947368421054,0.024187578651269522,0.5852266030661072,0.7039951578419168,0.875
13
+ strict,Watches,29,0.9655172413793104,0.0003799753016053956,0.9655172413793104,0.9655172413793104,0.9655172413793104,0.993103448275862,0.001954158693970606,0.9842528735632183,0.9883048205078064,0.9827586206896551,0.996551724137931,0.003921887934427119,0.989900109469075,0.9924106287483421,0.9827586206896551,0.9879310344827585,0.007775923136424702,0.9811583860103931,0.9878932943806396,0.9827586206896551,0.9800000000000001,0.019283746556473833,0.9675466617874048,0.9817942666407994,0.9827586206896551,0.9872413793103448,0.038852474589151705,0.9737364590550174,0.986729869147543,0.9827586206896551
14
+ strict,Sunglasses,14,1.0,0.0009328358208955222,1.0,1.0,1.0,0.9857142857142858,0.004597547974413646,0.9792857142857143,0.9878871355259423,1.0,0.9928571428571429,0.009261727078891255,0.985031179138322,0.9921395797750686,1.0,0.9892857142857142,0.01845682302771855,0.9828267615321187,0.990146574097115,1.0,0.9885714285714285,0.0461087420042644,0.9804772680341108,0.9894090703246824,1.0,0.9892857142857144,0.09228411513859278,0.9800475974890659,0.9896686540541184,1.0
15
+ strict,Belts,9,0.8888888888888888,0.0010946907498631637,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.005473453749315818,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.010946907498631636,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.021893814997263273,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.05473453749315818,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8877777777777778,0.10933223864258347,0.8870349285153634,0.8879579953355989,0.8888888888888888
16
+ strict,Briefs,11,0.9090909090909091,0.001074575542660649,0.9090909090909091,0.9090909090909091,0.9090909090909091,0.8727272727272727,0.005157962604771116,0.8645454545454545,0.8817468018046227,0.9090909090909091,0.8454545454545456,0.009993552546744036,0.82489898989899,0.8590717717454808,0.9090909090909091,0.8409090909090909,0.019879647539222008,0.8057002867312817,0.851304274608713,0.9090909090909091,0.8345454545454545,0.049323017408123795,0.7797544651861112,0.8409885786703595,0.9109848484848484,0.8163636363636364,0.0964968837309263,0.7559347531810946,0.8250476053830815,0.9109848484848484
17
+ strict,Sweatshirts,6,0.6666666666666666,0.002347417840375587,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.7333333333333333,0.012910798122065727,0.5772222222222222,0.7030006654878274,0.8055555555555555,0.6499999999999999,0.022887323943661973,0.4982671957671958,0.6575567399084997,0.8055555555555555,0.5666666666666668,0.03990610328638498,0.40275116044659387,0.5950517107868337,0.8055555555555555,0.39666666666666667,0.0698356807511737,0.258175540983181,0.4552720844364259,0.8055555555555555,0.30333333333333334,0.1068075117370892,0.17095746280443422,0.36118146623273106,0.8055555555555555
18
+ strict,Tunics,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03,0.013157894736842105,0.0006882474954764112,0.022243500784429285,0.012048192771084338
19
+ strict,Flip Flops,6,0.8333333333333334,0.0009127418765972982,0.8333333333333334,0.8333333333333334,0.8333333333333334,0.8666666666666667,0.00474625775830595,0.8005555555555555,0.8650790853234042,0.9166666666666666,0.8666666666666667,0.0094925155166119,0.7933267195767196,0.8671298801552086,0.9166666666666666,0.8750000000000001,0.019167579408543262,0.7847317385988052,0.8725926291743938,0.9166666666666666,0.8466666666666667,0.04636728733114275,0.7570939283419759,0.8525655947134795,0.9166666666666666,0.795,0.08707557502738227,0.6949324326906864,0.8102092833562632,0.9166666666666666
20
+ strict,Lipstick,4,1.0,0.003861003861003861,1.0,1.0,1.0,1.0,0.019305019305019305,1.0,1.0,1.0,1.0,0.03861003861003861,1.0,1.0,1.0,1.0,0.07722007722007722,1.0,1.0,1.0,0.985,0.19015444015444016,0.9818328715167078,0.9891411888774015,1.0,0.9325,0.36003861003861004,0.9186834062648591,0.9485443435489016,1.0
21
+ strict,Wallets,10,1.0,0.0010787486515641855,1.0,1.0,1.0,0.9800000000000001,0.005285868392664509,0.9800000000000001,0.9868794922487659,1.0,0.96,0.010355987055016183,0.9516111111111112,0.9711617948605678,1.0,0.9400000000000001,0.02028047464940669,0.9178252981109019,0.9532050285113659,1.0,0.9119999999999999,0.04919093851132686,0.8664589866758758,0.9262345999290152,1.0,0.881,0.09503775620280473,0.8206756447678469,0.897643609708151,1.0
22
+ strict,Shirts,29,0.9655172413793104,0.000300690514288169,0.9655172413793104,0.9655172413793104,0.9655172413793104,0.9724137931034482,0.0015141915183797077,0.9564367816091954,0.9705540810290588,0.9827586206896551,0.9793103448275862,0.0030498609306371417,0.9600985221674878,0.9756584344124023,0.9827586206896551,0.9810344827586207,0.006110460808213146,0.9634136390755373,0.9781400194135245,0.9827586206896551,0.9841379310344828,0.015324477281757749,0.9683349960180094,0.9817267004341467,0.9827586206896551,0.9744827586206896,0.03034826404922733,0.959048408356997,0.9753656044005464,0.9827586206896551
23
+ strict,Nightdress,5,0.6,0.00320855614973262,0.6,0.6,0.6,0.6,0.0160427807486631,0.532,0.6259609385620779,0.7666666666666666,0.6599999999999999,0.03529411764705882,0.5399920634920635,0.662092424737008,0.7666666666666666,0.62,0.06631016042780749,0.48820338820106624,0.6329114698863278,0.7666666666666666,0.5599999999999999,0.1497326203208556,0.41596126176411186,0.58214044546395,0.7666666666666666,0.45,0.24064171122994651,0.31681827426472386,0.4902098100856639,0.7666666666666666
24
+ strict,Formal Shoes,6,0.8333333333333334,0.001310272536687631,0.8333333333333334,0.8333333333333334,0.8333333333333334,0.9666666666666667,0.00759958071278826,0.9238888888888889,0.9434732991210639,0.9166666666666666,0.9666666666666667,0.01519916142557652,0.9361838624338624,0.9527145742504947,0.9166666666666666,0.9249999999999999,0.029088050314465406,0.8877035691490026,0.9278414483107085,0.9166666666666666,0.9233333333333332,0.07258909853249475,0.8687266385514699,0.9253660895224423,0.9166666666666666,0.8916666666666666,0.1401991614255765,0.8248717705614766,0.9002754694538958,0.9166666666666666
25
+ strict,Innerwear Vests,2,0.5,0.002074688796680498,0.5,0.5,0.5,0.5,0.01037344398340249,0.5,0.5,0.5,0.45,0.01867219917012448,0.4331944444444445,0.46331803895032,0.5,0.325,0.026970954356846474,0.2999197330447331,0.3723604764700568,0.5,0.17,0.035269709543568464,0.13616695277902177,0.23502291154293245,0.5172413793103449,0.105,0.043568464730290454,0.07077588396524034,0.16022698417310127,0.5172413793103449
26
+ strict,Duffel Bag,2,0.5,0.005747126436781609,0.5,0.5,0.5,0.4,0.022988505747126436,0.4,0.4343974612438291,0.5,0.25,0.028735632183908046,0.24166666666666664,0.32109336333445054,0.5,0.19999999999999998,0.04597701149425287,0.14315752616836208,0.2588652879092883,0.5263157894736842,0.13,0.07471264367816091,0.06556844288821953,0.1799251457967402,0.5263157894736842,0.1,0.11494252873563218,0.04246524431181208,0.15255117715306427,0.5263157894736842
27
+ strict,Earrings,5,1.0,0.0024096385542168677,1.0,1.0,1.0,1.0,0.012048192771084338,1.0,1.0,1.0,1.0,0.024096385542168676,1.0,1.0,1.0,0.99,0.047710843373493975,0.9889736842105263,0.9933125017230573,1.0,0.9879999999999999,0.11903614457831324,0.9830448024360002,0.9906635892496812,1.0,0.97,0.23373493975903611,0.9578372012136951,0.9758756623374314,1.0
28
+ strict,Churidar,1,1.0,0.034482758620689655,1.0,1.0,1.0,0.6,0.10344827586206896,0.55,0.6992148198508501,1.0,0.4,0.13793103448275862,0.315,0.5173633627401373,1.0,0.25,0.1724137931034483,0.1706578947368421,0.3667543921694986,1.0,0.16,0.27586206896551724,0.1370397538561852,0.35189484617462896,1.0,0.15,0.5172413793103449,0.1784848472928275,0.47955956737702393,1.0
29
+ strict,Sunscreen,1,1.0,0.07142857142857142,1.0,1.0,1.0,1.0,0.35714285714285715,1.0,1.0,1.0,0.6,0.42857142857142855,0.6,0.727329844310522,1.0,0.3,0.42857142857142855,0.42857142857142855,0.5889255678238341,1.0,0.22,0.7857142857142857,0.5191945848349789,0.7614027878714363,1.0,0.11,0.7857142857142857,0.5191945848349789,0.7614027878714363,1.0
30
+ strict,Sarees,5,1.0,0.002347417840375587,1.0,1.0,1.0,1.0,0.011737089201877934,1.0,1.0,1.0,1.0,0.023474178403755867,1.0,1.0,1.0,1.0,0.046948356807511735,1.0,1.0,1.0,0.984,0.11549295774647887,0.9779196817365042,0.9877306379489946,1.0,0.978,0.2295774647887324,0.9665841376132696,0.9818517710494777,1.0
31
+ strict,Kurta Sets,2,0.5,0.005376344086021506,0.5,0.5,0.5,0.6000000000000001,0.03225806451612903,0.42833333333333334,0.565602538756171,0.6666666666666666,0.65,0.06989247311827958,0.4602182539682539,0.6164863042785369,0.6666666666666666,0.55,0.11827956989247311,0.36901370376699316,0.5565804219537898,0.6666666666666666,0.39,0.2096774193548387,0.24343788318549042,0.43539919453551584,0.6666666666666666,0.25,0.26881720430107525,0.14958701958535434,0.32686769954340417,0.6666666666666666
32
+ strict,Perfume and Body Mist,6,1.0,0.0016611295681063125,1.0,1.0,1.0,1.0,0.008305647840531562,1.0,1.0,1.0,0.9500000000000001,0.015780730897009966,0.940462962962963,0.964941894600388,1.0,0.9500000000000001,0.03156146179401994,0.9254808651673977,0.9601064414231008,1.0,0.9266666666666667,0.0769656699889258,0.8827349677510031,0.9367163251902761,1.0,0.9550000000000001,0.1586378737541528,0.9061359952402063,0.9546100761773779,1.0
33
+ strict,Ties,3,1.0,0.003816793893129771,1.0,1.0,1.0,1.0,0.019083969465648856,1.0,1.0,1.0,1.0,0.03816793893129771,1.0,1.0,1.0,1.0,0.07633587786259542,1.0,1.0,1.0,1.0,0.19083969465648856,1.0,1.0,1.0,1.0,0.3816793893129771,1.0,1.0,1.0
34
+ strict,Dresses,5,0.6,0.0012958963282937365,0.6,0.6,0.6,0.56,0.006047516198704103,0.466,0.5749652118921823,0.8,0.6,0.012958963282937367,0.42681746031746026,0.5938983437139892,0.8,0.5700000000000001,0.024622030237580993,0.3741840495246068,0.5730384560433783,0.8,0.52,0.056155507559395246,0.3195002405458173,0.5350723247824887,0.8,0.458,0.09892008639308855,0.26001442206612946,0.48226838810474304,0.8
35
+ strict,Socks,9,0.8888888888888888,0.001299545159194282,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.9777777777777779,0.007147498375568551,0.9492592592592592,0.9623155327473759,0.9444444444444444,0.9888888888888889,0.014457439896036385,0.9674559082892417,0.9755453593002135,0.9444444444444444,0.9944444444444444,0.029077322936972058,0.9800125574603129,0.984217773374038,0.9444444444444444,0.9933333333333333,0.07261208576998052,0.9829384486368201,0.9877997286899625,0.9444444444444444,0.9955555555555556,0.14554905782975958,0.9878975260871586,0.991661302899367,0.9444444444444444
36
+ strict,Jeggings,1,1.0,0.030303030303030304,1.0,1.0,1.0,0.4,0.06060606060606061,0.4,0.5531464700081437,1.0,0.4,0.12121212121212122,0.29,0.5009732673492617,1.0,0.25,0.15151515151515152,0.16285714285714287,0.3596680771870457,1.0,0.18,0.2727272727272727,0.1189087207330108,0.3339284697995714,1.0,0.14,0.42424242424242425,0.14345666705458032,0.4164037795526288,1.0
37
+ strict,Lounge Shorts,1,0.0,0.0,0.0,0.0,0.0,0.2,0.030303030303030304,0.1,0.21398626473452756,0.5,0.2,0.06060606060606061,0.07857142857142857,0.2122263659729146,0.5,0.2,0.12121212121212122,0.06258888170652877,0.20833368970365634,0.5,0.16,0.24242424242424243,0.06437010701716583,0.23378283646812098,0.5,0.09,0.2727272727272727,0.06856591121297004,0.2507402029190052,0.5
38
+ strict,Pendant,4,0.75,0.004285714285714286,0.75,0.75,0.75,0.75,0.02142857142857143,0.6799999999999999,0.7611015405244299,0.875,0.7,0.04,0.5960714285714286,0.7239411376471965,0.875,0.6625000000000001,0.0757142857142857,0.5622722098055883,0.6899899124270824,0.875,0.6199999999999999,0.17714285714285716,0.49511633566219865,0.6460779334268033,0.875,0.5225,0.29857142857142854,0.3785243921860037,0.5625496937242438,0.875
39
+ strict,Track Pants,3,0.6666666666666666,0.0022002200220022,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.9333333333333332,0.015401540154015401,0.8477777777777779,0.886946598242128,0.8333333333333334,0.9,0.0297029702970297,0.821957671957672,0.8784185804229518,0.8333333333333334,0.8333333333333334,0.05500550055005501,0.762849361680631,0.8422972947379832,0.8333333333333334,0.7400000000000001,0.1221122112211221,0.6403545872082947,0.7669482809744393,0.8333333333333334,0.7166666666666667,0.23652365236523654,0.5883492492496344,0.739048351933642,0.8333333333333334
40
+ strict,Backpacks,4,0.75,0.001037344398340249,0.75,0.75,0.75,0.85,0.005878284923928077,0.7916666666666666,0.8289121131198787,0.8333333333333334,0.875,0.01210235131396957,0.795436507936508,0.8528125449384201,0.8333333333333334,0.8625,0.023858921161825725,0.7809667962004455,0.8500913788506713,0.8333333333333334,0.9,0.06224066390041494,0.8140456532456364,0.8842024216997088,0.8333333333333334,0.9225000000000001,0.12759336099585064,0.8438803305819068,0.9075195313422983,0.8333333333333334
41
+ strict,Nail Polish,3,1.0,0.003610108303249098,1.0,1.0,1.0,1.0,0.018050541516245487,1.0,1.0,1.0,1.0,0.036101083032490974,1.0,1.0,1.0,1.0,0.07220216606498195,1.0,1.0,1.0,1.0,0.18050541516245489,1.0,1.0,1.0,0.93,0.3357400722021661,0.9191702035369559,0.9472529881206961,1.0
42
+ strict,Salwar,1,1.0,0.03225806451612903,1.0,1.0,1.0,1.0,0.16129032258064516,1.0,1.0,1.0,0.8,0.25806451612903225,0.7577777777777778,0.8572048559638626,1.0,0.65,0.41935483870967744,0.5564457927693222,0.7299785971916607,1.0,0.38,0.6129032258064516,0.46999522858762227,0.6802443710493814,1.0,0.22,0.7096774193548387,0.5045755228453358,0.7345444223989535,1.0
43
+ strict,Mascara,1,1.0,0.09090909090909091,1.0,1.0,1.0,0.4,0.18181818181818182,0.4,0.5531464700081437,1.0,0.4,0.36363636363636365,0.28194444444444444,0.4946396555628011,1.0,0.2,0.36363636363636365,0.2563131313131313,0.46602873234483255,1.0,0.12,0.5454545454545454,0.2913556749763646,0.5509725759034292,1.0,0.07,0.6363636363636364,0.3009975482546015,0.5851562521409719,1.0
44
+ strict,Stoles,2,1.0,0.011235955056179775,1.0,1.0,1.0,1.0,0.056179775280898875,1.0,1.0,1.0,1.0,0.11235955056179775,1.0,1.0,1.0,0.8999999999999999,0.20224719101123595,0.8923026315789473,0.9327055362560578,1.0,0.55,0.3089887640449438,0.4852705541491801,0.6514701244776986,1.0,0.33,0.3707865168539326,0.3066179900546065,0.4827018890897537,1.0
45
+ strict,Flats,5,0.2,0.00040080160320641277,0.2,0.2,0.2,0.36,0.003607214428857715,0.2806666666666667,0.345751541923641,0.4,0.27999999999999997,0.0056112224448897794,0.20354761904761903,0.29574486445511916,0.4,0.24000000000000005,0.009619238476953907,0.14323649763549143,0.2618475855527742,0.4287179487179487,0.252,0.02525050100200401,0.12070129771980262,0.2623730162803078,0.4287179487179487,0.21000000000000002,0.04208416833667335,0.08964820610638875,0.2260451503048151,0.4287179487179487
46
+ strict,Night suits,2,1.0,0.007142857142857143,1.0,1.0,1.0,0.9,0.03214285714285714,0.855,0.915209948681596,1.0,0.7,0.05,0.6118849206349206,0.7620541057015415,1.0,0.6,0.08571428571428572,0.4759225211063446,0.6691591361209503,1.0,0.38,0.13571428571428573,0.2640275276506798,0.4725499840896291,1.0,0.25,0.17857142857142855,0.15176417827981256,0.3369805802336041,1.0
47
+ strict,Trousers,2,1.0,0.001890359168241966,1.0,1.0,1.0,1.0,0.00945179584120983,1.0,1.0,1.0,1.0,0.01890359168241966,1.0,1.0,1.0,1.0,0.03780718336483932,1.0,1.0,1.0,1.0,0.0945179584120983,1.0,1.0,1.0,1.0,0.1890359168241966,1.0,1.0,1.0
48
+ strict,Jackets,8,0.75,0.0029182879377431907,0.75,0.75,0.75,0.825,0.016050583657587547,0.7616666666666667,0.811407461511197,0.8375,0.8125,0.0316147859922179,0.7336309523809523,0.8088874600237141,0.8375,0.6875,0.05350194552529183,0.6024202117971469,0.722470889314462,0.8375,0.5575,0.10846303501945524,0.4471102483275035,0.6109008481441246,0.8375,0.43125,0.16780155642023345,0.31138592035229046,0.4940804120957518,0.8375
49
+ strict,Free Gifts,2,0.5,0.005555555555555556,0.5,0.5,0.5,0.4,0.022222222222222223,0.38,0.42696582507864683,0.5,0.25,0.027777777777777776,0.2257142857142857,0.313753566530828,0.5,0.2,0.044444444444444446,0.1432936507936508,0.2535523425626366,0.5,0.09,0.05,0.059685881370091905,0.14573698833072016,0.5,0.07,0.07777777777777778,0.03756069564005359,0.11739410689421408,0.5
50
+ strict,Trunk,2,1.0,0.007194244604316547,1.0,1.0,1.0,0.9,0.03237410071942446,0.88,0.9269658250786468,1.0,0.75,0.0539568345323741,0.6771031746031746,0.8088819995806238,1.0,0.55,0.07913669064748202,0.472890749601276,0.6495438787446793,1.0,0.49,0.1762589928057554,0.35968606112983137,0.5670900891664332,1.0,0.355,0.25539568345323743,0.2295702669783784,0.4347884918718558,1.0
51
+ strict,Sweaters,3,1.0,0.003636363636363637,1.0,1.0,1.0,0.6,0.01090909090909091,0.5566666666666666,0.702097646672096,1.0,0.5,0.018181818181818184,0.3968253968253968,0.5957798807600156,1.0,0.5166666666666667,0.037575757575757575,0.34869046158519845,0.5771298290002843,1.0,0.3866666666666667,0.0703030303030303,0.2193962318157823,0.4515360643864958,1.0,0.32,0.11636363636363638,0.15371971630285372,0.37527734571391047,1.0
52
+ strict,Bangle,1,1.0,0.011904761904761904,1.0,1.0,1.0,0.8,0.047619047619047616,0.8,0.8687949224876582,1.0,0.6,0.07142857142857142,0.569047619047619,0.715550648768261,1.0,0.5,0.11904761904761904,0.3965102707749766,0.6040344146789818,1.0,0.38,0.2261904761904762,0.24586151657043093,0.4704905234642426,1.0,0.25,0.2976190476190476,0.17086845758886152,0.3817593970885202,1.0
53
+ strict,Leggings,2,1.0,0.005681818181818182,1.0,1.0,1.0,0.9,0.025568181818181816,0.88,0.9269658250786468,1.0,0.8500000000000001,0.048295454545454544,0.8077182539682539,0.8876683119885544,1.0,0.775,0.08806818181818182,0.7049117947540935,0.8237824706047663,1.0,0.63,0.17897727272727273,0.5092176210460404,0.6915821275884416,1.0,0.55,0.3125,0.4031281840282227,0.6073451468555797,1.0
54
+ strict,Shorts,5,1.0,0.0018315018315018315,1.0,1.0,1.0,0.8800000000000001,0.00805860805860806,0.8560000000000001,0.8940730565571915,1.0,0.82,0.015018315018315017,0.7525000000000001,0.8427832965156459,1.0,0.8400000000000001,0.03076923076923077,0.7520755867369645,0.8503642659273177,1.0,0.756,0.06923076923076923,0.6458146793447921,0.7832621877479559,1.0,0.704,0.12893772893772892,0.5714074848187194,0.7336770611234875,1.0
55
+ strict,Waistcoat,1,1.0,0.07142857142857142,1.0,1.0,1.0,0.6,0.21428571428571427,0.6,0.7227265726449519,1.0,0.4,0.2857142857142857,0.3571428571428571,0.542364015420035,1.0,0.25,0.35714285714285715,0.27611044417767105,0.48189411072527655,1.0,0.1,0.35714285714285715,0.27611044417767105,0.48189411072527655,1.0,0.05,0.35714285714285715,0.27611044417767105,0.48189411072527655,1.0
56
+ strict,Jewellery Set,1,1.0,0.017543859649122806,1.0,1.0,1.0,0.8,0.07017543859649122,0.76,0.8539316501572937,1.0,0.7,0.12280701754385964,0.619047619047619,0.769526190239283,1.0,0.65,0.22807017543859648,0.5286190770014298,0.7142343372392715,1.0,0.36,0.3157894736842105,0.2669502470517164,0.4691410506409163,1.0,0.23,0.40350877192982454,0.2576372057162467,0.48504196053554893,1.0
57
+ strict,Capris,1,1.0,0.005747126436781609,1.0,1.0,1.0,1.0,0.028735632183908046,1.0,1.0,1.0,0.7,0.040229885057471264,0.6527777777777778,0.7846170207230131,1.0,0.8,0.09195402298850575,0.6608164264356214,0.8213777907047924,1.0,0.58,0.16666666666666666,0.44894920911260494,0.6489563243775859,1.0,0.42,0.2413793103448276,0.2854371972189425,0.49879153485719846,1.0
58
+ strict,Accessory Gift Set,1,1.0,0.010416666666666666,1.0,1.0,1.0,1.0,0.052083333333333336,1.0,1.0,1.0,1.0,0.10416666666666667,1.0,1.0,1.0,1.0,0.20833333333333334,1.0,1.0,1.0,0.82,0.4270833333333333,0.7891848672940692,0.8678108204621303,1.0,0.61,0.6354166666666666,0.5565451391026561,0.7088250095433447,1.0
59
+ strict,Nail Essentials,1,1.0,0.2,1.0,1.0,1.0,0.2,0.2,0.2,0.3391602052736161,1.0,0.1,0.2,0.2,0.3391602052736161,1.0,0.05,0.2,0.2,0.3391602052736161,1.0,0.02,0.2,0.2,0.3391602052736161,1.0,0.01,0.2,0.2,0.3391602052736161,1.0
60
+ strict,Lip Gloss,2,0.5,0.004629629629629629,0.5,0.5,0.5,0.8,0.037037037037037035,0.6766666666666666,0.7573857224418388,0.75,0.85,0.07870370370370369,0.7164880952380952,0.8033608001768469,0.75,0.725,0.13425925925925924,0.6289332915106908,0.734243063947948,0.75,0.41,0.18981481481481483,0.35190635338608367,0.4962503904811356,0.75,0.29000000000000004,0.2685185185185185,0.21608790078745127,0.37035956044962326,0.75
61
+ strict,Dupatta,1,1.0,0.008695652173913044,1.0,1.0,1.0,1.0,0.043478260869565216,1.0,1.0,1.0,1.0,0.08695652173913043,1.0,1.0,1.0,0.9,0.1565217391304348,0.8949999999999999,0.9336975380477095,1.0,0.66,0.28695652173913044,0.5975185793021969,0.7408144752766844,1.0,0.66,0.5739130434782609,0.523364926381015,0.7113380080588599,1.0
62
+ strict,Clutches,1,0.0,0.0,0.0,0.0,0.0,0.6,0.010452961672473868,0.2866666666666666,0.4468535299918563,0.3333333333333333,0.8,0.027874564459930314,0.5142063492063491,0.6410457898283654,0.3333333333333333,0.65,0.04529616724738676,0.4386946532999164,0.5915761009517232,0.3333333333333333,0.54,0.09407665505226481,0.3401172568868676,0.5351062997179783,0.3333333333333333,0.43,0.14982578397212543,0.24454623639591624,0.451872041833187,0.3333333333333333
63
+ strict,Deodorant,5,0.6,0.0017341040462427744,0.6,0.6,0.6,0.64,0.009248554913294797,0.62,0.6427972529469056,0.7,0.6799999999999999,0.019653179190751442,0.5919920634920636,0.6705892316486792,0.7333333333333333,0.68,0.03930635838150289,0.5670297465262635,0.6761558959652106,0.7333333333333333,0.6399999999999999,0.09248554913294797,0.5098814798788986,0.6459645556234792,0.7333333333333333,0.65,0.18786127167630057,0.49470245825856446,0.6520823316458534,0.7333333333333333
64
+ strict,Caps,1,1.0,0.0035587188612099642,1.0,1.0,1.0,1.0,0.017793594306049824,1.0,1.0,1.0,1.0,0.03558718861209965,1.0,1.0,1.0,0.95,0.06761565836298933,0.932691133470932,0.963643712011461,1.0,0.8,0.1423487544483986,0.751990213507714,0.848531942585676,1.0,0.52,0.18505338078291814,0.45153496224390915,0.6148134898491832,1.0
65
+ strict,Lip Liner,1,1.0,0.022727272727272728,1.0,1.0,1.0,1.0,0.11363636363636363,1.0,1.0,1.0,0.9,0.20454545454545456,0.89,0.9337457765456111,1.0,0.55,0.25,0.5051973684210527,0.6702241792113562,1.0,0.4,0.45454545454545453,0.3163826153309737,0.5442061349867339,1.0,0.37,0.8409090909090909,0.4780995104868671,0.7797093797203756,1.0
66
+ strict,Foundation and Primer,1,1.0,0.014705882352941176,1.0,1.0,1.0,0.8,0.058823529411764705,0.8,0.8687949224876582,1.0,0.4,0.058823529411764705,0.4,0.5637884576902257,1.0,0.25,0.07352941176470588,0.21315789473684213,0.3967156325994382,1.0,0.12,0.08823529411764706,0.09097744360902256,0.23393478673855006,1.0,0.09,0.1323529411764706,0.07147505142527508,0.21923599509800473,1.0
67
+ strict,Blazers,1,1.0,0.14285714285714285,1.0,1.0,1.0,0.6,0.42857142857142855,0.6,0.7227265726449519,1.0,0.4,0.5714285714285714,0.5238095238095238,0.6836550817096436,1.0,0.2,0.5714285714285714,0.5238095238095238,0.6836550817096436,1.0,0.08,0.5714285714285714,0.5238095238095238,0.6836550817096436,1.0,0.04,0.5714285714285714,0.5238095238095238,0.6836550817096436,1.0
68
+ strict,Highlighter and Blush,1,1.0,0.02702702702702703,1.0,1.0,1.0,0.8,0.10810810810810811,0.8,0.8687949224876582,1.0,0.9,0.24324324324324326,0.8354365079365079,0.9148568823583791,1.0,0.6,0.32432432432432434,0.5151271608508451,0.6929287724702978,1.0,0.28,0.3783783783783784,0.2961016105752948,0.49857593164974306,1.0,0.15,0.40540540540540543,0.3016551092794785,0.5138737864513606,1.0
69
+ strict,Scarves,1,0.0,0.0,0.0,0.0,0.0,0.6,0.02564102564102564,0.3833333333333333,0.5296347172140421,0.5,0.5,0.042735042735042736,0.30436507936507934,0.48331483694589455,0.5,0.6,0.10256410256410256,0.3611967199467199,0.5632640355190806,0.5,0.7,0.29914529914529914,0.45502743292307896,0.6563659175717806,0.5,0.66,0.5641025641025641,0.4402462040399927,0.6430211062153521,0.5
70
+ strict,Eye Cream,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
71
+ strict,Stockings,1,1.0,0.03571428571428571,1.0,1.0,1.0,0.2,0.03571428571428571,0.2,0.3391602052736161,1.0,0.2,0.07142857142857142,0.12222222222222223,0.2863459897524693,1.0,0.15,0.10714285714285714,0.07361111111111111,0.22318299031407177,1.0,0.1,0.17857142857142858,0.06383423923746505,0.2263125110117993,1.0,0.1,0.35714285714285715,0.08106664279525698,0.3160757216612173,1.0
72
+ strict,Camisoles,1,1.0,0.02631578947368421,1.0,1.0,1.0,0.8,0.10526315789473684,0.8,0.8687949224876582,1.0,0.5,0.13157894736842105,0.4625,0.633219679627003,1.0,0.25,0.13157894736842105,0.23125,0.408659305633533,1.0,0.1,0.13157894736842105,0.12171052631578948,0.2684716999703646,1.0,0.05,0.13157894736842105,0.12171052631578948,0.2684716999703646,1.0
73
+ medium,Tops,18,1.0,6.501527859046876e-05,1.0,1.0,1.0,0.9888888888888889,0.0003214644330306511,0.9866666666666666,0.9918850916754052,1.0,0.9666666666666666,0.0006284810263745313,0.9576785714285714,0.9752301783867944,1.0,0.952777777777778,0.001238902253140599,0.9361245682159639,0.9624942753456358,1.0,0.9333333333333333,0.003034046334221876,0.9026027672523083,0.9428034245636471,1.0,0.9088888888888889,0.005909166431889271,0.8671379843586535,0.9203286993423627,1.0
74
+ medium,Tshirts,88,0.9886363636363636,6.427646860648614e-05,0.9886363636363636,0.9886363636363636,0.9886363636363636,0.9931818181818183,0.00032285996300039605,0.9900000000000001,0.9927278933474686,0.9943181818181818,0.9886363636363636,0.0006427646860648617,0.9855848665223665,0.9898902492273612,0.9943181818181818,0.9863636363636363,0.0012825741321937929,0.9804222755741498,0.9879446913136192,0.9943181818181818,0.9786363636363636,0.0031813157910290744,0.9670120796532383,0.9813297868674783,0.9943181818181818,0.9738636363636364,0.0063316015627308785,0.9582122692660981,0.9766057851669084,0.9943181818181818
75
+ medium,Handbags,18,0.9444444444444444,0.00030945099752439204,0.9444444444444444,0.9444444444444444,0.9444444444444444,0.9333333333333333,0.001529051987767584,0.9333333333333333,0.9371552734715366,0.9444444444444444,0.9333333333333333,0.003058103975535168,0.9278791887125222,0.9356384977921677,0.9444444444444444,0.9388888888888888,0.006152613950779088,0.9324464198941753,0.938761374002785,0.9444444444444444,0.9400000000000001,0.015399737876802096,0.934129602394202,0.9395413844395707,0.9444444444444444,0.9377777777777779,0.030726663754186687,0.9324789663442606,0.9380774326785678,0.9444444444444444
76
+ medium,Sports Shoes,21,1.0,0.00013657470636438133,1.0,1.0,1.0,1.0,0.0006828735318219066,1.0,1.0,1.0,1.0,0.0013657470636438131,1.0,1.0,1.0,0.9976190476190476,0.002724990569841703,0.9962431849707943,0.9981132825211516,1.0,0.9990476190476191,0.006822231760773143,0.9976387352443313,0.9989701292685315,1.0,0.9995238095238095,0.01365096707899221,0.9984916665843988,0.9993656236591276,1.0
77
+ medium,Bracelet,1,1.0,0.0009276437847866419,1.0,1.0,1.0,1.0,0.00463821892393321,1.0,1.0,1.0,0.9,0.008348794063079777,0.866388888888889,0.92663607790064,1.0,0.95,0.017625231910946195,0.8997558742856728,0.9526533201221141,1.0,0.84,0.03896103896103896,0.7440640444118135,0.862883134340437,1.0,0.78,0.07235621521335807,0.660098384959779,0.8076240759426396,1.0
78
+ medium,Kurtas,28,1.0,6.501527859046874e-05,1.0,1.0,1.0,0.9928571428571429,0.0003227544187169698,0.9896428571428572,0.9939435677629712,1.0,0.9821428571428571,0.0006385429147278181,0.9767970521541951,0.9861517719386488,1.0,0.9749999999999999,0.0012677979325141403,0.9645712224437071,0.9798558836883967,1.0,0.9692857142857143,0.0031509190374023606,0.9531807210954991,0.9736910314160279,1.0,0.9692857142857143,0.006301838074804721,0.9487496346932673,0.9720073728538553,1.0
79
+ medium,Heels,22,0.9545454545454546,0.00013036676516600036,0.9545454545454546,0.9545454545454546,0.9545454545454546,0.9454545454545454,0.0006456258846316208,0.9436363636363635,0.9479059840980587,0.9545454545454546,0.95,0.0012974597104616224,0.9372041847041847,0.9504657264777165,0.9621212121212122,0.9386363636363636,0.00256387971493134,0.9252650151959714,0.9424572052450476,0.9621212121212122,0.9345454545454545,0.006381763551935637,0.9182300454899351,0.9378228108642784,0.9621212121212122,0.9281818181818181,0.012676615927093939,0.907793559862715,0.931813935410082,0.9621212121212122
80
+ medium,Jeans,7,1.0,0.00037299515106303626,1.0,1.0,1.0,1.0,0.0018649757553151811,1.0,1.0,1.0,1.0,0.0037299515106303622,1.0,1.0,1.0,1.0,0.0074599030212607245,1.0,1.0,1.0,1.0,0.01864975755315181,1.0,1.0,1.0,0.9985714285714286,0.03724623008472318,0.9985134080427368,0.9989662520788902,1.0
81
+ medium,Ring,2,1.0,0.0009276437847866419,1.0,1.0,1.0,1.0,0.00463821892393321,1.0,1.0,1.0,1.0,0.00927643784786642,1.0,1.0,1.0,1.0,0.01855287569573284,1.0,1.0,1.0,0.99,0.04591836734693877,0.9893875850340135,0.9930587710301548,1.0,0.97,0.08998144712430425,0.9579336776343478,0.9761692650314671,1.0
82
+ medium,Sandals,11,1.0,0.0010416666666666667,1.0,1.0,1.0,0.8909090909090908,0.0046401515151515155,0.8863636363636364,0.920105110213332,1.0,0.8454545454545456,0.008806818181818181,0.8183621933621933,0.8774829101269634,1.0,0.7909090909090909,0.016477272727272726,0.7479438728040262,0.8281238004225728,1.0,0.7163636363636363,0.037310606060606065,0.6527192946914163,0.7553375763242225,1.0,0.6736363636363637,0.07017045454545455,0.5918176335461314,0.7071012625781372,1.0
83
+ medium,Casual Shoes,38,0.9736842105263158,0.00013298063514426603,0.9736842105263158,0.9736842105263158,0.9736842105263158,0.994736842105263,0.0006792794606017913,0.987982456140351,0.991074731440168,0.9868421052631579,0.9842105263157894,0.0013441826363231213,0.976904761904762,0.9849490453204014,0.9868421052631579,0.9802631578947368,0.0026775830589858968,0.9702844153847799,0.9819088641275127,0.9868421052631579,0.9736842105263159,0.0066490317572133004,0.9625950494725243,0.9762409122904837,0.9868421052631579,0.9734210526315789,0.013294469443206489,0.9607625494513713,0.9750316361210876,0.9868421052631579
84
+ medium,Watches,29,0.9655172413793104,0.0003799753016053956,0.9655172413793104,0.9655172413793104,0.9655172413793104,0.993103448275862,0.001954158693970606,0.9842528735632183,0.9883048205078064,0.9827586206896551,0.996551724137931,0.003921887934427119,0.989900109469075,0.9924106287483421,0.9827586206896551,0.9879310344827585,0.007775923136424702,0.9811583860103931,0.9878932943806396,0.9827586206896551,0.9800000000000001,0.019283746556473833,0.9675466617874048,0.9817942666407994,0.9827586206896551,0.9872413793103448,0.038852474589151705,0.9737364590550174,0.986729869147543,0.9827586206896551
85
+ medium,Sunglasses,14,1.0,0.0009328358208955222,1.0,1.0,1.0,0.9857142857142858,0.004597547974413646,0.9792857142857143,0.9878871355259423,1.0,0.9928571428571429,0.009261727078891255,0.985031179138322,0.9921395797750686,1.0,0.9892857142857142,0.01845682302771855,0.9828267615321187,0.990146574097115,1.0,0.9885714285714285,0.0461087420042644,0.9804772680341108,0.9894090703246824,1.0,0.9892857142857144,0.09228411513859278,0.9800475974890659,0.9896686540541184,1.0
86
+ medium,Belts,9,1.0,0.0011046176098296681,1.0,1.0,1.0,1.0,0.00552308804914834,1.0,1.0,1.0,1.0,0.01104617609829668,1.0,1.0,1.0,1.0,0.02209235219659336,1.0,1.0,1.0,1.0,0.0552308804914834,1.0,1.0,1.0,0.9988888888888889,0.11032458677171851,0.9981460396264745,0.9990691064467101,1.0
87
+ medium,Briefs,11,1.0,0.0005540166204986151,1.0,1.0,1.0,1.0,0.0027700831024930752,1.0,1.0,1.0,1.0,0.0055401662049861505,1.0,1.0,1.0,0.9954545454545454,0.011029967262654245,0.9932066864593954,0.9965104874395107,1.0,0.9963636363636365,0.02760010073029464,0.9934697146190694,0.9967796273244486,1.0,0.9881818181818183,0.054746915134726765,0.9822227930324849,0.9902601426116696,1.0
88
+ medium,Sweatshirts,6,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,1.0,0.0006501527859046876,1.0,1.0,1.0,1.0,0.001300305571809375,1.0,1.0,1.0,0.9933333333333333,0.0032290921699932823,0.9924645759991767,0.9952743032251833,1.0,0.9883333333333333,0.00642567670069133,0.9841870782421314,0.9908344935297443,1.0
89
+ medium,Tunics,1,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,1.0,0.0006501527859046876,1.0,1.0,1.0,1.0,0.001300305571809375,1.0,1.0,1.0,1.0,0.003250763929523438,1.0,1.0,1.0,1.0,0.006501527859046876,1.0,1.0,1.0
90
+ medium,Flip Flops,6,0.8333333333333334,0.0009137426900584795,0.8333333333333334,0.8333333333333334,0.8333333333333334,0.8666666666666667,0.004751461988304093,0.8005555555555555,0.8650790853234042,0.9166666666666666,0.8666666666666667,0.009502923976608187,0.7933267195767196,0.8671298801552086,0.9166666666666666,0.8750000000000001,0.01918859649122807,0.7847317385988052,0.8725926291743938,0.9166666666666666,0.8466666666666667,0.046418128654970754,0.7570939283419759,0.8525655947134795,0.9166666666666666,0.795,0.08717105263157894,0.6949324326906864,0.8102092833562632,0.9166666666666666
91
+ medium,Lipstick,4,1.0,0.0023584905660377358,1.0,1.0,1.0,1.0,0.01179245283018868,1.0,1.0,1.0,1.0,0.02358490566037736,1.0,1.0,1.0,1.0,0.04716981132075472,1.0,1.0,1.0,0.995,0.11733490566037735,0.9943676027749984,0.9964705443840611,1.0,0.9850000000000001,0.232311320754717,0.9814816380200894,0.9885713516165474,1.0
92
+ medium,Wallets,10,1.0,0.0010822510822510823,1.0,1.0,1.0,0.9800000000000001,0.0053030303030303025,0.9800000000000001,0.9868794922487659,1.0,0.96,0.010389610389610388,0.9516111111111112,0.9711617948605678,1.0,0.9400000000000001,0.020346320346320345,0.9178252981109019,0.9532050285113659,1.0,0.9119999999999999,0.04935064935064935,0.8664589866758758,0.9262345999290152,1.0,0.881,0.09534632034632035,0.8206756447678469,0.897643609708151,1.0
93
+ medium,Shirts,29,1.0,6.501527859046874e-05,1.0,1.0,1.0,1.0,0.00032507639295234367,1.0,1.0,1.0,1.0,0.0006501527859046873,1.0,1.0,1.0,1.0,0.0013003055718093747,1.0,1.0,1.0,0.9993103448275862,0.0032485220233651455,0.9992681093126905,0.9995212945538038,1.0,0.9924137931034483,0.0064522059235644505,0.9909753154689386,0.9941941033931416,1.0
94
+ medium,Nightdress,5,0.8,0.0017278617710583155,0.8,0.8,0.8,0.6799999999999999,0.007343412526997842,0.6373333333333334,0.7200339951192694,0.8666666666666666,0.74,0.01598272138228942,0.6413174603174603,0.7502764906031816,0.8666666666666666,0.7,0.03023758099352052,0.6013560755120352,0.7201563353660336,0.8666666666666666,0.6519999999999999,0.07041036717062635,0.5367325817974101,0.67537029433072,0.8666666666666666,0.512,0.11058315334773217,0.3980433239070168,0.5597190472798672,0.8666666666666666
95
+ medium,Formal Shoes,6,1.0,0.00013657470636438128,1.0,1.0,1.0,1.0,0.0006828735318219066,1.0,1.0,1.0,1.0,0.0013657470636438131,1.0,1.0,1.0,1.0,0.0027314941272876263,1.0,1.0,1.0,1.0,0.0068287353182190655,1.0,1.0,1.0,1.0,0.013657470636438131,1.0,1.0,1.0
96
+ medium,Innerwear Vests,2,0.5,0.0002770083102493075,0.5,0.5,0.5,0.5,0.0013850415512465374,0.5,0.5,0.5,0.45,0.002493074792243767,0.4331944444444445,0.46331803895032,0.5,0.35,0.003878116343490305,0.3182749962026278,0.3887929617538453,0.5,0.25,0.006925207756232687,0.18576272851998807,0.2964461301241752,0.5172413793103449,0.14500000000000002,0.008033240997229917,0.09664446504093968,0.1980622536467876,0.5172413793103449
97
+ medium,Duffel Bag,2,1.0,0.000327653997378768,1.0,1.0,1.0,1.0,0.00163826998689384,1.0,1.0,1.0,1.0,0.00327653997378768,1.0,1.0,1.0,0.975,0.0063892529488859765,0.97375,0.9835675147162115,1.0,0.97,0.015891218872870247,0.9562802207326211,0.9765058148995891,1.0,0.97,0.031782437745740494,0.9469417296174027,0.9736805614759099,1.0
98
+ medium,Earrings,5,1.0,0.0009276437847866419,1.0,1.0,1.0,1.0,0.00463821892393321,1.0,1.0,1.0,1.0,0.00927643784786642,1.0,1.0,1.0,0.99,0.018367346938775512,0.9889736842105263,0.9933125017230573,1.0,0.992,0.046011131725417445,0.9872009617618953,0.993455263272056,1.0,0.984,0.09128014842300555,0.9751851540570271,0.9866995253267788,1.0
99
+ medium,Churidar,1,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,1.0,0.007459903021260724,1.0,1.0,1.0,1.0,0.01864975755315181,1.0,1.0,1.0,0.96,0.03580753450205147,0.9548245285184153,0.9703595327335628,1.0
100
+ medium,Sunscreen,1,1.0,0.020833333333333332,1.0,1.0,1.0,1.0,0.10416666666666667,1.0,1.0,1.0,0.6,0.125,0.6,0.727329844310522,1.0,0.35,0.14583333333333334,0.325,0.505751221067003,1.0,0.36,0.375,0.22202900878610818,0.45612511990416554,1.0,0.22,0.4583333333333333,0.24416142270740768,0.5068055733014052,1.0
101
+ medium,Sarees,5,1.0,0.002347417840375587,1.0,1.0,1.0,1.0,0.011737089201877934,1.0,1.0,1.0,1.0,0.023474178403755867,1.0,1.0,1.0,1.0,0.046948356807511735,1.0,1.0,1.0,0.984,0.11549295774647887,0.9779196817365042,0.9877306379489946,1.0,0.978,0.2295774647887324,0.9665841376132696,0.9818517710494777,1.0
102
+ medium,Kurta Sets,2,0.5,0.004761904761904762,0.5,0.5,0.5,0.6000000000000001,0.028571428571428574,0.42833333333333334,0.565602538756171,0.6666666666666666,0.65,0.06190476190476191,0.4602182539682539,0.6164863042785369,0.6666666666666666,0.55,0.10476190476190476,0.36901370376699316,0.5565804219537898,0.6666666666666666,0.39,0.18571428571428572,0.24343788318549042,0.43539919453551584,0.6666666666666666,0.25,0.2380952380952381,0.13911592821437951,0.3103466177351285,0.6666666666666666
103
+ medium,Perfume and Body Mist,6,1.0,0.001,1.0,1.0,1.0,1.0,0.005,1.0,1.0,1.0,1.0,0.01,1.0,1.0,1.0,0.9833333333333334,0.01966666666666667,0.9824999999999999,0.9889495896746183,1.0,0.9666666666666667,0.04833333333333333,0.9476690017883502,0.9729770256388944,1.0,0.9766666666666666,0.09766666666666667,0.9543696811391907,0.9783226177561023,1.0
104
+ medium,Ties,3,1.0,0.0038910505836575876,1.0,1.0,1.0,1.0,0.019455252918287938,1.0,1.0,1.0,1.0,0.038910505836575876,1.0,1.0,1.0,0.9833333333333334,0.07652399481193256,0.9786748222680884,0.9881633300305285,1.0,0.9666666666666667,0.1880674448767834,0.9458503122034504,0.9725166374481752,1.0,0.9733333333333333,0.3787289234760052,0.9494902522261027,0.975543320939519,1.0
105
+ medium,Dresses,5,0.6,0.001257861635220126,0.6,0.6,0.6,0.56,0.005870020964360588,0.466,0.5749652118921823,0.8,0.6,0.012578616352201259,0.42681746031746026,0.5938983437139892,0.8,0.5700000000000001,0.02389937106918239,0.3741840495246068,0.5730384560433783,0.8,0.52,0.05450733752620544,0.3195002405458173,0.5350723247824887,0.8,0.45999999999999996,0.09643605870020963,0.2615639104695845,0.4839281433386331,0.8
106
+ medium,Socks,9,0.8888888888888888,0.001277139208173691,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.9777777777777779,0.007024265644955301,0.9492592592592592,0.9623155327473759,0.9444444444444444,0.9888888888888889,0.01420817369093231,0.9674559082892417,0.9755453593002135,0.9444444444444444,0.9944444444444444,0.028575989782886335,0.9800125574603129,0.984217773374038,0.9444444444444444,0.9933333333333333,0.07136015325670497,0.9829384486368201,0.9877997286899625,0.9444444444444444,0.9955555555555556,0.1430395913154534,0.9878975260871586,0.991661302899367,0.9444444444444444
107
+ medium,Jeggings,1,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,0.9,0.0033569563595673255,0.866388888888889,0.92663607790064,1.0,0.95,0.007086907870197687,0.8997558742856728,0.9526533201221141,1.0,0.98,0.018276762402088774,0.9418730360905537,0.9741556643296638,1.0,0.99,0.03692651995524058,0.9640547962521748,0.9840804922463934,1.0
108
+ medium,Lounge Shorts,1,0.0,0.0,0.0,0.0,0.0,0.2,0.0021598272138228943,0.1,0.21398626473452756,0.5,0.2,0.004319654427645789,0.07857142857142857,0.2122263659729146,0.5,0.2,0.008639308855291577,0.06258888170652877,0.20833368970365634,0.5,0.22,0.023758099352051837,0.05956589361539146,0.2223980911360183,0.5,0.13,0.028077753779697623,0.03305767208242101,0.15221425440926462,0.5
109
+ medium,Pendant,4,1.0,0.0009276437847866419,1.0,1.0,1.0,1.0,0.00463821892393321,1.0,1.0,1.0,1.0,0.00927643784786642,1.0,1.0,1.0,1.0,0.01855287569573284,1.0,1.0,1.0,0.99,0.04591836734693877,0.9860580395594392,0.9922979454406577,1.0,0.9925,0.09206864564007422,0.9862717404729926,0.9933268014640808,1.0
110
+ medium,Track Pants,3,1.0,0.00037299515106303615,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,0.9666666666666667,0.0036056197936093497,0.9633333333333334,0.977915258848537,1.0,0.9666666666666667,0.007211239587218699,0.9512786322151646,0.9741638382620333,1.0,0.9266666666666667,0.017282108665920677,0.8975599133231346,0.9413106206548477,1.0,0.91,0.03394255874673629,0.8619284432195755,0.923291128974844,1.0
111
+ medium,Backpacks,4,1.0,0.000327653997378768,1.0,1.0,1.0,1.0,0.00163826998689384,1.0,1.0,1.0,1.0,0.00327653997378768,1.0,1.0,1.0,1.0,0.00655307994757536,1.0,1.0,1.0,0.995,0.016300786369593707,0.9945874095382834,0.9965104074720313,1.0,0.9950000000000001,0.032601572739187415,0.9928387295613608,0.9960202605825521,1.0
112
+ medium,Nail Polish,3,1.0,0.003610108303249098,1.0,1.0,1.0,1.0,0.018050541516245487,1.0,1.0,1.0,1.0,0.036101083032490974,1.0,1.0,1.0,1.0,0.07220216606498195,1.0,1.0,1.0,1.0,0.18050541516245489,1.0,1.0,1.0,0.93,0.3357400722021661,0.9191702035369559,0.9472529881206961,1.0
113
+ medium,Salwar,1,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,1.0,0.007459903021260724,1.0,1.0,1.0,0.96,0.017903767251025736,0.9558002864072773,0.9718399670728376,1.0,0.93,0.034688549048862365,0.9052946540912046,0.9448877522639055,1.0
114
+ medium,Mascara,1,1.0,0.030303030303030304,1.0,1.0,1.0,0.4,0.06060606060606061,0.4,0.5531464700081437,1.0,0.4,0.12121212121212122,0.28194444444444444,0.4946396555628011,1.0,0.2,0.12121212121212122,0.14097222222222222,0.31922428295370403,1.0,0.12,0.18181818181818182,0.09711855832545488,0.2723413617115722,1.0,0.11,0.3333333333333333,0.11552673079970899,0.354922455702222,1.0
115
+ medium,Stoles,2,1.0,0.011235955056179775,1.0,1.0,1.0,1.0,0.056179775280898875,1.0,1.0,1.0,1.0,0.11235955056179775,1.0,1.0,1.0,0.8999999999999999,0.20224719101123595,0.8923026315789473,0.9327055362560578,1.0,0.55,0.3089887640449438,0.4852705541491801,0.6514701244776986,1.0,0.33,0.3707865168539326,0.3066179900546065,0.4827018890897537,1.0
116
+ medium,Flats,5,0.8,0.00010925976509150505,0.8,0.8,0.8,0.76,0.000518983884184649,0.752,0.7707863300314587,0.8,0.76,0.001037967768369298,0.7413650793650793,0.7671560827387344,0.8,0.79,0.0021578803605572247,0.7484895690824483,0.7864169257192574,0.8153846153846154,0.768,0.005244468724392242,0.7292200560498063,0.7718525894139016,0.8153846153846154,0.766,0.01046162250751161,0.7203919185876856,0.7686890787862413,0.8153846153846154
117
+ medium,Night suits,2,1.0,0.0021598272138228943,1.0,1.0,1.0,0.9,0.009719222462203024,0.855,0.915209948681596,1.0,0.8,0.017278617710583154,0.7062103174603174,0.8334516777196102,1.0,0.7749999999999999,0.03347732181425486,0.6485893479585431,0.8017899223309899,1.0,0.55,0.05939524838012959,0.4313455680119423,0.6220285209010255,1.0,0.405,0.0874730021598272,0.2846267435567702,0.48380877645973286,1.0
118
+ medium,Trousers,2,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,1.0,0.007459903021260724,1.0,1.0,1.0,1.0,0.01864975755315181,1.0,1.0,1.0,1.0,0.03729951510630362,1.0,1.0,1.0
119
+ medium,Jackets,8,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,0.9624999999999999,0.0006257720564332617,0.9612499999999999,0.9754838456115338,1.0,0.90625,0.0011784019244522462,0.8902583173459238,0.9319083571208915,1.0,0.9025,0.002933814446394903,0.8563217430900287,0.9190305412933547,1.0,0.88375,0.005745725245432676,0.8200802612776681,0.8981182335862065,1.0
120
+ medium,Free Gifts,2,0.5,0.0048543689320388345,0.5,0.5,0.5,0.4,0.019417475728155338,0.38,0.42696582507864683,0.5,0.25,0.024271844660194174,0.2257142857142857,0.313753566530828,0.5,0.2,0.038834951456310676,0.1432936507936508,0.2535523425626366,0.5,0.09,0.043689320388349516,0.059685881370091905,0.14573698833072016,0.5,0.07,0.06796116504854369,0.033804626076048234,0.10888839887854944,0.5
121
+ medium,Trunk,2,1.0,0.000554016620498615,1.0,1.0,1.0,1.0,0.002770083102493075,1.0,1.0,1.0,1.0,0.00554016620498615,1.0,1.0,1.0,1.0,0.0110803324099723,1.0,1.0,1.0,1.0,0.027700831024930747,1.0,1.0,1.0,1.0,0.055401662049861494,1.0,1.0,1.0
122
+ medium,Sweaters,3,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,1.0,0.0006501527859046876,1.0,1.0,1.0,1.0,0.001300305571809375,1.0,1.0,1.0,0.9866666666666667,0.0032074204104631256,0.9778028583718082,0.988999405122002,1.0,0.9833333333333334,0.006393169061396095,0.9728235350112513,0.9857516009058984,1.0
123
+ medium,Bangle,1,1.0,0.0009276437847866419,1.0,1.0,1.0,1.0,0.00463821892393321,1.0,1.0,1.0,1.0,0.00927643784786642,1.0,1.0,1.0,1.0,0.01855287569573284,1.0,1.0,1.0,1.0,0.04638218923933209,1.0,1.0,1.0,0.99,0.09183673469387756,0.9865954374704069,0.9922594645397382,1.0
124
+ medium,Leggings,2,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,1.0,0.007459903021260724,1.0,1.0,1.0,1.0,0.01864975755315181,1.0,1.0,1.0,0.99,0.036926519955240586,0.9879347737423247,0.9924812453980225,1.0
125
+ medium,Shorts,5,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,0.9800000000000001,0.00731070496083551,0.977204893360853,0.986430339788653,1.0,0.9359999999999999,0.017456173069750093,0.9153558179648957,0.9507719090639324,1.0,0.9039999999999999,0.03371876165609847,0.8663433857332109,0.9210625175161962,1.0
126
+ medium,Waistcoat,1,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,1.0,0.0006501527859046876,1.0,1.0,1.0,1.0,0.001300305571809375,1.0,1.0,1.0,1.0,0.003250763929523438,1.0,1.0,1.0,1.0,0.006501527859046876,1.0,1.0,1.0
127
+ medium,Jewellery Set,1,1.0,0.0009276437847866419,1.0,1.0,1.0,1.0,0.00463821892393321,1.0,1.0,1.0,1.0,0.00927643784786642,1.0,1.0,1.0,1.0,0.01855287569573284,1.0,1.0,1.0,1.0,0.04638218923933209,1.0,1.0,1.0,0.99,0.09183673469387756,0.9877810176130588,0.9924669316720286,1.0
128
+ medium,Capris,1,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,1.0,0.007459903021260724,1.0,1.0,1.0,1.0,0.01864975755315181,1.0,1.0,1.0,0.99,0.03692651995524058,0.9887284601904159,0.9926250016666154,1.0
129
+ medium,Accessory Gift Set,1,1.0,0.0078125,1.0,1.0,1.0,1.0,0.0390625,1.0,1.0,1.0,1.0,0.078125,1.0,1.0,1.0,1.0,0.15625,1.0,1.0,1.0,0.82,0.3203125,0.7891848672940692,0.8678108204621303,1.0,0.61,0.4765625,0.5342833335385498,0.6884212023108021,1.0
130
+ medium,Nail Essentials,1,1.0,0.125,1.0,1.0,1.0,0.2,0.125,0.2,0.3391602052736161,1.0,0.1,0.125,0.125,0.2529427027676571,1.0,0.05,0.125,0.125,0.2529427027676571,1.0,0.02,0.125,0.125,0.2529427027676571,1.0,0.01,0.125,0.125,0.2529427027676571,1.0
131
+ medium,Lip Gloss,2,1.0,0.0023584905660377358,1.0,1.0,1.0,0.9,0.010613207547169812,0.88,0.9269658250786468,1.0,0.9,0.021226415094339625,0.8421031746031746,0.9134066833258869,1.0,0.7749999999999999,0.036556603773584904,0.717394968722368,0.8230180887189839,1.0,0.6799999999999999,0.08018867924528303,0.5910222068321003,0.7266170323548425,1.0,0.665,0.15683962264150944,0.5327672056166088,0.6972679687670575,1.0
132
+ medium,Dupatta,1,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,1.0,0.0006501527859046876,1.0,1.0,1.0,0.9,0.0011702750146284377,0.8949999999999999,0.9336975380477095,1.0,0.66,0.0021455041934854693,0.5975185793021969,0.7408144752766844,1.0,0.67,0.004356023665561407,0.5307784442999172,0.718676672829536,1.0
133
+ medium,Clutches,1,1.0,0.000327653997378768,1.0,1.0,1.0,1.0,0.00163826998689384,1.0,1.0,1.0,1.0,0.00327653997378768,1.0,1.0,1.0,0.95,0.006225425950196592,0.9448684210526315,0.9665625086152866,1.0,0.94,0.015399737876802096,0.8970951010863273,0.9492380931495109,1.0,0.91,0.02981651376146789,0.8530744640269279,0.9223934138454,1.0
134
+ medium,Deodorant,5,1.0,0.001,1.0,1.0,1.0,1.0,0.005,1.0,1.0,1.0,0.9800000000000001,0.0098,0.9732777777777777,0.985327215580128,1.0,0.97,0.0194,0.956177371476133,0.9765719081497723,1.0,0.9480000000000001,0.0474,0.9246261631692789,0.9576047160373129,1.0,0.95,0.095,0.918072728518835,0.9555633288831915,1.0
135
+ medium,Caps,1,1.0,0.003436426116838488,1.0,1.0,1.0,1.0,0.01718213058419244,1.0,1.0,1.0,1.0,0.03436426116838488,1.0,1.0,1.0,1.0,0.06872852233676977,1.0,1.0,1.0,0.86,0.14776632302405499,0.8494715532279073,0.9007569655466972,1.0,0.55,0.18900343642611683,0.5052051629283395,0.6469828854399754,1.0
136
+ medium,Lip Liner,1,1.0,0.0023584905660377358,1.0,1.0,1.0,1.0,0.01179245283018868,1.0,1.0,1.0,0.9,0.02122641509433962,0.89,0.9337457765456111,1.0,0.55,0.025943396226415096,0.5051973684210527,0.6702241792113562,1.0,0.44,0.05188679245283019,0.30048212486331066,0.5284553338565611,1.0,0.46,0.10849056603773585,0.26153149450810614,0.510592296332121,1.0
137
+ medium,Foundation and Primer,1,1.0,0.003816793893129771,1.0,1.0,1.0,0.8,0.015267175572519083,0.8,0.8687949224876582,1.0,0.4,0.015267175572519083,0.4,0.5637884576902257,1.0,0.25,0.019083969465648856,0.21315789473684213,0.3967156325994382,1.0,0.18,0.03435114503816794,0.10425510096802634,0.27863977266262885,1.0,0.12,0.04580152671755725,0.056423669353057114,0.19446612672858457,1.0
138
+ medium,Blazers,1,1.0,6.501527859046876e-05,1.0,1.0,1.0,1.0,0.0003250763929523438,1.0,1.0,1.0,1.0,0.0006501527859046876,1.0,1.0,1.0,1.0,0.001300305571809375,1.0,1.0,1.0,1.0,0.003250763929523438,1.0,1.0,1.0,1.0,0.006501527859046876,1.0,1.0,1.0
139
+ medium,Highlighter and Blush,1,1.0,0.003816793893129771,1.0,1.0,1.0,1.0,0.019083969465648856,1.0,1.0,1.0,1.0,0.03816793893129771,1.0,1.0,1.0,0.85,0.0648854961832061,0.8200219298245616,0.8940707298470643,1.0,0.5,0.09541984732824428,0.42816404052015433,0.6090052139535269,1.0,0.4,0.15267175572519084,0.27776978285715176,0.4892247898255661,1.0
140
+ medium,Scarves,1,0.0,0.0,0.0,0.0,0.0,0.6,0.02586206896551724,0.3833333333333333,0.5296347172140421,0.5,0.5,0.04310344827586207,0.30436507936507934,0.48331483694589455,0.5,0.6,0.10344827586206896,0.3611967199467199,0.5632640355190806,0.5,0.7,0.3017241379310345,0.45502743292307896,0.6563659175717806,0.5,0.65,0.5603448275862069,0.4305077068743598,0.6350613523385488,0.5
141
+ medium,Eye Cream,1,1.0,0.020833333333333332,1.0,1.0,1.0,0.8,0.08333333333333333,0.8,0.8687949224876582,1.0,0.5,0.10416666666666667,0.4714285714285714,0.6371523797895857,1.0,0.4,0.16666666666666666,0.32292291042291044,0.5265097974973901,1.0,0.18,0.1875,0.141016729917592,0.31174147561939797,1.0,0.12,0.25,0.1507021184311055,0.350535705325506,1.0
142
+ medium,Stockings,1,1.0,0.0003729951510630362,1.0,1.0,1.0,1.0,0.001864975755315181,1.0,1.0,1.0,1.0,0.003729951510630362,1.0,1.0,1.0,1.0,0.007459903021260724,1.0,1.0,1.0,0.98,0.018276762402088774,0.9729515216137484,0.9850030692922281,1.0,0.97,0.03618052965311451,0.9583629425176852,0.9761719718515645,1.0
143
+ medium,Camisoles,1,1.0,0.000554016620498615,1.0,1.0,1.0,0.8,0.00221606648199446,0.8,0.8687949224876582,1.0,0.5,0.002770083102493075,0.4625,0.633219679627003,1.0,0.4,0.00443213296398892,0.3099116161616161,0.520102502239445,1.0,0.24,0.006648199445983379,0.14754047793521477,0.34375936508612653,1.0,0.26,0.014404432132963989,0.10903963661796237,0.3187787231762077,1.0
144
+ soft,Tops,18,0.9444444444444444,0.0002013938194236393,0.9444444444444444,0.9444444444444444,0.9444444444444444,0.9333333333333333,0.0009088144053239286,0.9333333333333333,0.9371552734715366,0.9444444444444444,0.9222222222222223,0.0016213194270593221,0.9179166666666667,0.927602248212553,0.9444444444444444,0.9194444444444445,0.0030527819160069444,0.9101264512777669,0.9237497612597747,0.9473684210526316,0.9133333333333332,0.007137955108307604,0.9022696782247972,0.9171052236025488,0.9473684210526316,0.9088888888888889,0.012481947972769311,0.8955928773331286,0.9123326542076531,0.9473684210526316
145
+ soft,Tshirts,88,0.9886363636363636,0.00020007945476352106,0.9886363636363636,0.9886363636363636,0.9886363636363636,0.975,0.0009749899000979921,0.9704924242424243,0.978144886934647,0.9914772727272727,0.9613636363636363,0.0019131527125049786,0.954026424963925,0.9676311300746683,0.9914772727272727,0.9482954545454544,0.003653501606222066,0.9354839777691505,0.9564787184757481,0.9914772727272727,0.9338636363636365,0.008560924372197022,0.9126794653556257,0.9420431632952606,0.9914772727272727,0.923409090909091,0.01660107233919367,0.8965316328562921,0.9309740668847152,0.9914772727272727
146
+ soft,Handbags,18,0.9444444444444444,0.00017766073070813476,0.9444444444444444,0.9444444444444444,0.9444444444444444,0.9333333333333333,0.0008778530223225484,0.9333333333333333,0.9371552734715366,0.9444444444444444,0.9277777777777777,0.0017452554134269713,0.9211507936507937,0.9317812076845691,0.9444444444444444,0.9361111111111112,0.0035218627205083185,0.9272245240211571,0.9362720049138031,0.9444444444444444,0.9388888888888888,0.00883078337931611,0.9313824320119521,0.9382519619668369,0.9444444444444444,0.9383333333333334,0.017653294629079705,0.9312406694853939,0.9380816072597242,0.9450000000000001
147
+ soft,Sports Shoes,21,0.8571428571428571,0.00018347746210088767,0.8571428571428571,0.8571428571428571,0.8571428571428571,0.8476190476190478,0.0009176366164747462,0.7803174603174603,0.8451256528638575,0.9206349206349206,0.8285714285714285,0.0017679195588065683,0.7462944066515496,0.831897396283057,0.9206349206349206,0.8047619047619047,0.003367454932255825,0.7163590599819039,0.8146125132998531,0.9206349206349206,0.7866666666666666,0.007996181031424437,0.6816248217659371,0.7969932814556726,0.9206349206349206,0.7680952380952382,0.015275856704184224,0.6558350721520376,0.7787519970857021,0.9206349206349206
148
+ soft,Bracelet,1,1.0,0.00022732439190725165,1.0,1.0,1.0,1.0,0.0011366219595362582,1.0,1.0,1.0,0.9,0.0020459195271652648,0.866388888888889,0.92663607790064,1.0,0.9,0.0040918390543305296,0.8391136744232719,0.9171433102136999,1.0,0.56,0.006365082973403046,0.47578832094532997,0.6530064027355048,1.0,0.39,0.008865651284382815,0.2903637877701953,0.48745344071347174,1.0
149
+ soft,Kurtas,28,1.0,0.00011315324203252295,1.0,1.0,1.0,1.0,0.0005657662101626147,1.0,1.0,1.0,1.0,0.0011315324203252295,1.0,1.0,1.0,1.0,0.002263064840650459,1.0,1.0,1.0,0.9971428571428572,0.005641070098971428,0.9964846997958672,0.9979208766378662,1.0,0.9749999999999999,0.011080791985737729,0.9711165675817127,0.9809242704570649,1.0
150
+ soft,Heels,22,0.9545454545454546,0.00033753375337533753,0.9545454545454546,0.9545454545454546,0.9545454545454546,0.9454545454545454,0.0016715957310016712,0.9436363636363635,0.9479059840980587,0.9545454545454546,0.9454545454545453,0.0033431914620033424,0.9356962481962481,0.9472253369170937,0.9621212121212122,0.9454545454545453,0.006686382924006685,0.935081056245565,0.9466066110360561,0.9621212121212122,0.9427272727272729,0.01666773820239167,0.9320251615937561,0.9441166350975336,0.9621212121212122,0.9418181818181818,0.0333033303330333,0.9300608570699602,0.9429919158601721,0.9621212121212122
151
+ soft,Jeans,7,1.0,0.00010019321031360291,1.0,1.0,1.0,1.0,0.0005009660515680145,1.0,1.0,1.0,1.0,0.001001932103136029,1.0,1.0,1.0,1.0,0.002003864206272058,1.0,1.0,1.0,1.0,0.005009660515680145,1.0,1.0,1.0,0.9985714285714286,0.01000272902870557,0.9985134080427368,0.9989662520788902,1.0
152
+ soft,Ring,2,1.0,0.000207717876916756,1.0,1.0,1.0,1.0,0.0010385893845837799,1.0,1.0,1.0,1.0,0.0020771787691675598,1.0,1.0,1.0,0.95,0.003927033146427868,0.9446405228758169,0.9661924283667771,1.0,0.81,0.00822631212271891,0.7719434818996773,0.8529171305351698,1.0,0.725,0.01455957994420717,0.6636602095146579,0.7705045382566811,1.0
153
+ soft,Sandals,11,0.9090909090909091,0.0035324830455655144,0.9090909090909091,0.9090909090909091,0.9090909090909091,0.7636363636363637,0.00942454211881446,0.7336363636363636,0.8005007054424671,0.9545454545454546,0.7545454545454546,0.016269462877507117,0.6928751803751804,0.7811046037717624,0.9545454545454546,0.6954545454545454,0.02678566363415731,0.6284850566491081,0.730909519712831,0.9545454545454546,0.62,0.037674726028676185,0.5448131834184774,0.6584447695103808,0.9545454545454546,0.5772727272727273,0.05361643742021027,0.5010397261526539,0.6245023417869527,0.9545454545454546
154
+ soft,Casual Shoes,38,0.7368421052631579,0.0006438958809780642,0.7368421052631579,0.7368421052631579,0.7368421052631579,0.7157894736842105,0.002812476341771727,0.6664035087719299,0.7253682108985808,0.8144736842105263,0.7157894736842104,0.005329813201900721,0.6283197577276526,0.72214576464655,0.8261695906432749,0.706578947368421,0.010665011127283132,0.6034164033827958,0.7138808091565592,0.8261695906432749,0.6973684210526315,0.0191697000742728,0.5842564029977101,0.7038540205494028,0.8261695906432749,0.6865789473684212,0.029988667856600412,0.5736044196353479,0.6983648340960061,0.8261695906432749
155
+ soft,Watches,29,0.896551724137931,0.0001889341675792289,0.896551724137931,0.896551724137931,0.896551724137931,0.896551724137931,0.0010497919012476828,0.8542528735632184,0.8968562805295556,0.9482758620689655,0.8758620689655173,0.0020424679464236244,0.8294567597153805,0.8826948943892655,0.9482758620689655,0.8327586206896551,0.0038142113511050405,0.7681628840093397,0.849611938892191,0.9482758620689655,0.7703448275862069,0.008632586691584078,0.6825481746644363,0.795001819342451,0.9482758620689655,0.7358620689655173,0.016255794436313205,0.6288921881724057,0.7593397810764695,0.9482758620689655
156
+ soft,Sunglasses,14,0.7142857142857143,0.00022095350344517362,0.7142857142857143,0.7142857142857143,0.7142857142857143,0.7142857142857143,0.0009443155191683866,0.6295238095238095,0.7126063033718498,0.8095238095238094,0.7214285714285714,0.00196904929412457,0.620719954648526,0.7192107988526438,0.8095238095238094,0.6428571428571427,0.0032948618780329194,0.546645265623732,0.6646665096345702,0.8095238095238094,0.6271428571428571,0.007947626739585684,0.4983671146727865,0.6426931078686235,0.8115079365079365,0.6128571428571429,0.015161731945064625,0.47460844581309886,0.625752383121041,0.8115079365079365
157
+ soft,Belts,9,0.8888888888888888,0.0001933521194773367,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8444444444444444,0.00092060106918296,0.8344444444444444,0.8554683133167611,0.8888888888888888,0.8,0.0017445260786272518,0.7649470899470899,0.818400130184678,0.8888888888888888,0.7833333333333334,0.0034263483699457503,0.7325202926254268,0.8008626658994841,0.8888888888888888,0.7622222222222221,0.008358594925057547,0.6967726496879383,0.7778942877582377,0.8888888888888888,0.7144444444444445,0.01577486553204408,0.6374881158977036,0.7349134613893411,0.8888888888888888
158
+ soft,Briefs,11,1.0,0.00010091824705312293,1.0,1.0,1.0,1.0,0.0005045912352656146,1.0,1.0,1.0,1.0,0.0010091824705312292,1.0,1.0,1.0,0.9954545454545454,0.002007806393918545,0.9932066864593954,0.9965104874395107,1.0,0.9981818181818182,0.005035353805512233,0.9956436460725112,0.9980952384798314,1.0,0.990909090909091,0.009986239233873161,0.9863204098091948,0.9924848733124111,1.0
159
+ soft,Sweatshirts,6,1.0,9.753474226869623e-05,1.0,1.0,1.0,0.9666666666666667,0.00047296869399156066,0.96,0.9756552750262156,1.0,0.9666666666666668,0.0009459373879831213,0.9509060846560847,0.9731595686960101,1.0,0.9833333333333334,0.0019212848106700837,0.9643068522751185,0.9826780620178227,1.0,0.9933333333333335,0.004847327078730971,0.9797129697021423,0.9905447651065132,1.0,0.9916666666666667,0.009679949140110021,0.9816924333450454,0.9904269670954943,1.0
160
+ soft,Tunics,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,0.98,0.005691056910569106,0.9717918577482021,0.9847599855899974,1.0,0.99,0.011498257839721254,0.9790142070809987,0.990612506714824,1.0
161
+ soft,Flip Flops,6,0.5,0.00014689987673960868,0.5,0.5,0.5,0.7999999999999999,0.0037916057166761164,0.6922222222222222,0.7485432820149294,0.7222222222222222,0.7499999999999999,0.004700290782311104,0.6719708994708995,0.732865365810567,0.7222222222222222,0.75,0.009370678046736641,0.6688115262360618,0.740560814875681,0.7222222222222222,0.6933333333333334,0.022768699669649634,0.5943751840257101,0.7017753863388569,0.7222222222222222,0.6583333333333333,0.036271134361331885,0.5461968749857505,0.6775597158840551,0.7222222222222222
162
+ soft,Lipstick,4,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360823,1.0,1.0,1.0,1.0,0.006443298969072165,1.0,1.0,1.0,1.0,0.01288659793814433,1.0,1.0,1.0,1.0,0.03221649484536082,1.0,1.0,1.0,1.0,0.06443298969072164,1.0,1.0,1.0
163
+ soft,Wallets,10,1.0,0.00019595396792245856,1.0,1.0,1.0,0.9200000000000002,0.0009006039918436897,0.8913333333333334,0.9339160205273617,1.0,0.9199999999999999,0.0018051292866854787,0.8822023809523809,0.9305599733921728,1.0,0.9099999999999999,0.003576557603983804,0.8659271042854634,0.9195669610491303,1.0,0.9179999999999999,0.009022520509227163,0.871534192517273,0.9207642997044344,1.0,0.916,0.018003497443070976,0.8725958630161351,0.9181228493489829,1.0
164
+ soft,Shirts,29,1.0,8.919265288640283e-05,1.0,1.0,1.0,0.9724137931034482,0.00043379359489939035,0.9724137931034482,0.977212420871504,1.0,0.9689655172413794,0.0008645447724156248,0.9689655172413794,0.9731066126309682,1.0,0.9724137931034482,0.0017351743795975614,0.9680500100826779,0.9738165790598023,1.0,0.9744827586206897,0.004347063201143374,0.9680161542878273,0.9750383384556192,1.0,0.9813793103448275,0.008754974749949867,0.9705335991325543,0.9800564573630948,1.0
165
+ soft,Nightdress,5,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,1.0,0.005807200929152149,1.0,1.0,1.0,1.0,0.011614401858304297,1.0,1.0,1.0
166
+ soft,Formal Shoes,6,1.0,0.00017418568193694475,1.0,1.0,1.0,1.0,0.000870928409684724,1.0,1.0,1.0,1.0,0.001741856819369448,1.0,1.0,1.0,1.0,0.003483713638738896,1.0,1.0,1.0,1.0,0.008709284096847238,1.0,1.0,1.0,0.9983333333333334,0.017389537246704986,0.9977659062450678,0.998709910756623,1.0
167
+ soft,Innerwear Vests,2,1.0,0.0009275072782041713,1.0,1.0,1.0,0.9,0.0037541441648724465,0.8216666666666667,0.8930068676327362,1.0,0.95,0.008391680555893302,0.8785515873015873,0.9305687780632228,1.0,0.75,0.012234054824877274,0.6782836403792287,0.7967193536359098,1.0,0.69,0.03409719403327553,0.5490294122674202,0.7297254163369892,1.0,0.645,0.06360096672758597,0.4764827071876106,0.6802718859729666,1.0
168
+ soft,Duffel Bag,2,0.5,0.00033829499323410016,0.5,0.5,0.5,0.7,0.002368064952638701,0.5433333333333333,0.6578242262397572,0.6666666666666666,0.7,0.004736129905277402,0.522718253968254,0.66894312882716,0.6666666666666666,0.6,0.008119079837618403,0.4281263764400374,0.6093431195273451,0.6666666666666666,0.52,0.017591339648173207,0.33613677440589784,0.5476913590109193,0.6666666666666666,0.475,0.03213802435723952,0.2806314186247496,0.5046407550216856,0.6666666666666666
169
+ soft,Earrings,5,1.0,0.00018811136192626034,1.0,1.0,1.0,1.0,0.0009405568096313018,1.0,1.0,1.0,1.0,0.0018811136192626037,1.0,1.0,1.0,0.99,0.0037246049661399548,0.9889736842105263,0.9933125017230573,1.0,0.992,0.009330323551542513,0.9872009617618953,0.993455263272056,1.0,0.984,0.01851015801354402,0.9751851540570271,0.9866995253267788,1.0
170
+ soft,Churidar,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,1.0,0.005807200929152149,1.0,1.0,1.0,1.0,0.011614401858304297,1.0,1.0,1.0
171
+ soft,Sunscreen,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
172
+ soft,Sarees,5,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,0.984,0.005714285714285714,0.9779196817365042,0.9877306379489946,1.0,0.9799999999999999,0.011382113821138212,0.9699212662856155,0.9835273794453997,1.0
173
+ soft,Kurta Sets,2,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,0.95,0.0011033681765389082,0.9331944444444444,0.96331803895032,1.0,0.925,0.0021486643437862952,0.8830040522987505,0.9384809657951433,1.0,0.9299999999999999,0.0054006968641114985,0.8745374119010156,0.9355233847190514,1.0,0.9450000000000001,0.01097560975609756,0.8875252323009111,0.9445190759135662,1.0
174
+ soft,Perfume and Body Mist,6,0.5,0.01230454788173182,0.5,0.5,0.5,0.5333333333333333,0.05075780085953716,0.4277777777777778,0.5356643774557545,0.6666666666666666,0.46666666666666673,0.053711544755359185,0.3385978835978836,0.48522256984538026,0.6851851851851851,0.44166666666666665,0.06009643955248947,0.3104298401260476,0.47549909671059837,0.6851851851851851,0.4466666666666667,0.07952543515145251,0.30677695797711696,0.49744412527645193,0.6851851851851851,0.4283333333333334,0.10660989888811374,0.2898902140061703,0.49372254880869654,0.6851851851851851
175
+ soft,Ties,3,1.0,0.00022732439190725165,1.0,1.0,1.0,1.0,0.0011366219595362582,1.0,1.0,1.0,1.0,0.0022732439190725163,1.0,1.0,1.0,0.9833333333333334,0.004470713040842616,0.9786748222680884,0.9881633300305285,1.0,0.9666666666666667,0.010987345608850495,0.9458503122034504,0.9725166374481752,1.0,0.9733333333333333,0.022126240812305825,0.9494902522261027,0.975543320939519,1.0
176
+ soft,Dresses,5,0.8,9.291521486643438e-05,0.8,0.8,0.8,0.9199999999999999,0.0015246467457102639,0.8573333333333334,0.8893707059983713,0.8666666666666666,0.9400000000000001,0.0034026503818798915,0.8836190476190475,0.9143229135783176,0.8666666666666666,0.9400000000000001,0.006805300763759783,0.8923909377516189,0.9236274359944957,0.8666666666666666,0.9359999999999999,0.016659895018940094,0.8915390645654213,0.9278606718721945,0.8666666666666666,0.944,0.03473321759971764,0.8990514717995944,0.9370151579100119,0.8666666666666666
177
+ soft,Socks,9,0.8888888888888888,0.0002975459215998799,0.8888888888888888,0.8888888888888888,0.8888888888888888,0.8222222222222223,0.0013295460252305453,0.7718518518518519,0.8343044786567138,0.9444444444444444,0.7888888888888889,0.00238364365557603,0.7308024691358024,0.8080944970038478,0.9444444444444444,0.7611111111111111,0.004400117991998836,0.7037574096010629,0.7820473005468442,0.9444444444444444,0.6955555555555555,0.009589991754677672,0.6341618520631828,0.7235155386342337,0.9444444444444444,0.6344444444444445,0.01650597151785084,0.5718757099562017,0.6657359738616342,0.9444444444444444
178
+ soft,Jeggings,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,1.0,0.005807200929152149,1.0,1.0,1.0,0.99,0.011498257839721254,0.9863117352571271,0.9922081386797139,1.0
179
+ soft,Lounge Shorts,1,1.0,8.823010411152286e-05,1.0,1.0,1.0,1.0,0.0004411505205576143,1.0,1.0,1.0,1.0,0.0008823010411152286,1.0,1.0,1.0,1.0,0.0017646020822304571,1.0,1.0,1.0,1.0,0.0044115052055761425,1.0,1.0,1.0,1.0,0.008823010411152285,1.0,1.0,1.0
180
+ soft,Pendant,4,1.0,0.00018811136192626034,1.0,1.0,1.0,1.0,0.0009405568096313017,1.0,1.0,1.0,1.0,0.0018811136192626034,1.0,1.0,1.0,0.9750000000000001,0.003668171557562077,0.9679601500687993,0.9822233848281481,1.0,0.975,0.009170428893905192,0.9577967975864837,0.9788155837554695,1.0,0.9824999999999999,0.018481941309255078,0.9651916468473043,0.9833274431203297,1.0
181
+ soft,Track Pants,3,1.0,0.0001068393804258696,1.0,1.0,1.0,0.9333333333333332,0.0004954822292683337,0.9333333333333332,0.9562649741625527,1.0,0.8666666666666667,0.0009135351128146387,0.8563492063492063,0.9051835495894203,1.0,0.85,0.001788355552768263,0.8088038119288119,0.8791500190268319,1.0,0.8533333333333334,0.004508855494665512,0.7633405847630668,0.867272928732754,1.0,0.81,0.00855163879476653,0.7084708369663559,0.8298139620095514,1.0
182
+ soft,Backpacks,4,1.0,0.0006765899864682003,1.0,1.0,1.0,1.0,0.0033829499323410014,1.0,1.0,1.0,0.95,0.0064276048714479025,0.9383035714285715,0.9638368768917339,1.0,0.925,0.012516914749661705,0.8997341032935073,0.9421661402633792,1.0,0.9149999999999999,0.030953991880920163,0.864796634354005,0.9261601004934009,1.0,0.915,0.06190798376184033,0.8519387100924188,0.9218249532800181,1.0
183
+ soft,Nail Polish,3,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360827,1.0,1.0,1.0,1.0,0.0064432989690721655,1.0,1.0,1.0,1.0,0.012886597938144331,1.0,1.0,1.0,1.0,0.03221649484536082,1.0,1.0,1.0,1.0,0.06443298969072164,1.0,1.0,1.0
184
+ soft,Salwar,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,1.0,0.005807200929152149,1.0,1.0,1.0,1.0,0.011614401858304297,1.0,1.0,1.0
185
+ soft,Mascara,1,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360823,1.0,1.0,1.0,1.0,0.006443298969072165,1.0,1.0,1.0,1.0,0.01288659793814433,1.0,1.0,1.0,1.0,0.03221649484536082,1.0,1.0,1.0,1.0,0.06443298969072164,1.0,1.0,1.0
186
+ soft,Stoles,2,1.0,0.00018811136192626034,1.0,1.0,1.0,1.0,0.0009405568096313017,1.0,1.0,1.0,1.0,0.0018811136192626034,1.0,1.0,1.0,0.95,0.0035741158765989467,0.9445747334021326,0.9664557680764058,1.0,0.72,0.006772009029345372,0.6580774752351075,0.786509856853546,1.0,0.47500000000000003,0.008935289691497367,0.40130649766962156,0.573720575560686,1.0
187
+ soft,Flats,5,0.8,0.0002828854314002829,0.8,0.8,0.8,0.76,0.0013437057991513436,0.752,0.7707863300314587,0.8,0.78,0.0027581329561527585,0.7630873015873016,0.7810423271260899,0.8,0.76,0.005374823196605375,0.7281988736667528,0.7669524386119603,0.8133333333333332,0.768,0.013578500707213578,0.7211490506864907,0.7699932181870939,0.8133333333333332,0.76,0.026874115983026876,0.705044215150257,0.7629868148036834,0.8133333333333332
188
+ soft,Night suits,2,1.0,0.00010218706134728291,1.0,1.0,1.0,1.0,0.0005109353067364146,1.0,1.0,1.0,1.0,0.0010218706134728292,1.0,1.0,1.0,1.0,0.0020437412269456584,1.0,1.0,1.0,1.0,0.005109353067364146,1.0,1.0,1.0,1.0,0.010218706134728292,1.0,1.0,1.0
189
+ soft,Trousers,2,1.0,8.823010411152286e-05,1.0,1.0,1.0,1.0,0.0004411505205576143,1.0,1.0,1.0,1.0,0.0008823010411152286,1.0,1.0,1.0,1.0,0.0017646020822304571,1.0,1.0,1.0,1.0,0.0044115052055761425,1.0,1.0,1.0,1.0,0.008823010411152285,1.0,1.0,1.0
190
+ soft,Jackets,8,1.0,9.171934342046286e-05,1.0,1.0,1.0,1.0,0.0004585967171023144,1.0,1.0,1.0,1.0,0.0009171934342046288,1.0,1.0,1.0,0.975,0.001790271816353496,0.9694823110165118,0.9824932547524331,1.0,0.9724999999999999,0.004464650777869799,0.9557861023393037,0.9771103012486617,1.0,0.97,0.008900265551093838,0.9486985727705792,0.973430995272976,1.0
191
+ soft,Free Gifts,2,0.5,0.011904761904761904,0.5,0.5,0.5,0.4,0.047619047619047616,0.38,0.42696582507864683,0.5,0.25,0.05952380952380952,0.2257142857142857,0.313753566530828,0.5,0.2,0.09523809523809523,0.1432936507936508,0.2535523425626366,0.5,0.09,0.10714285714285714,0.07105462067868083,0.1640096285429199,0.5,0.07,0.16666666666666666,0.08048720494297198,0.19893761390231135,0.5
192
+ soft,Trunk,2,1.0,8.823010411152286e-05,1.0,1.0,1.0,1.0,0.0004411505205576143,1.0,1.0,1.0,1.0,0.0008823010411152286,1.0,1.0,1.0,1.0,0.0017646020822304571,1.0,1.0,1.0,1.0,0.0044115052055761425,1.0,1.0,1.0,0.99,0.008734780307040762,0.9892999406490219,0.9927072962790353,1.0
193
+ soft,Sweaters,3,1.0,9.753474226869623e-05,1.0,1.0,1.0,1.0,0.0004876737113434812,1.0,1.0,1.0,1.0,0.0009753474226869624,1.0,1.0,1.0,1.0,0.0019506948453739247,1.0,1.0,1.0,1.0,0.004876737113434812,1.0,1.0,1.0,0.9966666666666667,0.00972406419216578,0.9951362946202204,0.9973467487077322,1.0
194
+ soft,Bangle,1,1.0,0.00018811136192626034,1.0,1.0,1.0,1.0,0.0009405568096313017,1.0,1.0,1.0,1.0,0.0018811136192626034,1.0,1.0,1.0,0.9,0.003386004514672686,0.8729197498837591,0.9281778704499036,1.0,0.9,0.008465011286681716,0.8341938952246137,0.9149723182729791,1.0,0.92,0.01730624529721595,0.8459613894856886,0.9245678432202356,1.0
195
+ soft,Leggings,2,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,1.0,0.005807200929152149,1.0,1.0,1.0,0.995,0.011556329849012776,0.9937006151031863,0.9962008379418028,1.0
196
+ soft,Shorts,5,1.0,0.0005806425479550403,1.0,1.0,1.0,0.8400000000000001,0.0018478037687989484,0.8400000000000001,0.8678320410547233,1.0,0.8400000000000001,0.004188019981441414,0.7996666666666666,0.8579045976469715,1.0,0.72,0.005209813049954069,0.6787413183651574,0.7661895037455946,1.0,0.736,0.013095116708174393,0.6435049167732994,0.7563418614579666,1.0,0.718,0.02455418189741749,0.6208309558238236,0.7351521540576758,1.0
197
+ soft,Waistcoat,1,1.0,8.823010411152286e-05,1.0,1.0,1.0,1.0,0.0004411505205576143,1.0,1.0,1.0,1.0,0.0008823010411152286,1.0,1.0,1.0,1.0,0.0017646020822304571,1.0,1.0,1.0,1.0,0.0044115052055761425,1.0,1.0,1.0,1.0,0.008823010411152285,1.0,1.0,1.0
198
+ soft,Jewellery Set,1,1.0,0.00018811136192626034,1.0,1.0,1.0,1.0,0.0009405568096313017,1.0,1.0,1.0,1.0,0.0018811136192626034,1.0,1.0,1.0,1.0,0.003762227238525207,1.0,1.0,1.0,1.0,0.009405568096313018,1.0,1.0,1.0,0.99,0.018623024830699775,0.9877810176130588,0.9924669316720286,1.0
199
+ soft,Capris,1,1.0,0.0013192612137203166,1.0,1.0,1.0,1.0,0.006596306068601583,1.0,1.0,1.0,0.6,0.0079155672823219,0.5599999999999999,0.7125523635307983,1.0,0.35,0.009234828496042216,0.3118181818181818,0.49947909654655176,1.0,0.36,0.023746701846965697,0.2038066956481749,0.43836747575517404,1.0,0.36,0.047493403693931395,0.1657790804849634,0.40732012202724766,1.0
200
+ soft,Accessory Gift Set,1,1.0,0.00022732439190725165,1.0,1.0,1.0,1.0,0.0011366219595362582,1.0,1.0,1.0,1.0,0.0022732439190725163,1.0,1.0,1.0,1.0,0.004546487838145033,1.0,1.0,1.0,0.92,0.010456922027733576,0.8966361054615039,0.9401072888806836,1.0,0.87,0.019777222095930892,0.8064569787944593,0.8926471700271902,1.0
201
+ soft,Nail Essentials,1,1.0,0.0006443298969072165,1.0,1.0,1.0,0.6,0.0019329896907216496,0.52,0.6843515475204855,1.0,0.6,0.003865979381443299,0.4730952380952381,0.6652907408280684,1.0,0.75,0.009664948453608248,0.5420820409810347,0.7443685058474032,1.0,0.76,0.024484536082474227,0.5577795985760123,0.7522433877619741,1.0,0.76,0.04896907216494845,0.576614619772037,0.7570385000294272,1.0
202
+ soft,Lip Gloss,2,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360823,1.0,1.0,1.0,1.0,0.006443298969072165,1.0,1.0,1.0,1.0,0.01288659793814433,1.0,1.0,1.0,1.0,0.03221649484536082,1.0,1.0,1.0,1.0,0.06443298969072164,1.0,1.0,1.0
203
+ soft,Dupatta,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,0.9,0.0020905923344947735,0.8949999999999999,0.9336975380477095,1.0,0.66,0.003832752613240418,0.5975185793021969,0.7408144752766844,1.0,0.73,0.008478513356562137,0.5757152754407701,0.7623076491232995,1.0
204
+ soft,Clutches,1,1.0,0.00018811136192626034,1.0,1.0,1.0,1.0,0.0009405568096313017,1.0,1.0,1.0,1.0,0.0018811136192626034,1.0,1.0,1.0,1.0,0.003762227238525207,1.0,1.0,1.0,1.0,0.009405568096313018,1.0,1.0,1.0,0.99,0.018623024830699775,0.9867343263592957,0.9922843494502112,1.0
205
+ soft,Deodorant,5,1.0,0.001532374751311268,1.0,1.0,1.0,0.96,0.007310996563573882,0.96,0.9737589844975316,1.0,0.8200000000000001,0.012165852776270572,0.7893650793650793,0.8691544086315602,1.0,0.8,0.023851962380177248,0.7169802810708383,0.8363586310761594,1.0,0.784,0.059225447639717856,0.6666491257959528,0.8086640529980237,1.0,0.78,0.11797115210707179,0.6396963515038091,0.7961082746548863,1.0
206
+ soft,Caps,1,1.0,0.00022732439190725165,1.0,1.0,1.0,1.0,0.0011366219595362582,1.0,1.0,1.0,0.9,0.0020459195271652648,0.9,0.9363792118010483,1.0,0.7,0.003182541486701523,0.6696639471639472,0.7885685259538241,1.0,0.5,0.005683109797681291,0.3704147308607864,0.5874611059648229,1.0,0.56,0.012730165946806092,0.34781123482309384,0.598293752015547,1.0
207
+ soft,Lip Liner,1,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360823,1.0,1.0,1.0,1.0,0.006443298969072165,1.0,1.0,1.0,1.0,0.01288659793814433,1.0,1.0,1.0,1.0,0.03221649484536082,1.0,1.0,1.0,1.0,0.06443298969072164,1.0,1.0,1.0
208
+ soft,Foundation and Primer,1,1.0,0.0006443298969072165,1.0,1.0,1.0,0.8,0.002577319587628866,0.8,0.8687949224876582,1.0,0.8,0.005154639175257732,0.736547619047619,0.8486026589039901,1.0,0.65,0.008376288659793814,0.5294206103494028,0.7182860646884806,1.0,0.86,0.027706185567010308,0.685563048773757,0.8462255531754223,1.0,0.91,0.0586340206185567,0.7698118304270448,0.8897545783869253,1.0
209
+ soft,Blazers,1,1.0,8.823010411152286e-05,1.0,1.0,1.0,1.0,0.0004411505205576143,1.0,1.0,1.0,1.0,0.0008823010411152286,1.0,1.0,1.0,1.0,0.0017646020822304571,1.0,1.0,1.0,1.0,0.0044115052055761425,1.0,1.0,1.0,1.0,0.008823010411152285,1.0,1.0,1.0
210
+ soft,Highlighter and Blush,1,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360823,1.0,1.0,1.0,1.0,0.006443298969072165,1.0,1.0,1.0,1.0,0.01288659793814433,1.0,1.0,1.0,1.0,0.03221649484536082,1.0,1.0,1.0,1.0,0.06443298969072164,1.0,1.0,1.0
211
+ soft,Scarves,1,0.0,0.0,0.0,0.0,0.0,0.4,0.0003762227238525207,0.16666666666666666,0.3156484524795145,0.3333333333333333,0.6,0.001128668171557562,0.3196428571428571,0.4922818839877926,0.3333333333333333,0.55,0.002069224981188864,0.30059371184371175,0.49265148496049777,0.3333333333333333,0.56,0.005267118133935289,0.31300621485541197,0.5266504353647885,0.3333333333333333,0.44,0.008276899924755455,0.2405298268072437,0.4492819248627575,0.3333333333333333
212
+ soft,Eye Cream,1,1.0,0.0006443298969072165,1.0,1.0,1.0,1.0,0.0032216494845360823,1.0,1.0,1.0,1.0,0.006443298969072165,1.0,1.0,1.0,1.0,0.01288659793814433,1.0,1.0,1.0,0.98,0.03157216494845361,0.9729515216137484,0.9850030692922281,1.0,0.95,0.061211340206185565,0.9274750311769838,0.9597900872201347,1.0
213
+ soft,Stockings,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,1.0,0.0023228803716608595,1.0,1.0,1.0,1.0,0.005807200929152149,1.0,1.0,1.0,1.0,0.011614401858304297,1.0,1.0,1.0
214
+ soft,Camisoles,1,1.0,0.00011614401858304297,1.0,1.0,1.0,1.0,0.0005807200929152149,1.0,1.0,1.0,1.0,0.0011614401858304297,1.0,1.0,1.0,0.8,0.0018583042973286876,0.8,0.8672962746434073,1.0,0.62,0.003600464576074332,0.5290039015588441,0.7010144675368607,1.0,0.63,0.007317073170731708,0.4629050359788012,0.6767954827422168,1.0
artifacts/evaluation/image_to_image_metrics.json ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "evaluation_type": "image_to_image_retrieval",
3
+ "model": "mohsin416/fashion-clip-vit-large",
4
+ "dataset": "paramaggarwal/fashion-product-images-dataset",
5
+ "num_queries": 500,
6
+ "num_indexed_images": 44065,
7
+ "embedding_dimension": 768,
8
+ "k_values": [1, 5, 10, 20, 50, 100],
9
+ "exclude_self_match": true,
10
+ "relevance_definitions": {
11
+ "strict": ["articleType"],
12
+ "medium": ["subCategory"],
13
+ "soft": ["gender", "masterCategory"]
14
+ },
15
+ "metrics": {
16
+ "strict": {
17
+ "precision@1": 0.874,
18
+ "recall@1": 0.002763378892972854,
19
+ "map@1": 0.874,
20
+ "ndcg@1": 0.874,
21
+ "mrr@1": 0.874,
22
+ "precision@5": 0.8632000000000001,
23
+ "recall@5": 0.010143609731069408,
24
+ "map@5": 0.8332066666666667,
25
+ "ndcg@5": 0.867996010455835,
26
+ "mrr@5": 0.9144,
27
+ "precision@10": 0.8402000000000001,
28
+ "recall@10": 0.01735876757759483,
29
+ "map@10": 0.7975352380952381,
30
+ "ndcg@10": 0.8506805601403487,
31
+ "mrr@10": 0.9157166666666667,
32
+ "precision@20": 0.8181,
33
+ "recall@20": 0.028347488718298536,
34
+ "map@20": 0.765765475117786,
35
+ "ndcg@20": 0.833052869384005,
36
+ "mrr@20": 0.9162267563705644,
37
+ "precision@50": 0.7814800000000001,
38
+ "recall@50": 0.056451977757770534,
39
+ "map@50": 0.720017914988089,
40
+ "ndcg@50": 0.8027467235328809,
41
+ "mrr@50": 0.9163373885544724,
42
+ "precision@100": 0.75522,
43
+ "recall@100": 0.09585186912899869,
44
+ "map@100": 0.6892311489392102,
45
+ "ndcg@100": 0.7809777290395595,
46
+ "mrr@100": 0.9163614849400147
47
+ },
48
+ "medium": {
49
+ "precision@1": 0.968,
50
+ "recall@1": 0.0009479976465196843,
51
+ "map@1": 0.968,
52
+ "ndcg@1": 0.968,
53
+ "mrr@1": 0.968,
54
+ "precision@5": 0.964,
55
+ "recall@5": 0.003537443646943243,
56
+ "map@5": 0.95738,
57
+ "ndcg@5": 0.9660024520963154,
58
+ "mrr@5": 0.9783333333333333,
59
+ "precision@10": 0.9556,
60
+ "recall@10": 0.006432589884542118,
61
+ "map@10": 0.9448415079365079,
62
+ "ndcg@10": 0.959532777697253,
63
+ "mrr@10": 0.9786666666666666,
64
+ "precision@20": 0.9448,
65
+ "recall@20": 0.011712639814613582,
66
+ "map@20": 0.9302584022698147,
67
+ "ndcg@20": 0.9508209431689493,
68
+ "mrr@20": 0.9788205128205129,
69
+ "precision@50": 0.92844,
70
+ "recall@50": 0.026116796519493286,
71
+ "map@50": 0.9080475377294356,
72
+ "ndcg@50": 0.9362214975710581,
73
+ "mrr@50": 0.9788894783377542,
74
+ "precision@100": 0.91572,
75
+ "recall@100": 0.04766945982045444,
76
+ "map@100": 0.8917254231974451,
77
+ "ndcg@100": 0.9248214550436903,
78
+ "mrr@100": 0.9788894783377542
79
+ },
80
+ "soft": {
81
+ "precision@1": 0.922,
82
+ "recall@1": 0.0005187722347088218,
83
+ "map@1": 0.922,
84
+ "ndcg@1": 0.922,
85
+ "mrr@1": 0.922,
86
+ "precision@5": 0.9096000000000001,
87
+ "recall@5": 0.002219622638306041,
88
+ "map@5": 0.8900066666666666,
89
+ "ndcg@5": 0.9128362150963535,
90
+ "mrr@5": 0.9454000000000001,
91
+ "precision@10": 0.8984000000000001,
92
+ "recall@10": 0.0035583739731783813,
93
+ "map@10": 0.8703734920634921,
94
+ "ndcg@10": 0.9039191894601937,
95
+ "mrr@10": 0.9468444444444445,
96
+ "precision@20": 0.8812000000000001,
97
+ "recall@20": 0.006156086544883346,
98
+ "map@20": 0.8468977713385687,
99
+ "ndcg@20": 0.890147333479848,
100
+ "mrr@20": 0.9470830409356724,
101
+ "precision@50": 0.86492,
102
+ "recall@50": 0.012544600663409643,
103
+ "map@50": 0.8208901122076345,
104
+ "ndcg@50": 0.8743627541612049,
105
+ "mrr@50": 0.9471385964912281,
106
+ "precision@100": 0.8515400000000001,
107
+ "recall@100": 0.0226250196941088,
108
+ "map@100": 0.8024866481328302,
109
+ "ndcg@100": 0.8619764228637457,
110
+ "mrr@100": 0.9471585964912281
111
+ }
112
+ }
113
+ }
config/model.yaml CHANGED
@@ -1,9 +1,71 @@
1
  model:
2
  name: "openai/clip-vit-large-patch14"
3
- learning_rate: 1e-4
 
 
4
  batch_size: 32
5
  epochs: 10
6
- new_model: "mohsin416/fashion-clip-vit-large"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  index:
9
- dimension: 768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  model:
2
  name: "openai/clip-vit-large-patch14"
3
+ new_model: "mohsin416/fashion-clip-vit-large"
4
+ repo_id: "mohsin416/fashion-clip-vit-large"
5
+ learning_rate: 0.0001
6
  batch_size: 32
7
  epochs: 10
8
+ device: "auto"
9
+
10
+ data:
11
+ dataset_name: "paramaggarwal/fashion-product-images-dataset"
12
+ image_dir: "artifacts/images"
13
+ metadata_path: "artifacts/styles.csv"
14
+ split_path: "artifacts/splits.json"
15
+ metadata_aligned_path: "artifacts/embeddings/metadata_aligned.csv"
16
+ id_column: "id"
17
+ image_column: "image"
18
+ gender_column: "gender"
19
+ master_category_column: "masterCategory"
20
+ sub_category_column: "subCategory"
21
+ article_type_column: "articleType"
22
+ base_colour_column: "baseColour"
23
+
24
+ embeddings:
25
+ dimension: 768
26
+ normalize: true
27
+ batch_size: 32
28
+ output_path: "artifacts/embeddings/image_embeddings.npy"
29
 
30
  index:
31
+ dimension: 768
32
+ similarity: "cosine"
33
+ backend: "numpy"
34
+ top_k: 10
35
+ index_path: "artifacts/index/image_index.npy"
36
+ embedding_path: "artifacts/embeddings/image_embeddings.npy"
37
+ metadata_path: "artifacts/embeddings/metadata_aligned.csv"
38
+
39
+ evaluation:
40
+ enabled: true
41
+ task: "image_to_image_retrieval"
42
+ k_values: [1, 5, 10, 20, 50, 100]
43
+ seed: 42
44
+ max_queries: 500
45
+ exclude_self_match: true
46
+ relevance_levels:
47
+ strict:
48
+ fields: ["articleType"]
49
+ description: "Relevant if retrieved item has the same articleType as the query."
50
+
51
+ medium:
52
+ fields: ["subCategory"]
53
+ description: "Relevant if retrieved item has the same subCategory as the query."
54
+
55
+ soft:
56
+ fields: ["gender", "masterCategory"]
57
+ description: "Relevant if retrieved item has the same gender and masterCategory as the query."
58
+
59
+ output_dir: "artifacts/evaluation"
60
+ metrics_output_path: "artifacts/evaluation/image_to_image_metrics.json"
61
+ category_breakdown_output_path: "artifacts/evaluation/image_to_image_category_breakdown.csv"
62
+ error_cases_output_path: "artifacts/evaluation/error_cases.csv"
63
+
64
+
65
+ benchmark:
66
+ enabled: true
67
+ warmup_runs: 5
68
+ num_runs: 100
69
+ top_k: 10
70
+ output_dir: "artifacts/benchmark"
71
+ output_path: "artifacts/benchmark/benchmark_results.json"
config/schema.yaml CHANGED
@@ -1,10 +1,58 @@
1
  model:
2
- name : str
3
- learning_rate : float
4
- batch_size : int
5
- epochs : int
6
- lora_model: str
 
 
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  index:
10
- dimension : int
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  model:
2
+ name: str
3
+ new_model: str
4
+ repo_id: str
5
+ learning_rate: float
6
+ batch_size: int
7
+ epochs: int
8
+ device: str
9
 
10
+ data:
11
+ dataset_name: str
12
+ image_dir: str
13
+ metadata_path: str
14
+ split_path: str
15
+ metadata_aligned_path: str
16
+ id_column: str
17
+ image_column: str
18
+ gender_column: str
19
+ master_category_column: str
20
+ sub_category_column: str
21
+ article_type_column: str
22
+ base_colour_column: str
23
+
24
+ embeddings:
25
+ dimension: int
26
+ normalize: bool
27
+ batch_size: int
28
+ output_path: str
29
 
30
  index:
31
+ dimension: int
32
+ similarity: str
33
+ backend: str
34
+ top_k: int
35
+ index_path: str
36
+ embedding_path: str
37
+ metadata_path: str
38
+
39
+ evaluation:
40
+ enabled: bool
41
+ task: str
42
+ k_values: list
43
+ seed: int
44
+ max_queries: any
45
+ exclude_self_match: bool
46
+ relevance_levels: dict
47
+ output_dir: str
48
+ metrics_output_path: str
49
+ category_breakdown_output_path: str
50
+ error_cases_output_path: str
51
+
52
+ benchmark:
53
+ enabled: bool
54
+ warmup_runs: int
55
+ num_runs: int
56
+ top_k: int
57
+ output_dir: str
58
+ output_path: str
template.py CHANGED
@@ -4,31 +4,56 @@ from pathlib import Path
4
  project_name = "visual_product_search"
5
 
6
  list_of_files = [
 
 
 
 
7
  f"{project_name}/embeddings/__init__.py",
8
  f"{project_name}/embeddings/model.py",
9
  f"{project_name}/embeddings/embed.py",
10
  f"{project_name}/embeddings/train.py",
 
 
 
 
 
 
 
 
11
  f"{project_name}/indexing/__init__.py",
12
  f"{project_name}/indexing/indexer.py",
13
  f"{project_name}/indexing/search.py",
 
 
 
14
  f"{project_name}/pipeline/__init__.py",
15
  f"{project_name}/pipeline/training_pipeline.py",
16
  f"{project_name}/pipeline/prediction_pipeline.py",
17
- f"{project_name}/data/__init__.py",
18
- f"{project_name}/data/ingest.py",
19
- f"{project_name}/data/dataset.py",
20
  f"{project_name}/utils/__init__.py",
21
  f"{project_name}/utils/config.py",
22
  f"{project_name}/utils/storage.py",
23
- f"{project_name}/exception/__init__.py",
24
- f"{project_name}/logger/__init__.py",
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  "app.py",
26
- "requirements.txt",
27
  "Dockerfile",
28
- ".dockerignore",
 
 
29
  "setup.py",
30
- "config/model.yaml",
31
- "config/schema.yaml",
32
  ]
33
 
34
  for filepath in list_of_files:
@@ -41,4 +66,4 @@ for filepath in list_of_files:
41
  if not filepath.exists() or filepath.stat().st_size == 0:
42
  filepath.touch()
43
  else:
44
- print(f'{filename} is already present in {filedir} and has some content. Skipping creation.')
 
4
  project_name = "visual_product_search"
5
 
6
  list_of_files = [
7
+ f"{project_name}/data/__init__.py",
8
+ f"{project_name}/data/ingest.py",
9
+ f"{project_name}/data/dataset.py",
10
+
11
  f"{project_name}/embeddings/__init__.py",
12
  f"{project_name}/embeddings/model.py",
13
  f"{project_name}/embeddings/embed.py",
14
  f"{project_name}/embeddings/train.py",
15
+
16
+ f"{project_name}/evaluation/__init__.py",
17
+ f"{project_name}/evaluation/metrics.py",
18
+ f"{project_name}/evaluation/evaluate_image_to_image.py",
19
+ f"{project_name}/evaluation/error_analysis.py",
20
+
21
+ f"{project_name}/exception/__init__.py",
22
+
23
  f"{project_name}/indexing/__init__.py",
24
  f"{project_name}/indexing/indexer.py",
25
  f"{project_name}/indexing/search.py",
26
+
27
+ f"{project_name}/logger/__init__.py",
28
+
29
  f"{project_name}/pipeline/__init__.py",
30
  f"{project_name}/pipeline/training_pipeline.py",
31
  f"{project_name}/pipeline/prediction_pipeline.py",
32
+
 
 
33
  f"{project_name}/utils/__init__.py",
34
  f"{project_name}/utils/config.py",
35
  f"{project_name}/utils/storage.py",
36
+
37
+ "artifacts/evaluation/image_to_image_metrics.json",
38
+ "artifacts/evaluation/image_to_image_category_breakdown.csv",
39
+ "artifacts/evaluation/error_cases.csv",
40
+
41
+ ".github/workflows/docker-to-hf.yml",
42
+
43
+ "config/model.yaml",
44
+ "config/schema.yaml",
45
+
46
+ "templates/home.html",
47
+ "templates/train.html",
48
+
49
+ ".dockerignore",
50
+ ".gitignore",
51
  "app.py",
 
52
  "Dockerfile",
53
+ "LICENCE",
54
+ "README.md",
55
+ "requirements.txt",
56
  "setup.py",
 
 
57
  ]
58
 
59
  for filepath in list_of_files:
 
66
  if not filepath.exists() or filepath.stat().st_size == 0:
67
  filepath.touch()
68
  else:
69
+ print(f'{filename} is already present in {filedir} and has some content. Skipping creation.')
templates/evaluation.html ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Evaluation Results | Visual Product Search</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+
9
+ <script>
10
+ tailwind.config = {
11
+ theme: {
12
+ extend: {
13
+ colors: {
14
+ primary: "rgba(99, 102, 241, 0.8)",
15
+ secondary: "rgba(168, 85, 247, 0.8)",
16
+ darkglass: "rgba(15, 23, 42, 0.7)",
17
+ },
18
+ boxShadow: {
19
+ glow: "0 0 15px rgba(168, 85, 247, 0.5)",
20
+ soft: "0 4px 30px rgba(0, 0, 0, 0.1)",
21
+ },
22
+ },
23
+ },
24
+ };
25
+ </script>
26
+
27
+ <style>
28
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");
29
+
30
+ body {
31
+ font-family: "Inter", sans-serif;
32
+ background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
33
+ min-height: 100vh;
34
+ color: white;
35
+ }
36
+
37
+ .glass-card {
38
+ background: rgba(255, 255, 255, 0.05);
39
+ backdrop-filter: blur(8px);
40
+ -webkit-backdrop-filter: blur(8px);
41
+ border: 1px solid rgba(255, 255, 255, 0.1);
42
+ }
43
+
44
+ .btn-gradient {
45
+ background: linear-gradient(
46
+ 45deg,
47
+ rgba(99, 102, 241, 0.8) 0%,
48
+ rgba(168, 85, 247, 0.8) 100%
49
+ );
50
+ }
51
+ </style>
52
+ </head>
53
+
54
+ <body class="min-h-screen py-10 px-4 sm:px-6 lg:px-8">
55
+ <div class="w-full max-w-6xl mx-auto">
56
+ <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-10">
57
+ <div>
58
+ <h1 class="text-4xl sm:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-primary to-secondary mb-3">
59
+ Evaluation Dashboard
60
+ </h1>
61
+ <p class="text-gray-300">
62
+ Precomputed evaluation and benchmark results for Visual Product Search
63
+ </p>
64
+ </div>
65
+
66
+ <a href="/" class="btn-gradient px-5 py-3 rounded-xl font-medium text-white shadow-glow text-center">
67
+ Back to Search
68
+ </a>
69
+ </div>
70
+
71
+ {% if evaluation %}
72
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-8">
73
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
74
+ <p class="text-gray-400 text-sm mb-2">Indexed Images</p>
75
+ <h2 class="text-3xl font-bold">{{ "{:,}".format(evaluation.num_indexed_images) }}</h2>
76
+ </div>
77
+
78
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
79
+ <p class="text-gray-400 text-sm mb-2">Evaluation Queries</p>
80
+ <h2 class="text-3xl font-bold">{{ "{:,}".format(evaluation.num_queries) }}</h2>
81
+ </div>
82
+
83
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
84
+ <p class="text-gray-400 text-sm mb-2">Embedding Dimension</p>
85
+ <h2 class="text-3xl font-bold">{{ evaluation.embedding_dimension }}</h2>
86
+ </div>
87
+
88
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
89
+ <p class="text-gray-400 text-sm mb-2">Self-Match Excluded</p>
90
+ <h2 class="text-3xl font-bold">
91
+ {% if evaluation.exclude_self_match %}Yes{% else %}No{% endif %}
92
+ </h2>
93
+ </div>
94
+ </div>
95
+
96
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-8">
97
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
98
+ <p class="text-gray-400 text-sm mb-2">Article Type Precision@5</p>
99
+ <h2 class="text-3xl font-bold text-green-300">{{ evaluation.main_cards.article_precision_5 }}%</h2>
100
+ </div>
101
+
102
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
103
+ <p class="text-gray-400 text-sm mb-2">Subcategory Precision@5</p>
104
+ <h2 class="text-3xl font-bold text-green-300">{{ evaluation.main_cards.subcategory_precision_5 }}%</h2>
105
+ </div>
106
+
107
+ <div class="glass-card rounded-2xl p-5 shadow-soft">
108
+ <p class="text-gray-400 text-sm mb-2">Gender + Master Category Precision@5</p>
109
+ <h2 class="text-3xl font-bold text-green-300">{{ evaluation.main_cards.gender_master_precision_5 }}%</h2>
110
+ </div>
111
+ </div>
112
+
113
+ <div class="glass-card rounded-2xl p-6 shadow-soft mb-8 overflow-x-auto">
114
+ <h2 class="text-2xl font-semibold mb-2">Image-to-Image Retrieval Evaluation</h2>
115
+ <p class="text-gray-400 mb-6">
116
+ Model: {{ evaluation.model }} | Dataset: {{ evaluation.dataset }}
117
+ </p>
118
+
119
+ <table class="w-full text-left border-collapse">
120
+ <thead>
121
+ <tr class="border-b border-gray-700 text-gray-300">
122
+ <th class="py-3 pr-4">Match Type</th>
123
+ <th class="py-3 pr-4">Definition</th>
124
+ <th class="py-3 pr-4">Precision@5</th>
125
+ <th class="py-3 pr-4">NDCG@10</th>
126
+ <th class="py-3 pr-4">mAP@10</th>
127
+ <th class="py-3 pr-4">MRR@10</th>
128
+ </tr>
129
+ </thead>
130
+
131
+ <tbody>
132
+ {% for row in evaluation.rows %}
133
+ <tr class="border-b border-gray-800">
134
+ <td class="py-4 pr-4 font-medium">{{ row.name }}</td>
135
+ <td class="py-4 pr-4 text-gray-400">{{ row.definition }}</td>
136
+ <td class="py-4 pr-4">{{ row.precision_5 }}%</td>
137
+ <td class="py-4 pr-4">{{ row.ndcg_10 }}%</td>
138
+ <td class="py-4 pr-4">{{ row.map_10 }}%</td>
139
+ <td class="py-4 pr-4">{{ row.mrr_10 }}%</td>
140
+ </tr>
141
+ {% endfor %}
142
+ </tbody>
143
+ </table>
144
+ </div>
145
+ {% else %}
146
+ <div class="glass-card rounded-2xl p-8 shadow-soft mb-8">
147
+ <h2 class="text-2xl font-semibold mb-3">Evaluation Results Not Available</h2>
148
+ <p class="text-gray-300 mb-4">
149
+ Run evaluation locally and save the generated JSON file before showing this dashboard.
150
+ </p>
151
+ <pre class="bg-slate-950 text-gray-300 p-4 rounded-xl overflow-x-auto">python -m visual_product_search.evaluation.evaluate_image_to_image</pre>
152
+ </div>
153
+ {% endif %}
154
+
155
+ {% if benchmark %}
156
+ <div class="glass-card rounded-2xl p-6 shadow-soft overflow-x-auto">
157
+ <h2 class="text-2xl font-semibold mb-2">Search Benchmark</h2>
158
+ <p class="text-gray-400 mb-6">
159
+ Search latency measured using precomputed embeddings.
160
+ </p>
161
+
162
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6">
163
+ <div class="bg-darkglass rounded-xl p-4">
164
+ <p class="text-gray-400 text-sm mb-2">Mean Latency</p>
165
+ <h3 class="text-2xl font-bold">{{ benchmark.mean }} ms</h3>
166
+ </div>
167
+
168
+ <div class="bg-darkglass rounded-xl p-4">
169
+ <p class="text-gray-400 text-sm mb-2">P50 Latency</p>
170
+ <h3 class="text-2xl font-bold">{{ benchmark.p50 }} ms</h3>
171
+ </div>
172
+
173
+ <div class="bg-darkglass rounded-xl p-4">
174
+ <p class="text-gray-400 text-sm mb-2">P95 Latency</p>
175
+ <h3 class="text-2xl font-bold">{{ benchmark.p95 }} ms</h3>
176
+ </div>
177
+
178
+ <div class="bg-darkglass rounded-xl p-4">
179
+ <p class="text-gray-400 text-sm mb-2">P99 Latency</p>
180
+ <h3 class="text-2xl font-bold">{{ benchmark.p99 }} ms</h3>
181
+ </div>
182
+ </div>
183
+
184
+ <table class="w-full text-left border-collapse">
185
+ <tbody>
186
+ <tr class="border-b border-gray-800">
187
+ <td class="py-3 pr-4 text-gray-400">Top-K</td>
188
+ <td class="py-3 pr-4">{{ benchmark.top_k }}</td>
189
+ </tr>
190
+ <tr class="border-b border-gray-800">
191
+ <td class="py-3 pr-4 text-gray-400">Measured Runs</td>
192
+ <td class="py-3 pr-4">{{ benchmark.num_runs }}</td>
193
+ </tr>
194
+ <tr class="border-b border-gray-800">
195
+ <td class="py-3 pr-4 text-gray-400">Embedding File Size</td>
196
+ <td class="py-3 pr-4">{{ benchmark.embedding_file_mb }} MB</td>
197
+ </tr>
198
+ <tr>
199
+ <td class="py-3 pr-4 text-gray-400">Metadata File Size</td>
200
+ <td class="py-3 pr-4">{{ benchmark.metadata_file_mb }} MB</td>
201
+ </tr>
202
+ </tbody>
203
+ </table>
204
+ </div>
205
+ {% else %}
206
+ <div class="glass-card rounded-2xl p-8 shadow-soft">
207
+ <h2 class="text-2xl font-semibold mb-3">Benchmark Results Not Available</h2>
208
+ <p class="text-gray-300 mb-4">
209
+ Run benchmark locally after generating embeddings.
210
+ </p>
211
+ <pre class="bg-slate-950 text-gray-300 p-4 rounded-xl overflow-x-auto">python -m visual_product_search.evaluation.benchmark</pre>
212
+ </div>
213
+ {% endif %}
214
+ </div>
215
+ </body>
216
+ </html>
test/test_app.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from app import app
2
+
3
+ def test_health_endpoint():
4
+ client = app.test_client()
5
+ response = client.get("/health")
6
+ assert response.status_code == 200
7
+ data = response.get_json()
8
+ assert data["status"] == "ok"
9
+ assert data["service"] == "visual-product-search"
10
+
11
+
12
+ def test_home_page_loads():
13
+ client = app.test_client()
14
+ response = client.get("/")
15
+ assert response.status_code == 200
16
+
17
+
18
+ def test_evaluation_page_loads():
19
+ client = app.test_client()
20
+ response = client.get("/evaluation")
21
+ assert response.status_code == 200
test/test_evaluation_outputs.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+
4
+
5
+ def test_evaluation_metrics_file_exists():
6
+ path = Path("artifacts/evaluation/image_to_image_metrics.json")
7
+ assert path.exists(), "image_to_image_metrics.json is missing"
8
+
9
+
10
+ def test_evaluation_metrics_has_required_keys():
11
+ path = Path("artifacts/evaluation/image_to_image_metrics.json")
12
+
13
+ with open(path, "r", encoding="utf-8") as f:
14
+ data = json.load(f)
15
+
16
+ assert "evaluation_type" in data
17
+ assert "model" in data
18
+ assert "dataset" in data
19
+ assert "num_queries" in data
20
+ assert "num_indexed_images" in data
21
+ assert "metrics" in data
22
+
23
+
24
+ def test_evaluation_metrics_has_relevance_levels():
25
+ path = Path("artifacts/evaluation/image_to_image_metrics.json")
26
+ with open(path, "r", encoding="utf-8") as f:
27
+ data = json.load(f)
28
+ metrics = data.get("metrics", {})
29
+ assert "strict" in metrics
30
+ assert "medium" in metrics
31
+ assert "soft" in metrics
32
+
33
+
34
+ def test_evaluation_csv_files_exist():
35
+ category_path = Path("artifacts/evaluation/image_to_image_category_breakdown.csv")
36
+ error_path = Path("artifacts/evaluation/error_cases.csv")
37
+
38
+ assert category_path.exists(), "image_to_image_category_breakdown.csv is missing"
39
+ assert error_path.exists(), "error_cases.csv is missing"
test/test_metrics.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pytest
2
+ from visual_product_search.evaluation.metrics import (
3
+ average_precision_at_k,
4
+ dcg_at_k,
5
+ evaluate_ranking,
6
+ mrr_at_k,
7
+ ndcg_at_k,
8
+ precision_at_k,
9
+ recall_at_k,
10
+ )
11
+
12
+
13
+ def test_precision_at_k():
14
+ relevance = [1, 0, 1, 1, 0]
15
+ assert precision_at_k(relevance, 5) == pytest.approx(0.6)
16
+
17
+
18
+ def test_recall_at_k():
19
+ relevance = [1, 0, 1, 1, 0]
20
+ assert recall_at_k(relevance, total_relevant=6, k=5) == pytest.approx(0.5)
21
+
22
+
23
+ def test_average_precision_at_k():
24
+ relevance = [1, 0, 1, 1, 0]
25
+ value = average_precision_at_k(relevance, k=5, total_relevant=3)
26
+ assert value == pytest.approx((1 / 1 + 2 / 3 + 3 / 4) / 3)
27
+
28
+
29
+ def test_dcg_at_k():
30
+ relevance = [1, 0, 1]
31
+ value = dcg_at_k(relevance, 3)
32
+ expected = 1 / 1 + 0 / 1.584962500721156 + 1 / 2
33
+ assert value == pytest.approx(expected)
34
+
35
+
36
+ def test_ndcg_at_k():
37
+ relevance = [1, 0, 1]
38
+ value = ndcg_at_k(relevance, total_relevant=2, k=3)
39
+ assert 0 <= value <= 1
40
+
41
+
42
+ def test_mrr_at_k():
43
+ relevance = [0, 0, 1, 0]
44
+ assert mrr_at_k(relevance, 4) == pytest.approx(1 / 3)
45
+
46
+
47
+ def test_evaluate_ranking():
48
+ relevance = [1, 0, 1, 0, 1]
49
+
50
+ result = evaluate_ranking(relevance, total_relevant=5, k_values=[1, 5])
51
+
52
+ assert "precision@1" in result
53
+ assert "recall@5" in result
54
+ assert "map@5" in result
55
+ assert "ndcg@5" in result
56
+ assert "mrr@5" in result
visual_product_search/evaluation/__init__.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from visual_product_search.evaluation.metrics import (
2
+ average_metric_dicts,
3
+ average_precision_at_k,
4
+ dcg_at_k,
5
+ evaluate_ranking,
6
+ mrr_at_k,
7
+ ndcg_at_k,
8
+ precision_at_k,
9
+ recall_at_k,
10
+ )
11
+
12
+ __all__ = [
13
+ "average_metric_dicts",
14
+ "average_precision_at_k",
15
+ "dcg_at_k",
16
+ "evaluate_ranking",
17
+ "mrr_at_k",
18
+ "ndcg_at_k",
19
+ "precision_at_k",
20
+ "recall_at_k",
21
+ ]
visual_product_search/evaluation/error_analysis.py ADDED
File without changes
visual_product_search/evaluation/evaluate_image_to_image.py ADDED
File without changes
visual_product_search/evaluation/metrics.py ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+
3
+ def _to_binary_array(relevance):
4
+ return np.asarray(relevance, dtype=np.float32)
5
+
6
+ def precision_at_k(relevance, k):
7
+ values = _to_binary_array(relevance)[:k]
8
+
9
+ if len(values) == 0:
10
+ return 0.0
11
+
12
+ return float(np.sum(values) / len(values))
13
+
14
+ def recall_at_k(relevance, total_relevant, k):
15
+ if total_relevant <= 0:
16
+ return 0.0
17
+
18
+ values = _to_binary_array(relevance)[:k]
19
+ return float(np.sum(values) / total_relevant)
20
+
21
+ def average_precision_at_k(relevance, k, total_relevant=None):
22
+ values = _to_binary_array(relevance)[:k]
23
+
24
+ if len(values) == 0:
25
+ return 0.0
26
+
27
+ score = 0.0
28
+ hits = 0.0
29
+
30
+ for idx, item in enumerate(values, start=1):
31
+ if item > 0:
32
+ hits += 1.0
33
+ score += hits / idx
34
+
35
+ if total_relevant is None:
36
+ denominator = hits
37
+ else:
38
+ denominator = min(float(total_relevant), float(k))
39
+
40
+ if denominator <= 0:
41
+ return 0.0
42
+
43
+ return float(score / denominator)
44
+
45
+
46
+ def dcg_at_k(relevance, k):
47
+ values = _to_binary_array(relevance)[:k]
48
+
49
+ if len(values) == 0:
50
+ return 0.0
51
+
52
+ discounts = np.log2(np.arange(2, len(values) + 2))
53
+ return float(np.sum(values / discounts))
54
+
55
+
56
+ def ndcg_at_k(relevance, total_relevant, k):
57
+ if total_relevant <= 0:
58
+ return 0.0
59
+
60
+ dcg = dcg_at_k(relevance, k)
61
+ ideal_hits = int(min(total_relevant, k))
62
+ ideal = np.ones(ideal_hits, dtype=np.float32)
63
+ ideal_dcg = dcg_at_k(ideal, ideal_hits)
64
+
65
+ if ideal_dcg == 0:
66
+ return 0.0
67
+
68
+ return float(dcg / ideal_dcg)
69
+
70
+
71
+ def mrr_at_k(relevance, k):
72
+ values = _to_binary_array(relevance)[:k]
73
+
74
+ for idx, item in enumerate(values, start=1):
75
+ if item > 0:
76
+ return float(1.0 / idx)
77
+
78
+ return 0.0
79
+
80
+
81
+ def evaluate_ranking(relevance, total_relevant, k_values):
82
+ result = {}
83
+
84
+ for k in k_values:
85
+ result[f"precision@{k}"] = precision_at_k(relevance, k)
86
+ result[f"recall@{k}"] = recall_at_k(relevance, total_relevant, k)
87
+ result[f"map@{k}"] = average_precision_at_k(relevance, k, total_relevant)
88
+ result[f"ndcg@{k}"] = ndcg_at_k(relevance, total_relevant, k)
89
+ result[f"mrr@{k}"] = mrr_at_k(relevance, k)
90
+
91
+ return result
92
+
93
+
94
+ def average_metric_dicts(metric_dicts):
95
+ if not metric_dicts:
96
+ return {}
97
+
98
+ keys = metric_dicts[0].keys()
99
+
100
+ return {
101
+ key: float(np.mean([item[key] for item in metric_dicts]))
102
+ for key in keys
103
+ }
visual_product_search/utils/config.py CHANGED
@@ -1,15 +1,43 @@
1
  import sys
 
 
2
  import yaml
3
  from visual_product_search.logger import logging
4
  from visual_product_search.exception import ExceptionHandle
5
 
6
- def load_config(path : str):
 
7
  try:
8
- with open(path, "r") as f:
 
 
 
 
9
  config = yaml.safe_load(f)
10
- logging.info(f"Config loaded from path {path}")
 
 
 
 
11
  return config
12
 
13
  except Exception as e:
14
- logging.erorr(f"Error loading config {path}")
15
- raise ExceptionHandle(e, sys)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import sys
2
+ import json
3
+ from pathlib import Path
4
  import yaml
5
  from visual_product_search.logger import logging
6
  from visual_product_search.exception import ExceptionHandle
7
 
8
+
9
+ def load_config(path: str = "config/model.yaml"):
10
  try:
11
+ config_path = Path(path)
12
+ if not config_path.exists():
13
+ raise FileNotFoundError(f"Config file not found: {config_path}")
14
+
15
+ with open(config_path, "r", encoding="utf-8") as f:
16
  config = yaml.safe_load(f)
17
+
18
+ if config is None:
19
+ raise ValueError(f"Config file is empty: {config_path}")
20
+
21
+ logging.info(f"Config loaded from path {config_path}")
22
  return config
23
 
24
  except Exception as e:
25
+ logging.error(f"Error loading config {path}")
26
+ raise ExceptionHandle(e, sys)
27
+
28
+
29
+
30
+ def load_json_file(path):
31
+ file_path = Path(path)
32
+ if not file_path.exists() or file_path.stat().st_size == 0:
33
+ return None
34
+
35
+ with open(file_path, "r", encoding="utf-8") as f:
36
+ return json.load(f)
37
+
38
+
39
+ def to_percent(value):
40
+ try:
41
+ return round(float(value) * 100, 2)
42
+ except Exception:
43
+ return 0.0