File size: 1,260 Bytes
d7f4720
 
 
 
1b0d4fd
d7f4720
 
1b0d4fd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import numpy as np
from sklearn.datasets import load_breast_cancer
from src.inference import predict_one
from src.eda import run_eda  # <-- pastikan file src/eda.py sudah ada

st.set_page_config(page_title="Breast Cancer Classifier", layout="wide")

# Tabs: Prediction & EDA
tab_pred, tab_eda = st.tabs(["🏠 Prediction", "📊 EDA"])

# =======================
# Tab 1: Prediction
# =======================
with tab_pred:
    st.title("Breast Cancer Classifier (RandomForest + MinMaxScaler)")

    data = load_breast_cancer()
    features = list(data.feature_names)

    st.sidebar.header("Input Features")
    vals = []
    cols = st.columns(2)

    for i, f in enumerate(features):
        default_val = float(np.mean(data.data[:, i]))
        with cols[i % 2]:
            vals.append(
                st.number_input(
                    f, value=default_val, step=0.01, format="%.4f"
                )
            )

    arr = np.array(vals, dtype=float)

    if st.button("Predict"):
        y = predict_one(arr)
        st.success(f"Prediction: **{data.target_names[y]}** (class={y})")
        st.caption("0 = malignant, 1 = benign")

# =======================
# Tab 2: EDA
# =======================
with tab_eda:
    run_eda()