Buat aplikasi web interaktif untuk ilmu data dan proyek pembelajaran mesin hanya menggunakan Python, semuanya berkat Streamlit!

Streamlit adalah pustaka Python sumber terbuka untuk membuat aplikasi web untuk proyek ilmu data dan pembelajaran mesin. Ini dirancang untuk digunakan oleh ilmuwan data dan insinyur pembelajaran mesin yang tidak memiliki keterampilan pengembangan front-end yang luas. Ini memiliki sintaks sederhana yang memungkinkan Anda membuat aplikasi web interaktif dengan beberapa baris kode.

Dengan merangkum detail teknis yang kompleks di balik antarmuka yang ramah pengguna, Streamlit memungkinkan pengguna untuk fokus mengeksplorasi dan menyajikan data, prototipe, atau model mereka secara real-time. Hal ini menjadikannya alat yang berharga untuk berbagi wawasan dengan cepat.

Memasang Perpustakaan Streamlit

Buat lingkungan virtual baru. Ini akan memastikan tidak ada konflik versi paket setelah instalasi Lampu aliran. Kemudian gunakan pip untuk menginstal Sederhanakan dengan menjalankan perintah berikut:

pip install streamlit

Kemudian, verifikasi instalasi telah diinstal dengan benar.

streamlit --version

Jika instalasi berhasil, versi Streamlit yang diinstal akan ditampilkan.

Membangun Aplikasi Pembersihan dan Analisis Data Sederhana

Anda akan membuat aplikasi web sederhana untuk mempelajari cara kerja Streamlit dan fitur-fiturnya. Aplikasi ini akan dapat membersihkan dataset yang diunggah, melakukan analisis data, dan terakhir memvisualisasikan data.

Kode sumber lengkap tersedia di a Repositori GitHub.

Memasang dan Mengimpor Perpustakaan yang Diperlukan

Mulailah dengan menginstal Pandas, Matplotlib, dan Seaborn di lingkungan virtual yang sama dengan tempat Anda menginstal Streamlit menggunakan perintah berikut:

pip install pandas matplotlib seaborn

Kemudian buat skrip Python baru dan impor semua perpustakaan yang diinstal.

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Ini akan memungkinkan Anda untuk menggunakan fungsinya dalam kode Anda.

Mengunggah Kumpulan Data dan Menampilkan Isinya

Kemudian tentukan fungsi yang akan membaca kumpulan data yang diunggah. Ini kemudian akan mengembalikan DataFrame jika operasi baca berhasil. Jika tidak, maka akan muncul pesan kesalahan di sidebar. Kesalahan terjadi jika file tersebut bukan file CSV yang valid.

defload_data(uploaded_file):
try:
df = pd.read_csv(uploaded_file)
return df
except Exception as e:
st.sidebar.error('Error occurred while loading the file.'
' Please make sure it is a valid CSV file.')
returnNone

Tentukan fungsi lain yang akan menggunakan Steamlit untuk menampilkan DataFrame dalam format tabel. Ini hanya akan melakukan ini ketika pengguna memeriksa Tampilkan Data Mentah kotak centang. Ini akan memanfaatkan Streamlit kotak centang, kerangka data, Dan subjudul fungsi.

defexplore_raw_data(df):
st.subheader('Raw Data')
if st.checkbox('Show Raw Data'):
st.dataframe(df)

Setelah membuat DataFrame dan menampilkan data mentah, Anda sekarang perlu membersihkan data, menganalisisnya, dan terakhir memvisualisasikannya.

Melakukan Pembersihan Data

Mulailah dengan mendefinisikan fungsi yang akan melakukan pembersihan data. Fungsi ini akan menangani nilai yang hilang di DataFrame dan baris duplikat. DataFrame yang telah dibersihkan kemudian ditampilkan kepada pengguna yang menggunakan st.dataframe berfungsi jika mereka memeriksa Tampilkan Data yang Dibersihkan kotak centang.

defdata_cleaning(df):
st.header('Data Cleaning')

# Remove Missing Values
st.subheader('Handling Missing Values')
df.dropna(inplace=True)
st.write("Missing values removed from the dataset.")

# Remove Duplicate Rows
st.subheader('Removing Duplicate Rows')
initial_rows = len(df)
df.drop_duplicates(inplace=True)
final_rows = len(df)
st.write(f"Removed {initial_rows - final_rows} duplicate rows.")

if st.checkbox('Show Cleaned Data'):
st.dataframe(df)

Fungsi ini juga menunjukkan jumlah baris duplikat yang dihapus.

Melakukan Analisis Data

Tentukan fungsi analisis data. Fungsi ini akan menampilkan statistik deskriptif DataFrame dan menampilkan peta panas matriks korelasi. Ini akan memanfaatkan st.pyplot berfungsi untuk menampilkan peta panas pada antarmuka pengguna.

defdata_analysis(df):
st.header('Data Analysis')

# Descriptive Statistics
st.subheader('Descriptive Statistics')
st.write(df.describe())

# Correlation Matrix
st.subheader('Correlation Matrix')
corr_matrix = df.corr()
fig, ax = plt.subplots(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm',
center=0, ax=ax)
st.pyplot(fig)

Anda dapat memodifikasi fungsi di atas untuk melakukan lebih banyak analisis data. Ini akan membantu Anda memperoleh lebih banyak wawasan dari data Anda.

Melakukan Visualisasi Data

Visualisasi data adalah salah satu fungsi penting aplikasi. Hal ini karena memberikan wawasan data secara visual dengan cara yang ramah manusia. Oleh karena itu, fungsi ini memungkinkan pengguna untuk mengubah tampilan plot.

Untuk mencapai hal ini, buatlah fungsi yang memungkinkan pengguna memilih kolom, mengatur jumlah nampan, dan memilih warna untuk histogram. Ini kemudian akan menghasilkan histogram dan plot kotak dan menampilkannya menggunakan st.pyplot fungsi.

defdata_visualization(df):
st.header('Data Visualization')

# Histogram
st.subheader('Histogram')
selected_column = st.selectbox("Select a column to visualize:",
df.columns)
num_bins = st.slider("Select number of bins:",
min_value=5, max_value=50, value=20)
plot_color = st.color_picker("Select histogram color", "#1f77b4")
plt.figure(figsize=(8, 6))
plt.hist(df[selected_column], bins=num_bins, edgecolor='black',
color=plot_color, alpha=0.7)
plt.xlabel(selected_column)
plt.ylabel('Frequency')
st.pyplot(plt)

# Box Plot
st.subheader('Box Plot')
selected_column = st.selectbox("Select a column for box plot:",
df.columns)
plot_color = st.color_picker("Select box plot color", "#1f77b4")
plt.figure(figsize=(8, 6))
sns.boxplot(x=df[selected_column], color=plot_color)
plt.xlabel(selected_column)
plt.ylabel('Value')
st.pyplot(plt)

Sekarang Anda sudah memiliki semua fungsi inti aplikasi.

Mengumpulkan Masukan Pengguna

Terkadang, suatu fungsi mungkin tidak berfungsi sebagaimana mestinya. Anda kemudian memerlukan cara bagi pengguna untuk mengirimkan masukan mereka. Salah satu caranya adalah dengan pengguna menghubungi Anda melalui email. Streamlit menyediakan antarmuka untuk mengumpulkan umpan balik pengguna tetapi tidak menyediakan fungsionalitas bawaan untuk mengirim email secara langsung. Namun, Anda dapat mengintegrasikan perpustakaan atau layanan eksternal untuk mengirim email dari aplikasi Anda.

Untuk mengumpulkan umpan balik pengguna, tentukan fungsi untuk menyajikan formulir kepada pengguna.

deffeedback_form():
st.header('Feedback')
with st.form('Feedback Form'):
email = st.text_input("Your Email")
feedback = st.text_area("Feedback")
submitted = st.form_submit_button("Submit Feedback")
if submitted:
# Here, you can send the feedback to the developer's
# email using external services/APIs
st.success("Thank you for your feedback!")

Formulir ini akan mengumpulkan email dan umpan balik pengguna dan mengirimkannya kepada Anda melalui email.

Mengontrol Aliran Program Anda dan Menjalankan Aplikasi

Terakhir, Anda memerlukan fungsi utama yang akan menyatukan semua fungsi ini dan mengontrol alur program. Fungsi ini juga akan memastikan pengguna menyetujui persyaratan privasi data Anda sebelum aplikasi memproses kumpulan data yang mereka unggah.

defmain():
st.title('Data Cleaning, Analysis, and Visualization App')

st.sidebar.header('Upload Dataset')
uploaded_file = st.sidebar.file_uploader('Upload a CSV file', type=['csv'])

agree_terms = st.sidebar.checkbox("I agree to the terms")

if uploaded_file isnotNoneand agree_terms:
df = load_data(uploaded_file)

if df isnotNone:
explore_raw_data(df)
data_cleaning(df)
data_analysis(df)
data_visualization(df)

feedback_form()

Anda dapat menjalankan program Anda secara mandiri atau mengimpornya sebagai modul menggunakan konstruksi if __name__ == '__main__':.

if __name__ == '__main__':
main()

Lanjutkan ke terminal dan navigasikan ke jalur tempat proyek Anda berada. Kemudian jalankan perintah berikut untuk memulai aplikasi:

streamlit run main.py

Mengganti main.py dengan nama sebenarnya skrip Anda. Setelah menjalankan perintah Streamlit akan menghasilkan URL Lokal dan URL Jaringan. Anda dapat menggunakan salah satu URL berikut untuk berinteraksi dengan aplikasi Anda.

Output dari program ini adalah sebagai berikut:

Membuat aplikasi web interaktif untuk ilmu data tidak pernah semudah ini. Anda tidak memerlukan keahlian pengembangan web tingkat lanjut untuk membuat antarmuka pengguna untuk aplikasi Anda.

Haruskah Anda Masih Belajar Pengembangan Web?

Itu tergantung pada tujuan spesifik Anda. Jika Anda mengantisipasi pembuatan aplikasi web yang kompleks dan kaya fitur yang membutuhkan banyak pengguna desain antarmuka dan fungsionalitas tingkat lanjut, maka mempelajari teknologi pengembangan web bisa jadi bermanfaat. Hal ini karena di Streamlit Anda memiliki kontrol terbatas atas penyesuaian menyeluruh pada tampilan dan perilaku aplikasi Anda.