EDA Sederhana dengan Streamlit itu …

Streamlit

Streamlit (https://streamlit.io) adalah sebuah platform open-source yang digunakan untuk membangun aplikasi web interaktif dengan mudah menggunakan Python. Platform ini memungkinkan pengguna untuk dengan cepat membuat aplikasi web yang menampilkan data, grafik, tabel, dan visualisasi lainnya dengan mudah dan cepat.

Dengan menggunakan Streamlit, pengguna dapat mengakses berbagai jenis data, termasuk data dalam bentuk file CSV atau Excel, data dari basis data SQL, atau bahkan data dari API web. Platform ini juga dilengkapi dengan berbagai pustaka dan fitur yang memungkinkan pengguna untuk menghasilkan tampilan dan visualisasi yang menarik dan mudah dipahami.

Salah satu fitur terbaik dari Streamlit adalah kemampuannya untuk melakukan refresh otomatis setiap kali kode Python berubah. Hal ini memudahkan pengguna untuk melakukan iterasi dan memperbaiki aplikasi web dengan cepat tanpa harus melakukan refresh secara manual.
Streamlit juga memiliki komunitas yang besar dan aktif, yang membuat pengguna dapat dengan mudah menemukan solusi untuk masalah yang mereka hadapi, serta berbagi kode dan pengalaman dengan pengguna lainnya.

Secara keseluruhan, Streamlit adalah sebuah platform yang sangat berguna untuk para pengembang dan data scientist yang ingin membuat aplikasi web interaktif dengan cepat dan mudah menggunakan bahasa pemrograman Python.

Dalam tulisan ini akan dicoba penggunaan streamlit untuk membangun aplikasi EDA sederhana. Saya tidak akan menjelaskan proses instalasi streamlit, karena proses instalasi telah ditulis dalam artikel terpisah disini. Dalam ujicoba kali ini saya akan menggunakan dataset Iris.

Dataset Iris

Sedikit penjelasan mengenai dataset Iris, dataset Iris adalah salah satu dataset klasik dalam dunia machine learning dan statistik. Dataset ini berisi informasi mengenai tiga spesies bunga Iris yaitu Iris Setosa, Iris Versicolor, dan Iris Virginica, dengan 50 sampel untuk setiap spesies. Setiap sampel dalam dataset ini memiliki empat fitur numerik yaitu panjang dan lebar kelopak serta panjang dan lebar mahkota.

Dataset Iris pertama kali diperkenalkan pada tahun 1936 oleh ahli biologi R.A. Fisher dalam sebuah artikel yang membahas perbedaan dalam struktur bunga-bunga spesies Iris. Sejak saat itu, dataset ini menjadi salah satu dataset klasik yang sering digunakan untuk demonstrasi teknik-teknik analisis data dan machine learning.

Dataset Iris memiliki total 150 sampel, yang masing-masing memiliki empat fitur numerik dan label spesies yang sesuai. Dataset ini sering digunakan untuk tujuan klasifikasi, yaitu untuk mengklasifikasikan setiap sampel ke dalam salah satu dari tiga spesies Iris yang tersedia berdasarkan fitur-fitur numeriknya.

Dataset ini dapat diambil dari berbagi sumber, tetapi kali ini saya akan mengambil dari website UCI Machine Learning Repository (https://archive.ics.uci.edu/ml/datasets/Iris).

UCI Website

Download data dengan cara klik tautan Data Folder dan klik iris.data. Setelah file ter-download rename menjadi iris.csv.

Selanjutnya ketikkan kode python dengan text editor, disini saya menggunakan Visual Editor Code.

Berikut ini adalah kode sederhana EDA (Exploratory Data Analysis) dengan menggunakan Streamlit dan dataset Iris.

import streamlit as st
import pandas as pd
import seaborn as sns

# load iris dataset
col_names = ['sepal_length','sepal_width','petal_length','petal_width','target']
iris = pd.read_csv("iris.csv", names=col_names)
iris_df = pd.DataFrame(iris)

st.set_page_config(layout="wide")

# create sidebar
st.sidebar.title('Exploratory Data Analysis')
plot_type = st.sidebar.selectbox('Pilih tipe grafik', ('Histogram', 'Boxplot', 'Scatterplot'))

# create main panel
st.title('Dataset Iris')
col1, col2 = st.columns(2)
with col1:
    st.subheader('Dataset Iris (10 Data Awal)')
    st.write(iris_df[:10])
with col2:
    st.subheader('Statistik Dataset Iris')
    st.write(iris_df.describe())

if plot_type == 'Histogram':
    st.subheader('Grafik Histogram')
    feature = st.selectbox('Pilih feature', iris_df.columns[:-1])
    hist_plot = sns.histplot(data=iris_df, x=feature, hue='target', kde=True)
    st.pyplot(hist_plot.figure)

elif plot_type == 'Boxplot':
    st.subheader('Grafik Boxplot')
    feature = st.selectbox('Pilih feature', iris_df.columns[:-1])
    box_plot = sns.boxplot(data=iris_df, x='target', y=feature)
    st.pyplot(box_plot.figure)

else:
    st.subheader('Grafik Scatterplot')
    x_feature = st.selectbox('Pilih x-axis feature', iris_df.columns[:-1])
    y_feature = st.selectbox('Pilih y-axis feature', iris_df.columns[:-1])
    scatter_plot = sns.scatterplot(data=iris_df, x=x_feature, y=y_feature, hue='target')
    st.pyplot(scatter_plot.figure)

Simpan file dengan nama “eda iris.py”. Untuk menjalankan kode tersebut, buka kembali terminal dan ketikkan:

streamlit run “eda iris.py”

Apabila tidak ada error, maka sebuah halaman web akan terbuka dan menampilkan hasil aplikasi yg telah dibuat.

Untuk menutup aplikasi cukup tekan kombinasi tombol CTRL+C dalam terminal.

Final App

Untuk mencoba aplikasi akhir dapat diakses di sini.

You may also like...