Spaces:
Sleeping
Sleeping
| # Import libraries | |
| import numpy as np | |
| import pandas as pd | |
| from sklearn.ensemble import RandomForestClassifier | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.metrics import accuracy_score | |
| import gradio as gr | |
| import joblib | |
| # Step 1: Generate or Load Sample Data | |
| np.random.seed(42) | |
| data = pd.DataFrame({ | |
| "Pressure": np.random.randint(50, 200, 200), | |
| "Temperature": np.random.randint(300, 700, 200), | |
| "Material_Type": np.random.randint(1, 5, 200), | |
| "Defect_Type": np.random.choice([0, 1, 2], 200, p=[0.6, 0.3, 0.1]) | |
| }) | |
| # Splitting data | |
| X = data[["Pressure", "Temperature", "Material_Type"]] | |
| y = data["Defect_Type"] | |
| X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) | |
| # Step 2: Train the Model | |
| model = RandomForestClassifier(n_estimators=100, random_state=42) | |
| model.fit(X_train, y_train) | |
| # Save the model | |
| joblib.dump(model, "defect_model.pkl") | |
| # Step 3: Test the Model | |
| y_pred = model.predict(X_test) | |
| print(f"Model Accuracy: {accuracy_score(y_test, y_pred):.2f}") | |
| # Step 4: Create a Gradio Interface | |
| def predict_defect(pressure, temperature, material_type): | |
| # Load the model | |
| loaded_model = joblib.load("defect_model.pkl") | |
| # Predict | |
| input_data = np.array([[pressure, temperature, material_type]]) | |
| prediction = loaded_model.predict(input_data)[0] | |
| defect_map = {0: "No Defect", 1: "Crack", 2: "Wrinkle"} | |
| return defect_map[prediction] | |
| # Gradio Interface | |
| interface = gr.Interface( | |
| fn=predict_defect, | |
| inputs=[ | |
| gr.Slider(minimum=50, maximum=200, step=1, label="Pressure"), | |
| gr.Slider(minimum=300, maximum=700, step=1, label="Temperature"), | |
| gr.Dropdown(choices=["1", "2", "3", "4"], label="Material Type") | |
| ], | |
| outputs=gr.Textbox(label="Predicted Defect"), | |
| title="Defect Prediction Model", | |
| description="Predicts defect type based on input features: Pressure, Temperature, and Material Type." | |
| ) | |
| # Launch the app | |
| if __name__ == "__main__": | |
| interface.launch() | |