apdlsimulationAI / ai_models.py
karthikmn's picture
Update ai_models.py
c1aff9b verified
import os
import pandas as pd
from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier
from joblib import dump, load
# Function to train models
def train_models():
# Synthetic dataset
data = {
"Thickness": [10, 15, 20, 25],
"Hole_Diameter": [5, 10, 15, 20],
"Force": [5000, 7000, 10000, 12000],
"Max_Stress": [300, 250, 200, 150],
"Max_Deformation": [0.5, 0.4, 0.3, 0.2],
"Pass_Fail": [1, 1, 0, 0]
}
df = pd.DataFrame(data)
X = df[["Thickness", "Hole_Diameter", "Force"]]
# Train regression models
stress_model = RandomForestRegressor().fit(X, df["Max_Stress"])
deformation_model = RandomForestRegressor().fit(X, df["Max_Deformation"])
# Train classification model
pass_fail_model = RandomForestClassifier().fit(X, df["Pass_Fail"])
# Save models
dump(stress_model, "stress_model.pkl")
dump(deformation_model, "deformation_model.pkl")
dump(pass_fail_model, "pass_fail_model.pkl")
print("Models have been trained and saved.")
# Function to load models with error handling
def load_models():
try:
# Check if model files exist
if not os.path.exists("stress_model.pkl") or not os.path.exists("deformation_model.pkl") or not os.path.exists("pass_fail_model.pkl"):
print("Model files not found. Training models...")
train_models()
# Load models
stress_model = load("stress_model.pkl")
deformation_model = load("deformation_model.pkl")
pass_fail_model = load("pass_fail_model.pkl")
print("Models have been loaded.")
return stress_model, deformation_model, pass_fail_model
except Exception as e:
print(f"Error loading models: {e}")
return None, None, None
# Main program
if __name__ == "__main__":
stress_model, deformation_model, pass_fail_model = load_models()
if stress_model and deformation_model and pass_fail_model:
print("Models are ready to use!")
else:
print("Failed to load models.")