RICHERGIRL commited on
Commit
e911fa0
·
verified ·
1 Parent(s): 780afaa

Update model/random_forest.pkl

Browse files
Files changed (1) hide show
  1. model/random_forest.pkl +19 -32
model/random_forest.pkl CHANGED
@@ -1,49 +1,36 @@
 
1
  import pandas as pd
2
- import numpy as np
3
  from sklearn.ensemble import RandomForestClassifier
4
  from sklearn.preprocessing import LabelEncoder
5
- from sklearn.model_selection import train_test_split
6
  import joblib
7
  import os
8
 
9
- # Sample dataset (replace with your actual data)
10
  data = {
11
- 'face_shape': ['Oval', 'Round', 'Square', 'Oval', 'Round', 'Square'] * 10,
12
- 'skin_tone': ['Fair', 'Medium', 'Dark', 'Medium', 'Dark', 'Fair'] * 10,
13
- 'face_size': ['Small', 'Medium', 'Large', 'Medium', 'Large', 'Small'] * 10,
14
- 'mask_style': ['Glitter', 'Animal', 'Floral', 'Animal', 'Glitter', 'Floral'] * 10
15
  }
16
  df = pd.DataFrame(data)
17
 
18
- # Initialize LabelEncoders
19
- encoders = {
20
- 'face_shape': LabelEncoder().fit(df['face_shape']),
21
- 'skin_tone': LabelEncoder().fit(df['skin_tone']),
22
- 'face_size': LabelEncoder().fit(df['face_size']),
23
- 'mask_style': LabelEncoder().fit(df['mask_style'])
24
- }
25
-
26
- # Encode features
27
- X = pd.DataFrame({
28
- 'face_shape': encoders['face_shape'].transform(df['face_shape']),
29
- 'skin_tone': encoders['skin_tone'].transform(df['skin_tone']),
30
- 'face_size': encoders['face_size'].transform(df['face_size'])
31
- })
32
- y = encoders['mask_style'].transform(df['mask_style'])
33
 
34
- # Train-test split
35
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
36
-
37
- # Train Random Forest
38
  model = RandomForestClassifier(n_estimators=100, random_state=42)
39
- model.fit(X_train, y_train)
 
 
 
 
40
 
41
- # Create model directory
42
  os.makedirs('model', exist_ok=True)
43
-
44
- # Save model and encoders
45
  joblib.dump(model, 'model/random_forest.pkl')
46
  joblib.dump(encoders, 'model/label_encoders.pkl')
47
 
48
- print("Model trained and saved successfully!")
49
- print(f"Test Accuracy: {model.score(X_test, y_test):.2f}")
 
 
1
+ # Re-run this corrected version of train_model.py
2
  import pandas as pd
 
3
  from sklearn.ensemble import RandomForestClassifier
4
  from sklearn.preprocessing import LabelEncoder
 
5
  import joblib
6
  import os
7
 
8
+ # Create fresh data
9
  data = {
10
+ 'face_shape': ['Oval', 'Round', 'Square'] * 50,
11
+ 'skin_tone': ['Fair', 'Medium', 'Dark'] * 50,
12
+ 'face_size': ['Small', 'Medium', 'Large'] * 50,
13
+ 'mask_style': ['Glitter', 'Animal', 'Floral'] * 50
14
  }
15
  df = pd.DataFrame(data)
16
 
17
+ # Create and save new encoders
18
+ encoders = {col: LabelEncoder().fit(df[col].unique())
19
+ for col in ['face_shape', 'skin_tone', 'face_size', 'mask_style']}
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ # Train new model
 
 
 
22
  model = RandomForestClassifier(n_estimators=100, random_state=42)
23
+ model.fit(
24
+ pd.DataFrame({col: encoders[col].transform(df[col])
25
+ for col in ['face_shape', 'skin_tone', 'face_size']}),
26
+ encoders['mask_style'].transform(df['mask_style'])
27
+ )
28
 
29
+ # Save properly
30
  os.makedirs('model', exist_ok=True)
 
 
31
  joblib.dump(model, 'model/random_forest.pkl')
32
  joblib.dump(encoders, 'model/label_encoders.pkl')
33
 
34
+ # Add this to your app.py before loading
35
+ print("Current directory:", os.listdir())
36
+ print("Model directory:", os.listdir('model'))