Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| from sklearn.linear_model import LinearRegression | |
| import matplotlib.pyplot as plt | |
| import io | |
| from PIL import Image | |
| def linear_regression(x_values, y_values): | |
| # Convert string inputs to numpy arrays | |
| X = np.array([float(x) for x in x_values.split(',')]).reshape(-1, 1) | |
| y = np.array([float(y) for y in y_values.split(',')]) | |
| # Perform linear regression | |
| model = LinearRegression() | |
| model.fit(X, y) | |
| # Make predictions | |
| y_pred = model.predict(X) | |
| # Plotting | |
| plt.figure(figsize=(10, 6)) | |
| plt.scatter(X, y, color='blue') | |
| plt.plot(X, y_pred, color='red') | |
| plt.xlabel("X Values") | |
| plt.ylabel("Y Values") | |
| plt.title('Linear Regression') | |
| # Save plot to a buffer and convert to PIL Image | |
| buf = io.BytesIO() | |
| plt.savefig(buf, format='png') | |
| buf.seek(0) | |
| image = Image.open(buf) | |
| # Regression info | |
| coef_info = f"Coefficient: {model.coef_[0]}\nIntercept: {model.intercept_}" | |
| return image, coef_info | |
| # Gradio interface | |
| iface = gr.Interface( | |
| fn=linear_regression, | |
| inputs=[ | |
| gr.components.Textbox(placeholder="Enter X values separated by commas (e.g., 1,2,3)", label="X Values"), | |
| gr.components.Textbox(placeholder="Enter Y values separated by commas (e.g., 2,4,6)", label="Y Values") | |
| ], | |
| outputs=[ | |
| gr.components.Image(type="pil"), | |
| gr.components.Textbox(label="Regression Info") | |
| ], | |
| title="Automatic Linear Regression Modeling", | |
| description="Enter X and Y values as comma-separated lists to perform linear regression." | |
| ) | |
| # Launch the app | |
| if __name__ == "__main__": | |
| iface.launch() | |