Spaces:
Runtime error
Runtime error
| 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) |