RICHERGIRL commited on
Commit
beb303e
·
verified ·
1 Parent(s): 691ea33

Create train_model.py

Browse files
Files changed (1) hide show
  1. train_model.py +44 -0
train_model.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from sklearn.ensemble import RandomForestClassifier
3
+ from sklearn.preprocessing import LabelEncoder
4
+ import joblib
5
+ import os
6
+
7
+ # 1. Create dataset
8
+ data = {
9
+ 'face_shape': ['Oval', 'Round', 'Square'] * 100,
10
+ 'skin_tone': ['Fair', 'Medium', 'Dark'] * 100,
11
+ 'face_size': ['Small', 'Medium', 'Large'] * 100,
12
+ 'mask_style': ['Glitter', 'Animal', 'Floral'] * 100
13
+ }
14
+ df = pd.DataFrame(data)
15
+
16
+ # 2. Initialize encoders
17
+ encoders = {
18
+ 'face_shape': LabelEncoder().fit(df['face_shape']),
19
+ 'skin_tone': LabelEncoder().fit(df['skin_tone']),
20
+ 'face_size': LabelEncoder().fit(df['face_size']),
21
+ 'mask_style': LabelEncoder().fit(df['mask_style']),
22
+ 'mask_images': {
23
+ 0: 'masks/glitter.png',
24
+ 1: 'masks/animal.png',
25
+ 2: 'masks/floral.png'
26
+ }
27
+ }
28
+
29
+ # 3. Train model
30
+ model = RandomForestClassifier(n_estimators=150, random_state=42)
31
+ model.fit(
32
+ pd.DataFrame({
33
+ 'face_shape': encoders['face_shape'].transform(df['face_shape']),
34
+ 'skin_tone': encoders['skin_tone'].transform(df['skin_tone']),
35
+ 'face_size': encoders['face_size'].transform(df['face_size'])
36
+ }),
37
+ encoders['mask_style'].transform(df['mask_style'])
38
+ )
39
+
40
+ # 4. Save models
41
+ os.makedirs('model', exist_ok=True)
42
+ joblib.dump(model, 'model/random_forest.pkl')
43
+ joblib.dump(encoders, 'model/label_encoders.pkl')
44
+ print("Model trained and saved!")