EcoTry commited on
Commit
77ee48b
·
verified ·
1 Parent(s): 0de35c6

Upload train_model.py

Browse files
Files changed (1) hide show
  1. train_model.py +58 -0
train_model.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # pages/train_model.py
2
+ import pandas as pd
3
+ from sklearn.model_selection import train_test_split
4
+ from sklearn.preprocessing import LabelEncoder, StandardScaler
5
+ from sklearn.neural_network import MLPClassifier
6
+ from sklearn.pipeline import Pipeline
7
+ import joblib
8
+
9
+ # Load dataset
10
+ data = pd.read_csv("size_dataset.csv")
11
+
12
+ # Features
13
+ X = data[[
14
+ "gender",
15
+ "shoulder",
16
+ "chest",
17
+ "waist",
18
+ "hip",
19
+ "chest_depth",
20
+ "hip_depth",
21
+ "height",
22
+ "weight"
23
+ ]]
24
+
25
+ # Target
26
+ y = data["size"]
27
+
28
+ # Encode labels
29
+ le = LabelEncoder()
30
+ y_encoded = le.fit_transform(y)
31
+
32
+ # Train-test split
33
+ X_train, X_test, y_train, y_test = train_test_split(
34
+ X, y_encoded, test_size=0.2, random_state=42
35
+ )
36
+
37
+ # Scaling + MLP in Pipeline
38
+ model = Pipeline([
39
+ ("scaler", StandardScaler()),
40
+ ("mlp", MLPClassifier(
41
+ hidden_layer_sizes=(128, 64, 32),
42
+ max_iter=2000,
43
+ random_state=42
44
+ ))
45
+ ])
46
+
47
+ # Train
48
+ model.fit(X_train, y_train)
49
+
50
+ # Accuracy
51
+ accuracy = model.score(X_test, y_test)
52
+ print("Model Accuracy:", accuracy)
53
+
54
+ # Save model + encoder
55
+ joblib.dump(model, "size_model.pkl")
56
+ joblib.dump(le, "label_encoder.pkl")
57
+
58
+ print("Model saved successfully!")