Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import textwrap | |
# Sidebar UI | |
st.sidebar.title("AI Code Generator π§ ") | |
st.sidebar.markdown("Generate AI models instantly!") | |
# Model Selection | |
model_options = ["KNN", "SVM", "Random Forest", "Decision Tree", "Perceptron"] | |
model = st.sidebar.selectbox("Choose a Model:", model_options) | |
# Task Selection | |
task_options = ["Classification", "Regression"] | |
task = st.sidebar.selectbox("Choose a Task:", task_options) | |
# Problem Selection based on Task and Model | |
problems = { | |
"Classification": { | |
"KNN": ["Disease Prediction", "Spam Detection"], | |
"SVM": ["Image Recognition", "Text Classification"], | |
"Random Forest": ["Fraud Detection", "Customer Segmentation"], | |
"Decision Tree": ["Loan Approval", "Churn Prediction"], | |
"Perceptron": ["Handwritten Digit Recognition", "Sentiment Analysis"] | |
}, | |
"Regression": { | |
"KNN": ["House Price Prediction", "Stock Prediction"], | |
"SVM": ["Sales Forecasting", "Stock Market Trends"], | |
"Random Forest": ["Energy Consumption", "Patient Survival Prediction"], | |
"Decision Tree": ["House Price Estimation", "Revenue Prediction"], | |
"Perceptron": ["Weather Forecasting", "Traffic Flow Prediction"] | |
} | |
} | |
problem = st.sidebar.selectbox("Choose a Problem:", problems[task][model]) | |
# Generate AI Model Code | |
def generate_code(model, task, problem): | |
model_mapping = { | |
"KNN": "KNeighborsClassifier" if task == "Classification" else "KNeighborsRegressor", | |
"SVM": "SVC" if task == "Classification" else "SVR", | |
"Random Forest": "RandomForestClassifier" if task == "Classification" else "RandomForestRegressor", | |
"Decision Tree": "DecisionTreeClassifier" if task == "Classification" else "DecisionTreeRegressor", | |
"Perceptron": "Perceptron" if task == "Classification" else "Perceptron" | |
} | |
selected_model = model_mapping[model] | |
template = f""" | |
import numpy as np | |
import pandas as pd | |
from sklearn.model_selection import train_test_split | |
from sklearn.preprocessing import StandardScaler | |
from sklearn.{model.lower()} import {selected_model} | |
# Load Dataset (Replace with your own dataset) | |
data = pd.read_csv('dataset.csv') | |
X = data.iloc[:, :-1] # Features | |
y = data.iloc[:, -1] # Target | |
# Train-Test Split | |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) | |
# Standardize Features (if needed) | |
scaler = StandardScaler() | |
X_train = scaler.fit_transform(X_train) | |
X_test = scaler.transform(X_test) | |
# Model Initialization | |
model = {selected_model}() | |
# Training the model | |
model.fit(X_train, y_train) | |
# Evaluate Model | |
accuracy = model.score(X_test, y_test) | |
print("Model Accuracy:", accuracy) | |
""" | |
return textwrap.dedent(template) | |
code = generate_code(model, task, problem) | |
st.code(code, language="python") | |
# Download Buttons | |
st.download_button("π Download (.py)", code, "ai_model.py") | |
st.download_button("π Download (.ipynb)", code, "ai_model.ipynb") | |
st.success("Code generated! Download and do magic! β¨") | |