Streamlit sayesinde yalnızca Python kullanarak veri bilimi ve makine öğrenimi projeleri için etkileşimli web uygulamaları oluşturun!

Streamlit, veri bilimi ve makine öğrenimi projeleri için web uygulamaları oluşturmaya yönelik açık kaynaklı bir Python kütüphanesidir. Kapsamlı ön uç geliştirme becerilerine sahip olmayan veri bilimcileri ve makine öğrenimi mühendisleri tarafından kullanılmak üzere tasarlanmıştır. Birkaç satır kodla etkileşimli web uygulamaları oluşturmanıza olanak tanıyan basit bir sözdizimine sahiptir.

Streamlit, karmaşık teknik ayrıntıları kullanıcı dostu bir arayüzün arkasında toplayarak kullanıcıların verilerini, prototiplerini veya modellerini gerçek zamanlı olarak keşfetmeye ve sunmaya odaklanmasına olanak tanır. Bu onu, içgörülerin hızlı bir şekilde paylaşılması için değerli bir araç haline getirir.

Streamlit Kitaplığını Kurma

Yeni bir sanal ortam yaratın. Bu, kurulumdan sonra paket sürümü çakışması olmamasını sağlayacaktır Kolaylaştırılmış. Daha sonra yüklemek için pip kullanın Aşağıdaki komutu çalıştırarak kolaylaştırın:

instagram viewer
pip install streamlit

Daha sonra kurulumun doğru şekilde kurulduğunu doğrulayın.

streamlit --version

Kurulum başarılı olursa kurulu Streamlit sürümü görüntülenecektir.

Basit Bir Veri Temizleme ve Analiz Uygulaması Oluşturma

Streamlit'in nasıl çalıştığını ve özelliklerini öğrenmek için basit bir web uygulaması oluşturacaksınız. Bu uygulama, yüklenen bir veri kümesini temizleyebilecek, veri analizi yapabilecek ve son olarak verileri görselleştirebilecek.

Kaynak kodunun tamamı şu adreste mevcuttur: GitHub deposu.

Gerekli Kütüphanelerin Kurulumu ve İçe Aktarılması

Aşağıdaki komutu kullanarak Pandas, Matplotlib ve Seaborn'u Streamlit'i kurduğunuz sanal ortama kurarak başlayın:

pip install pandas matplotlib seaborn

Ardından yeni bir Python betiği oluşturun ve kurulu tüm kitaplıkları içe aktarın.

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

Bu onların işlevlerini kodunuzda kullanmanızı sağlayacaktır.

Veri Kümesini Yükleme ve İçeriğini Görüntüleme

Ardından yüklenen bir veri kümesini okuyacak bir işlev tanımlayın. Okuma işlemi başarılı olursa bir DataFrame döndürecektir. Aksi takdirde kenar çubuğunda bir hata mesajı görüntülenecektir. Hata, dosya geçerli bir CSV dosyası olmadığında ortaya çıkar.

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

DataFrame'i tablo biçiminde görüntülemek için Steamlit'i kullanacak başka bir işlev tanımlayın. Bunu yalnızca kullanıcı kontrol ettiğinde yapacaktır. Ham Verileri Göster onay kutusu. Streamlit'i kullanacak onay kutusu, veri çerçevesi, Ve alt başlık işlevler.

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

DataFrame'i oluşturup ham verileri gösterdikten sonra artık verileri temizlemeniz, analiz etmeniz ve son olarak görselleştirmeniz gerekir.

Veri Temizleme Gerçekleştirme

Veri temizleme işlemini gerçekleştirecek bir fonksiyon tanımlayarak başlayın. Bu işlev DataFrame'deki eksik değerleri ve yinelenen satırları işleyecektir. Temizlenen DataFrame daha sonra kullanıcıya kullanılarak gösterilir. st.dataframe kontrol ederlerse çalışır Temizlenmiş Verileri Göster onay kutusu.

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)

İşlev ayrıca kaldırılan yinelenen satırların sayısını da gösterir.

Veri Analizinin Gerçekleştirilmesi

Bir veri analizi işlevi tanımlayın. Bu işlev, DataFrame'in tanımlayıcı istatistiklerini gösterecek ve korelasyon matrisi ısı haritasını gösterecektir. Şunu kullanacak: st.pyplot Isı haritasını kullanıcı arayüzünde görüntüleme işlevi.

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)

Daha fazla veri analizi gerçekleştirmek için yukarıdaki işlevi değiştirebilirsiniz. Bu, verilerinizden daha fazla bilgi elde etmenize yardımcı olacaktır.

Veri Görselleştirme Gerçekleştirme

Veri görselleştirme, uygulamanın en önemli işlevlerinden biridir. Bunun nedeni, verilere görsel olarak insan dostu bir şekilde ışık tutmasıdır. Bu nedenle bu işlevsellik, kullanıcıların çizimlerin görünümünü değiştirmesine izin vermelidir.

Bunu başarmak için kullanıcıların bir sütun seçmesine, bölme sayısını ayarlamasına ve histogram için bir renk seçmesine olanak tanıyacak bir işlev oluşturun. Daha sonra bir histogram ve bir kutu grafiği oluşturacak ve bunları kullanarak görüntüleyecektir. st.pyplot işlev.

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)

Artık uygulamanın tüm temel işlevlerine sahipsiniz.

Kullanıcılardan Geri Bildirim Toplama

Bazen bir işlevsellik beklendiği gibi çalışmayabilir. Daha sonra kullanıcıların geri bildirimlerini göndermeleri için bir yola ihtiyacınız var. Bunun bir yolu kullanıcıların size e-posta yoluyla ulaşmasıdır. Streamlit, kullanıcının geri bildirimlerini toplamak için bir arayüz sağlar ancak doğrudan e-posta göndermek için yerleşik işlevsellik sağlamaz. Ancak uygulamanızdan e-posta göndermek için harici kitaplıkları veya hizmetleri entegre edebilirsiniz.

Kullanıcının geri bildirimini toplamak için kullanıcıya bir form sunacak bir işlev tanımlayın.

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!")

Bu form, kullanıcının e-postasını ve geri bildirimini toplayacak ve size bir e-posta yoluyla gönderecektir.

Programınızın Akışını Kontrol Etme ve Uygulamayı Çalıştırma

Son olarak tüm bu fonksiyonları bir araya getirecek ve programın akışını kontrol edecek bir ana fonksiyona ihtiyacınız var. Bu işlev aynı zamanda kullanıcıların, uygulama yüklenen veri kümelerini işlemeden önce veri gizliliği koşullarınızı kabul etmelerini sağlayacaktır.

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()

Programınızı bağımsız olarak çalıştırabilir veya modül olarak içe aktarabilirsiniz. if __name__ == '__main__': yapısını kullanma.

if __name__ == '__main__':
main()

Terminale ilerleyin ve projenizin bulunduğu yola gidin. Ardından uygulamayı başlatmak için aşağıdaki komutu çalıştırın:

streamlit run main.py

Yer değiştirmek main.py betiğinizin gerçek adıyla. Streamlit komutunu çalıştırdıktan sonra bir Yerel URL ve bir Ağ URL'si oluşturacaktır. Uygulamanızla etkileşimde bulunmak için bu URL'lerden herhangi birini kullanabilirsiniz.

Programın çıktısı aşağıdaki gibidir:

Veri bilimi için etkileşimli web uygulamaları oluşturmak hiç bu kadar kolay olmamıştı. Uygulamanız için bir kullanıcı arayüzü oluşturmak için ileri düzey web geliştirme becerilerine ihtiyacınız yoktur.

Hala Web Geliştirmeyi Öğrenmeli misiniz?

Bu sizin özel hedeflerinize bağlıdır. Kapsamlı kullanıcı gerektiren karmaşık, zengin özelliklere sahip web uygulamaları oluşturmayı düşünüyorsanız arayüz tasarımı ve gelişmiş işlevler, ardından web geliştirme teknolojilerini öğrenmek yararlı. Bunun nedeni, Streamlit'te uygulamanızın görünümünün ve davranışının ayrıntılı şekilde özelleştirilmesi üzerinde sınırlı kontrole sahip olmanızdır.