File size: 2,241 Bytes
4c8cb0b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import matplotlib.pyplot as plt
import random
import os
import matplotlib.image as mpimg

def show_eda(train_dir):

    st.header("IV. Exploratory Data Analysis (EDA)")

    st.write("""

    Pada tahap ini dilakukan eksplorasi terhadap dataset untuk memahami karakteristik data sebelum digunakan dalam proses training model.

    """)

    # a
    st.subheader("a. Melihat Jumlah Total Seluruh Class dan Contohnya")
    classes = os.listdir(train_dir)

    st.write("Jumlah total class:", len(classes))
    st.write("Contoh class:", classes[:10])

    # b
    st.subheader("b. Mencari Class Berdasarkan Nama Buah")

    apple = [c for c in classes if "Apple" in c]
    banana = [c for c in classes if "Banana" in c]
    orange = [c for c in classes if "Orange" in c]
    grape = [c for c in classes if "Grape" in c]
    mango = [c for c in classes if "Mango" in c]

    st.write("Apple:", apple[:5])
    st.write("Banana:", banana)
    st.write("Orange:", orange)
    st.write("Grape:", grape[:5])
    st.write("Mango:", mango)

    # c
    st.subheader("c. Pemilihan Class")

    selected_classes = [
        "Apple Red 1",
        "Banana 1",
        "Orange 1",
        "Grape White 1",
        "Mango 1"
    ]

    st.write(selected_classes)

    # d
    st.subheader("d. Menghitung Jumlah Data per Class")

    data_count = {}
    for cls in selected_classes:
        class_path = os.path.join(train_dir, cls)
        data_count[cls] = len(os.listdir(class_path))

    st.write(data_count)

    # e
    st.subheader("e. Visualisasi Distribusi Data")

    fig, ax = plt.subplots()
    ax.bar(data_count.keys(), data_count.values())
    plt.xticks(rotation=45)

    st.pyplot(fig)

    # sample images
    st.subheader("Visualisasi Contoh Gambar")

    fig = plt.figure(figsize=(10,10))

    for i, cls in enumerate(selected_classes):
        img_path = os.path.join(
            train_dir, cls,
            random.choice(os.listdir(os.path.join(train_dir, cls)))
        )
        img = mpimg.imread(img_path)

        plt.subplot(2,3,i+1)
        plt.imshow(img)
        plt.title(cls)
        plt.axis('off')

    st.pyplot(fig)