Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
from mlxtend.frequent_patterns import apriori, association_rules | |
# Verileri yükleme | |
rules = pd.read_csv('Apriori_rules.csv') | |
dataset = pd.read_csv('market_basket_dataset.csv') | |
# Ürün listesini çıkarma | |
product_list = dataset['Itemname'].unique().tolist() | |
# Streamlit başlığı | |
st.title('Market Sepeti Analizi ve Ürün Önerisi') | |
# Kullanıcıya ürün seçme imkanı sağlama | |
selected_products = st.multiselect('Sepetinize ürün ekleyin:', product_list) | |
# Seçilen ürünlere göre öneri fonksiyonu | |
def get_recommendations(selected_products, rules): | |
recommendations = set() | |
# Seçilen tüm ürünlerin kurallara uygun olup olmadığını kontrol et | |
matching_rules = rules[rules['antecedents'].apply(lambda x: set(eval(x)) & set(selected_products))] | |
for antecedents, consequents in zip(matching_rules['antecedents'], matching_rules['consequents']): | |
antecedents_set = set(eval(antecedents)) | |
consequents_set = set(eval(consequents)) | |
recommendations.update(consequents_set.difference(antecedents_set)) | |
# Seçilen ürünler zaten sepette olduğundan, onları önerilerden çıkar | |
return recommendations.difference(set(selected_products)) | |
# Önerileri gösterme | |
if selected_products: | |
st.write('Sepetiniz:', selected_products) | |
recommendations = get_recommendations(selected_products, rules) | |
if recommendations: | |
st.write('Bu ürünleri de almak isteyebilirsiniz:') | |
for recommendation in recommendations: | |
st.write('- ', recommendation) | |
else: | |
st.write('Önerilecek başka ürün bulunmamaktadır.') | |
# Destek ve güven değerlerine göre filtreleme | |
support_threshold = st.slider('Minimum Destek Değeri:', 0.0, 1.0, 0.01) | |
confidence_threshold = st.slider('Minimum Güven Değeri:', 0.0, 1.0, 0.01) | |
filtered_rules = rules[(rules['support'] >= support_threshold) & (rules['confidence'] >= confidence_threshold)] | |
st.write('Filtrelenmiş Birliktelik Kuralları:') | |
st.dataframe(filtered_rules) | |