yazodi's picture
Upload 4 files
85e8642 verified
import streamlit as st
import pandas as pd
import joblib
from sklearn.preprocessing import LabelEncoder
# Modeli yükle
model = joblib.load("clicks_predictor_model.pkl")
st.title("📊 Marketing Campaign Click Predictor")
st.markdown("Kampanya özelliklerine göre tahmini tıklama sayısını öğrenin.")
# Kullanıcı girdileri
company = st.selectbox("Şirket", ["Innovate Industries", "NexGen Systems", "Alpha", "TechCorp", "DataTech Solutions"])
campaign_type = st.selectbox("Kampanya Türü", ["Email", "Influencer", "Search", "Social Media"])
target_audience = st.selectbox("Hedef Kitle", ["Men 18-24", "Women 35-44", "All Ages", "Men 25-34"])
duration = st.selectbox("Süre", ["15 days", "30 days", "45 days", "60 days"])
channel = st.selectbox("Kanal", ["Google Ads", "YouTube", "Facebook", "Instagram", "Website", "Email"])
acquisition_cost = st.number_input("Müşteri Kazanım Maliyeti ($)", value=1000.0)
location = st.selectbox("Konum", ["Chicago", "New York", "Los Angeles", "Miami", "Houston"])
language = st.selectbox("Dil", ["Spanish", "German", "French", "Mandarin", "English"])
impressions = st.number_input("İzlenim Sayısı", value=1000)
engagement = st.slider("Etkileşim Skoru", 0, 10, 5)
customer_segment = st.selectbox("Müşteri Segmenti", ["Health & Wellness", "Fashionistas", "Outdoor Adventurers", "Tech Enthusiasts", "Foodies"])
# Girdileri DataFrame'e çevir
input_df = pd.DataFrame({
"Company": [company],
"Campaign_Type": [campaign_type],
"Target_Audience": [target_audience],
"Duration": [duration],
"Channel_Used": [channel],
"Acquisition_Cost": [acquisition_cost],
"Location": [location],
"Language": [language],
"Impressions": [impressions],
"Engagement_Score": [engagement],
"Customer_Segment": [customer_segment]
})
# Aynı şekilde encode et
def encode_input(df):
for col in df.columns:
if df[col].dtype == 'object':
df[col] = LabelEncoder().fit_transform(df[col])
return df
input_encoded = encode_input(input_df)
# Tahmin yap
if st.button("Tahmin Et"):
prediction = model.predict(input_encoded)[0]
st.success(f"📈 Tahmini Tıklama Sayısı: {int(prediction)}")