| | import streamlit as st |
| | import pickle |
| | import numpy as np |
| | import os |
| |
|
| | st.title('İçe Dönük (Introvert) mü Dışa Dönük (Extrovert) mü Olduğunuzu Tahmin Eden Model :bust_in_silhouette:') |
| | st.markdown(""" |
| | Bu model, aşağıdaki davranışsal özelliklerinize göre sizi **introvert** (içe dönük) veya **extrovert** (dışa dönük) olarak tahmin eder. |
| | """) |
| |
|
| | MODEL_PATH = "src/behv.pkl" |
| |
|
| | |
| | if not os.path.isfile(MODEL_PATH): |
| | st.error(f"Model dosyası '{MODEL_PATH}' bulunamadı! Klasördeki dosyalar: {os.listdir('src')}") |
| | st.stop() |
| |
|
| | |
| | with open(MODEL_PATH, 'rb') as file: |
| | model, feature_names = pickle.load(file) |
| |
|
| | st.header("Lütfen aşağıdaki alanları doldurun:") |
| |
|
| | inputs = [] |
| | inputs.append(st.number_input('Time spent Alone (Saat)', min_value=0.0, max_value=24.0, value=1.0, step=1.0, |
| | help="Günde yalnız başına geçirdiğiniz saat ortalaması")) |
| | inputs.append(st.number_input('Stage fear (1=Evet, 0=Hayır)', min_value=0.0, max_value=1.0, value=0.0, step=1.0, |
| | help="Topluluk/kalabalık karşısında heyecan, çekingenlik veya korku yaşıyor musunuz?")) |
| | inputs.append(st.number_input('Social event attendance', min_value=0.0, max_value=10.0, value=1.0, step=1.0, |
| | help="Bir ayda katıldığınız sosyal etkinlik (toplantı, buluşma vb.) sayısı")) |
| | inputs.append(st.number_input('Going outside', min_value=0.0, max_value=10.0, value=1.0, step=1.0, |
| | help="Bir haftada dışarıya (ör: parka, kafeye, alışverişe) çıkma sıklığınız")) |
| | inputs.append(st.number_input('Drained after socializing (1=Evet, 0=Hayır)', min_value=0.0, max_value=1.0, value=0.0, step=1.0, |
| | help="Sosyalleştikten sonra kendinizi yorgun ve enerjisiz hissediyor musunuz?")) |
| | inputs.append(st.number_input('Friends circle size', min_value=0.0, max_value=20.0, value=1.0, step=1.0, |
| | help="Yakın arkadaş çevrenizdeki kişi sayısı")) |
| | inputs.append(st.number_input('Post frequency', min_value=0.0, max_value=10.0, value=1.0, step=1.0, |
| | help="Bir ayda sosyal medyada gönderi paylaşma sıklığınız")) |
| |
|
| | if st.button('Tahmin Et'): |
| | input_array = np.array([inputs]) |
| | prediction = model.predict(input_array) |
| | |
| | if hasattr(prediction, '__len__'): |
| | output = prediction[0] |
| | if hasattr(output, '__len__'): |
| | output = output[0] |
| | else: |
| | output = prediction |
| |
|
| | |
| | label_map = {0: "Introvert (İçe dönük)", 1: "Extrovert (Dışa dönük)"} |
| | try: |
| | class_idx = int(round(output)) |
| | result = label_map.get(class_idx, f"Bilinmeyen sınıf ({output})") |
| | except Exception: |
| | result = f"Bilinmeyen sonuç: {output}" |
| | st.success(f"Tahmin sonucu: {result}") |
| |
|