deppfellow commited on
Commit
39bb071
·
1 Parent(s): 1c645c1

Change used params

Browse files
Files changed (5) hide show
  1. app.py +3 -23
  2. contentBased_model.py +2 -2
  3. easeBased_model.py +3 -4
  4. func.py +1 -1
  5. requirements.txt +5 -5
app.py CHANGED
@@ -5,16 +5,9 @@ from easeBased_model import *
5
  from contentBased_model import *
6
 
7
 
8
-
9
  if "user_preferences" not in st.session_state:
10
  st.session_state["user_preferences"] = {}
11
 
12
- # if "user_titles" not in st.session_state:
13
- # st.session_state["user_titles"] = []
14
-
15
- # if "26k_titles" not in st.session_state:
16
- # st.session_state['26k_titles'] = data
17
-
18
  data = pd.read_pickle("data/list_of_all_titles.pkl")
19
  ease_ids = list(
20
  pd.read_pickle("data/dict_of_ease_ids.pkl").keys())
@@ -40,26 +33,14 @@ def games_recomm(preferences_id):
40
  ease_df = pred_df[pred_df['app_id'].isin(ease_ids)]
41
 
42
  if ease_df.empty:
43
- res = cbf_model(pred_df=pred_df, k=20)['app_id'].tolist()
44
  else:
45
  res_cbf = cbf_model(pred_df=pred_df, k=100)
46
  res_ease = ease_model(pred_df=ease_df, k=100)
47
  res = combine_hybrid_result(res_ease, res_cbf)
48
-
49
- # st.write(res)
50
- # st.write("Result of EASE:")
51
- # st.write(res_ease)
52
- # st.markdown("<br>", unsafe_allow_html=True)
53
-
54
- # st.write("Result of CBF:")
55
- # st.write(res_cbf)
56
- # st.markdown("<br>", unsafe_allow_html=True)
57
-
58
- # st.write("Result of Hybrid:")
59
- # st.write(res)
60
 
61
  if type(res) == ValueError:
62
- st.error("Recommendation failed. Please select with at least 3 games title.")
63
 
64
  return
65
  else:
@@ -102,7 +83,7 @@ def home_page():
102
  st.markdown("""
103
  Mohon untuk memasukkan input yang valid, yaitu:
104
 
105
- - Minimal 3 judul game yang dimasukkan sebagai input sistem
106
  - Preferensi penilaian game yang dimasukkan harus memiliki setidaknya 1 rating positif
107
 
108
  <br>
@@ -148,7 +129,6 @@ def result_page():
148
  st.error('Please input preferences titles and run "Get recommendation"')
149
  else:
150
  st.success(f'Top {len(st.session_state["rs"])}')
151
- # st.session_state
152
 
153
  user_res = generate_res_gamebox(ids=st.session_state['rs'])
154
 
 
5
  from contentBased_model import *
6
 
7
 
 
8
  if "user_preferences" not in st.session_state:
9
  st.session_state["user_preferences"] = {}
10
 
 
 
 
 
 
 
11
  data = pd.read_pickle("data/list_of_all_titles.pkl")
12
  ease_ids = list(
13
  pd.read_pickle("data/dict_of_ease_ids.pkl").keys())
 
33
  ease_df = pred_df[pred_df['app_id'].isin(ease_ids)]
34
 
35
  if ease_df.empty:
36
+ res = cbf_model(pred_df=pred_df, k=10)['app_id'].tolist()
37
  else:
38
  res_cbf = cbf_model(pred_df=pred_df, k=100)
39
  res_ease = ease_model(pred_df=ease_df, k=100)
40
  res = combine_hybrid_result(res_ease, res_cbf)
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
  if type(res) == ValueError:
43
+ st.error("Recommendation failed. Please select with at least 2 games title.")
44
 
45
  return
46
  else:
 
83
  st.markdown("""
84
  Mohon untuk memasukkan input yang valid, yaitu:
85
 
86
+ - Minimal 2 judul game yang dimasukkan sebagai input sistem
87
  - Preferensi penilaian game yang dimasukkan harus memiliki setidaknya 1 rating positif
88
 
89
  <br>
 
129
  st.error('Please input preferences titles and run "Get recommendation"')
130
  else:
131
  st.success(f'Top {len(st.session_state["rs"])}')
 
132
 
133
  user_res = generate_res_gamebox(ids=st.session_state['rs'])
134
 
contentBased_model.py CHANGED
@@ -9,7 +9,7 @@ class KnnCBF:
9
  user_col='user_id',
10
  item_col='app_id',
11
  score_col='is_recommended',
12
- nearest_k=3,
13
  metric="cosine"):
14
  """
15
  Args:
@@ -59,7 +59,7 @@ class KnnCBF:
59
 
60
  def predict_active(self, pred_df,
61
  k=10,
62
- weight_hybrid=.3,
63
  hybrid_model=True):
64
 
65
  act_df = pred_df.merge(self.item_lookup, on=[self.item_col], sort=False)
 
9
  user_col='user_id',
10
  item_col='app_id',
11
  score_col='is_recommended',
12
+ nearest_k=2,
13
  metric="cosine"):
14
  """
15
  Args:
 
59
 
60
  def predict_active(self, pred_df,
61
  k=10,
62
+ weight_hybrid=.2,
63
  hybrid_model=True):
64
 
65
  act_df = pred_df.merge(self.item_lookup, on=[self.item_col], sort=False)
easeBased_model.py CHANGED
@@ -8,7 +8,7 @@ class EASE:
8
  user_col='user_id',
9
  item_col='app_id',
10
  score_col='is_recommended',
11
- reg=250.):
12
  """
13
  train: (DataFrame) data of training set
14
  user_col: (String) column name of users column
@@ -52,7 +52,7 @@ class EASE:
52
  def predict_active(self, pred_df,
53
  weight_mx,
54
  k=10,
55
- weight_lambda=0.7,
56
  hybrid_model=True,
57
  remove_owned=True):
58
  """
@@ -111,8 +111,7 @@ class EASE:
111
  'app_id' : escaped_id,
112
  'predicted_score' : escaped_score
113
  })
114
- # print(pred_result)
115
-
116
  return pred_result
117
 
118
  def ease_model(pred_df, k=10):
 
8
  user_col='user_id',
9
  item_col='app_id',
10
  score_col='is_recommended',
11
+ reg=150.):
12
  """
13
  train: (DataFrame) data of training set
14
  user_col: (String) column name of users column
 
52
  def predict_active(self, pred_df,
53
  weight_mx,
54
  k=10,
55
+ weight_lambda=0.8,
56
  hybrid_model=True,
57
  remove_owned=True):
58
  """
 
111
  'app_id' : escaped_id,
112
  'predicted_score' : escaped_score
113
  })
114
+
 
115
  return pred_result
116
 
117
  def ease_model(pred_df, k=10):
func.py CHANGED
@@ -66,7 +66,7 @@ def combine_hybrid_result(res_ease, res_cbf):
66
  return res_final.head(10).index.tolist()
67
 
68
  except:
69
- st.error("Recommendation failed. Please select with at least 3 games title.")
70
 
71
  # for title in titles_list:
72
  # # url = f"https://store.steampowered.com/app/"
 
66
  return res_final.head(10).index.tolist()
67
 
68
  except:
69
+ st.error("Recommendation failed. Please select with at least 2 games title.")
70
 
71
  # for title in titles_list:
72
  # # url = f"https://store.steampowered.com/app/"
requirements.txt CHANGED
@@ -1,6 +1,6 @@
1
- pandas
2
- torch
3
- scikit-learn
4
- requests
5
- streamlit
6
  streamlit_option_menu
 
1
+ pandas==2.1.1
2
+ torch==2.1.0+cpu
3
+ scikit-learn==1.3.1
4
+ requests==2.31.0
5
+ streamlit==1.27.1
6
  streamlit_option_menu