File size: 5,404 Bytes
6845502
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import streamlit as st

# Custom CSS for styled boxes and centering buttons
st.markdown("""

    <style>

    .step-box {

        border: 2px solid #00FFFF;

        border-radius: 10px;

        padding: 20px;

        margin: 10px 0;

        background-color: #e0f7fa;

        text-align: center;

        cursor: pointer;

        transition: background-color 0.3s, transform 0.2s;

        font-size: 22px;

        font-weight: bold;

        box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);

    }

    .step-box:hover {

        background-color: #b2ebf2;

        transform: scale(1.05);

    }

    .button-back {

        display: inline-block;

        margin-top: 20px;

        padding: 10px 15px;

        font-size: 16px;

        color: white;

        background-color: #00bcd4;

        border: none;

        border-radius: 5px;

        cursor: pointer;

        text-decoration: none;

        transition: background-color 0.3s;

    }

    .button-back:hover {

        background-color: #0097a7;

    }

    .main-title {

        color: #00796b;

        font-size: 30px;

        font-weight: bold;

        text-align: center;

        margin-bottom: 30px;

    }

    .intro-text {

        font-size: 18px;

        text-align: center;

        color: #004d40;

        margin-bottom: 40px;

    }



    /* Center buttons container */

    .buttons-container {

        display: flex;

        justify-content: center;

        flex-wrap: wrap;

        margin-top: 20px;

    }



    .button {

        margin: 10px;

        padding: 15px 25px;

        font-size: 16px;

        font-weight: bold;

        background-color: #00bcd4;  /* Light blue button color */

        border: none;

        border-radius: 5px;

        color: white;

        cursor: pointer;

        transition: background-color 0.3s;

    }



    .button:hover {

        background-color: #0097a7;

    }



    </style>

    """, unsafe_allow_html=True)

# Initialize session state for navigation
if "selected_step" not in st.session_state:
    st.session_state["selected_step"] = "Main Page"

# Steps of the ML lifecycle
steps = [
    "Problem Statement",
    "Collect the Data (Data Collection)",
    "Simple EDA (Exploratory Data Analysis)",
    "Data Processing",
    "Main EDA",
    "Feature Engineering",
    "Training the Model",
    "Testing the Model",
    "Deployment",
    "Monitoring",
]

# Sidebar navigation
st.sidebar.title("Return")
if st.session_state["selected_step"] != "Main Page":
    st.sidebar.button("πŸ”™ Back to Main Page", on_click=lambda: st.session_state.update({"selected_step": "Main Page"}))

# Main Page layout
if st.session_state["selected_step"] == "Main Page":
    st.markdown('<h1 class="main-title"> Lifecycle of a Machine Learning Projects 🌟</h1>', unsafe_allow_html=True)
    st.markdown('<p class="intro-text">Explore the steps that are involved in an ML project\'s lifecycle by clicking on the boxes below</p>', unsafe_allow_html=True)

    # Centered buttons container
    st.markdown('<div class="buttons-container">', unsafe_allow_html=True)
    for i, step in enumerate(steps, start=1):
        if st.button(f"{i}. {step}", key=f"button_{i}", help=f"Click", use_container_width=True):
            st.session_state["selected_step"] = step
    st.markdown('</div>', unsafe_allow_html=True)

# Detailed Summary Pages
elif st.session_state["selected_step"] in steps:
    selected_step = st.session_state["selected_step"]
    st.title(f"πŸ”Ž Step: {selected_step}")
    summaries = {
    "Problem Statement": "πŸ“ Clearly state the problem you're solving with ML. Example: Predict house prices based on size, location, and number of rooms. πŸ€”",
    "Collect the Data (Data Collection)": "πŸ“‚ Gather data from various sources such as databases, websites, or APIs.The Data can be of different forms like xslx,json,xml. Example: Use housing price data or collect information from a real estate site.πŸ“₯",
    "Simple EDA (Exploratory Data Analysis)": "πŸ” Analyze the data to find trends, outliers, and missing values. Example: Create histograms and boxplots to see how the data is distributed. πŸ› οΈ",
    "Data Processing": "🧹 Clean the data by fixing missing values, normalizing, and transforming it. Example: Fill missing values with the average or scale the features. ✨",
    "Main EDA": "πŸ”Ž Do a deeper analysis using advanced techniques like correlation and pair plots. Example: Check how features like square footage and price are related. πŸ”¬",
    "Feature Engineering": "βš™οΈ Create new features or change existing ones to improve the model's performance. Example: Image Augmentation (Resizing, Shifting, Scaling) 🧩",
    "Training the Model": "🧠 Split the data into training and testing sets, then train a machine learning model. πŸ‹οΈβ€β™€οΈ",
    "Testing the Model": "πŸ§ͺ Check how well the model performs on new, unseen data. Use accuracy, precision, recall, or RMSE to evaluate a model's performance. πŸ“Š",
    "Deployment": "πŸš€ Put the model into production so people can use it. Host the model on the cloud and create an API for users to get predictions. 🌐",
    "Monitoring": "πŸ“ˆ Track the model's performance over time and retrain if needed.πŸ“‘",

    }
    st.write(summaries.get(selected_step, "No summary available for this step."))