fernandobriann's picture
Upload 5 files
4c8cb0b verified
Raw
History Blame Contribute Delete
2.24 kB
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)