Spaces:
Sleeping
Sleeping
Update backend/app/api/experiments.py
Browse files
backend/app/api/experiments.py
CHANGED
|
@@ -24,11 +24,20 @@ def run_experiment(req: RunRequest, db: Session = Depends(get_db)):
|
|
| 24 |
if not dataset:
|
| 25 |
return {"error": "dataset not found"}
|
| 26 |
|
|
|
|
| 27 |
df = pd.read_csv(dataset.file_path)
|
| 28 |
|
| 29 |
-
|
|
|
|
| 30 |
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
labels = model.fit_predict(X)
|
| 33 |
|
| 34 |
return {
|
|
|
|
| 24 |
if not dataset:
|
| 25 |
return {"error": "dataset not found"}
|
| 26 |
|
| 27 |
+
# load data
|
| 28 |
df = pd.read_csv(dataset.file_path)
|
| 29 |
|
| 30 |
+
# select features
|
| 31 |
+
X = df[req.feature_columns].copy()
|
| 32 |
|
| 33 |
+
# 🔥 FIX: encode categorical columns
|
| 34 |
+
X = pd.get_dummies(X)
|
| 35 |
+
|
| 36 |
+
# fill missing values
|
| 37 |
+
X = X.fillna(0)
|
| 38 |
+
|
| 39 |
+
# run clustering
|
| 40 |
+
model = KMeans(n_clusters=req.n_clusters, n_init=10)
|
| 41 |
labels = model.fit_predict(X)
|
| 42 |
|
| 43 |
return {
|