Spaces:
Sleeping
Sleeping
Commit
·
0cedfeb
1
Parent(s):
57e8206
bugfix: added import lgbm
Browse files
app.py
CHANGED
@@ -139,37 +139,16 @@ elif page == "Customer Analysis":
|
|
139 |
model_path = f'models/modelo_cluster_{cluster}.txt'
|
140 |
gbm = lgb.Booster(model_file=model_path)
|
141 |
st.write(f"Loaded model for cluster {cluster}")
|
142 |
-
|
143 |
|
144 |
# Load X_predict for that cluster and extract customer-specific data
|
145 |
X_predict_cluster = pd.read_csv(f'predicts/X_predict_cluster_{cluster}.csv')
|
146 |
|
147 |
-
#
|
148 |
-
|
149 |
-
st.write("First few rows of X_predict_cluster:")
|
150 |
-
st.write(X_predict_cluster.head())
|
151 |
-
st.write("Unique cliente_id values in X_predict_cluster:")
|
152 |
-
st.write(X_predict_cluster['cliente_id'].unique())
|
153 |
-
|
154 |
-
st.write(f"Type of customer_code: {type(customer_code)}")
|
155 |
-
st.write(f"Value of customer_code: {customer_code}")
|
156 |
-
|
157 |
-
X_cliente = X_predict_cluster[X_predict_cluster['cliente_id'] == customer_code]
|
158 |
-
st.write(f"Shape of X_cliente after filtering: {X_cliente.shape}")
|
159 |
-
|
160 |
-
# Additional checks if X_cliente is empty
|
161 |
-
if X_cliente.empty:
|
162 |
-
X_cliente_str = X_predict_cluster[X_predict_cluster['cliente_id'].astype(str) == str(customer_code)]
|
163 |
-
X_cliente_int = X_predict_cluster[X_predict_cluster['cliente_id'].astype(int) == int(customer_code)]
|
164 |
-
st.write(f"Shape of X_cliente_str: {X_cliente_str.shape}")
|
165 |
-
st.write(f"Shape of X_cliente_int: {X_cliente_int.shape}")
|
166 |
-
|
167 |
-
st.write("Data types in X_predict_cluster:")
|
168 |
-
st.write(X_predict_cluster.dtypes)
|
169 |
|
170 |
if not X_cliente.empty:
|
171 |
# Make Prediction for the selected customer
|
172 |
-
y_pred = gbm.predict(X_cliente
|
173 |
st.write(f"Predicted sales for Customer {customer_code}: {y_pred.sum():.2f}")
|
174 |
|
175 |
# Merge with actual data from df_agg_2024
|
@@ -203,7 +182,7 @@ elif page == "Customer Analysis":
|
|
203 |
else:
|
204 |
st.warning(f"No actual sales data found for customer {customer_code} in df_agg_2024.")
|
205 |
|
206 |
-
#
|
207 |
all_manufacturers = customer_data.iloc[:, 1:].T # Exclude CLIENTE column
|
208 |
all_manufacturers.index = all_manufacturers.index.astype(str)
|
209 |
|
@@ -246,7 +225,7 @@ elif page == "Customer Analysis":
|
|
246 |
else:
|
247 |
st.warning("No data available to create the radar chart.")
|
248 |
|
249 |
-
#
|
250 |
sales_columns = ['VENTA_2021', 'VENTA_2022', 'VENTA_2023']
|
251 |
if all(col in ventas_clientes.columns for col in sales_columns):
|
252 |
years = ['2021', '2022', '2023']
|
@@ -264,7 +243,6 @@ elif page == "Customer Analysis":
|
|
264 |
else:
|
265 |
st.warning("Please select a customer.")
|
266 |
|
267 |
-
|
268 |
# Customer Recommendations Page
|
269 |
elif page == "Articles Recommendations":
|
270 |
st.title("Articles Recommendations")
|
|
|
139 |
model_path = f'models/modelo_cluster_{cluster}.txt'
|
140 |
gbm = lgb.Booster(model_file=model_path)
|
141 |
st.write(f"Loaded model for cluster {cluster}")
|
|
|
142 |
|
143 |
# Load X_predict for that cluster and extract customer-specific data
|
144 |
X_predict_cluster = pd.read_csv(f'predicts/X_predict_cluster_{cluster}.csv')
|
145 |
|
146 |
+
# Filter for the specific customer and drop the 'cliente_id' column
|
147 |
+
X_cliente = X_predict_cluster[X_predict_cluster['cliente_id'] == customer_code].drop(columns=['cliente_id'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
|
149 |
if not X_cliente.empty:
|
150 |
# Make Prediction for the selected customer
|
151 |
+
y_pred = gbm.predict(X_cliente, num_iteration=gbm.best_iteration)
|
152 |
st.write(f"Predicted sales for Customer {customer_code}: {y_pred.sum():.2f}")
|
153 |
|
154 |
# Merge with actual data from df_agg_2024
|
|
|
182 |
else:
|
183 |
st.warning(f"No actual sales data found for customer {customer_code} in df_agg_2024.")
|
184 |
|
185 |
+
# Show the radar chart
|
186 |
all_manufacturers = customer_data.iloc[:, 1:].T # Exclude CLIENTE column
|
187 |
all_manufacturers.index = all_manufacturers.index.astype(str)
|
188 |
|
|
|
225 |
else:
|
226 |
st.warning("No data available to create the radar chart.")
|
227 |
|
228 |
+
# Show sales over the years graph
|
229 |
sales_columns = ['VENTA_2021', 'VENTA_2022', 'VENTA_2023']
|
230 |
if all(col in ventas_clientes.columns for col in sales_columns):
|
231 |
years = ['2021', '2022', '2023']
|
|
|
243 |
else:
|
244 |
st.warning("Please select a customer.")
|
245 |
|
|
|
246 |
# Customer Recommendations Page
|
247 |
elif page == "Articles Recommendations":
|
248 |
st.title("Articles Recommendations")
|