sree4411 commited on
Commit
0c40a5f
Β·
verified Β·
1 Parent(s): c2d7294

Delete pages/5_model training and deployment.py

Browse files
pages/5_model training and deployment.py DELETED
@@ -1,132 +0,0 @@
1
- import streamlit as st
2
- import pandas as pd
3
- from sklearn.model_selection import train_test_split
4
- from sklearn.preprocessing import StandardScaler
5
- from sklearn.linear_model import LinearRegression, LogisticRegression
6
- from sklearn.neighbors import KNeighborsClassifier
7
- from sklearn.tree import DecisionTreeClassifier
8
- from sklearn.ensemble import RandomForestClassifier
9
- from sklearn.metrics import accuracy_score, classification_report, mean_squared_error
10
-
11
- st.set_page_config(page_title="Zero to Hero - ML Model Trainer", layout="wide")
12
- st.title("πŸ“Š Machine Learning: Model Building, Training, and Deployment")
13
-
14
- # Sidebar Navigation
15
- st.sidebar.title("Navigation")
16
- section = st.sidebar.selectbox("Choose Step", [
17
- "Upload Dataset",
18
- "Model Selection",
19
- "Model Training",
20
- "Model Evaluation",
21
- "Model Deployment"
22
- ])
23
-
24
- # Session state
25
- if 'df' not in st.session_state:
26
- st.session_state.df = None
27
- if 'model' not in st.session_state:
28
- st.session_state.model = None
29
-
30
- # Upload dataset
31
- if section == "Upload Dataset":
32
- st.header("πŸ“ Upload Your Dataset")
33
- uploaded_file = st.file_uploader("Upload CSV File", type=["csv"])
34
- if uploaded_file:
35
- df = pd.read_csv(uploaded_file, on_bad_lines='skip')
36
- st.session_state.df = df
37
- st.dataframe(df.head())
38
-
39
- # Model selection
40
- elif section == "Model Selection":
41
- st.header("🧠 Choose Your ML Algorithm")
42
- if st.session_state.df is not None:
43
- df = st.session_state.df
44
- st.write("Select the target column (what you want to predict):")
45
- target = st.selectbox("Target", df.columns)
46
- features = df.drop(columns=[target])
47
- X = features
48
- y = df[target]
49
-
50
- task_type = st.radio("What type of problem is it?", ["Regression", "Classification"])
51
-
52
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
53
- scaler = StandardScaler()
54
- X_train = scaler.fit_transform(X_train)
55
- X_test = scaler.transform(X_test)
56
-
57
- if task_type == "Regression":
58
- model_option = st.selectbox("Select Algorithm", ["Linear Regression"])
59
- if model_option == "Linear Regression":
60
- model = LinearRegression()
61
-
62
- else:
63
- model_option = st.selectbox("Select Algorithm", [
64
- "Logistic Regression",
65
- "K-Nearest Neighbors",
66
- "Decision Tree",
67
- "Random Forest"
68
- ])
69
-
70
- if model_option == "Logistic Regression":
71
- model = LogisticRegression()
72
- elif model_option == "K-Nearest Neighbors":
73
- model = KNeighborsClassifier()
74
- elif model_option == "Decision Tree":
75
- model = DecisionTreeClassifier()
76
- elif model_option == "Random Forest":
77
- model = RandomForestClassifier()
78
-
79
- st.session_state.model = model
80
- st.session_state.X_train = X_train
81
- st.session_state.X_test = X_test
82
- st.session_state.y_train = y_train
83
- st.session_state.y_test = y_test
84
- st.success(f"{model_option} selected and data split for training/testing.")
85
-
86
- else:
87
- st.warning("Please upload a dataset first.")
88
-
89
- # Model training
90
- elif section == "Model Training":
91
- st.header("πŸ‹οΈ Model Training")
92
- if st.session_state.model is not None:
93
- model = st.session_state.model
94
- model.fit(st.session_state.X_train, st.session_state.y_train)
95
- st.session_state.trained_model = model
96
- st.success("Model trained successfully!")
97
- else:
98
- st.warning("Please select a model first.")
99
-
100
- # Evaluation
101
- elif section == "Model Evaluation":
102
- st.header("πŸ“ˆ Model Evaluation")
103
- if 'trained_model' in st.session_state:
104
- model = st.session_state.trained_model
105
- y_pred = model.predict(st.session_state.X_test)
106
- if isinstance(model, LinearRegression):
107
- mse = mean_squared_error(st.session_state.y_test, y_pred)
108
- st.write(f"Mean Squared Error: {mse:.4f}")
109
- else:
110
- acc = accuracy_score(st.session_state.y_test, y_pred)
111
- st.write(f"Accuracy: {acc*100:.2f}%")
112
- st.text("Classification Report:")
113
- st.text(classification_report(st.session_state.y_test, y_pred))
114
- else:
115
- st.warning("Train a model first.")
116
-
117
- # Deployment
118
- elif section == "Model Deployment":
119
- st.header("πŸš€ Deployment & Inference")
120
- if 'trained_model' in st.session_state:
121
- st.write("Upload a new CSV file with same features to test the model on new data:")
122
- new_file = st.file_uploader("Upload New Data", type=["csv"], key="new_data")
123
- if new_file:
124
- new_df = pd.read_csv(new_file)
125
- st.write("New Input Data:")
126
- st.dataframe(new_df.head())
127
- scaled_input = StandardScaler().fit_transform(new_df)
128
- predictions = st.session_state.trained_model.predict(scaled_input)
129
- st.write("Predictions:")
130
- st.write(predictions)
131
- else:
132
- st.warning("Please train and evaluate a model before deploying.")