import streamlit as st import numpy as np import pandas as pd import pickle # Model ve feature isimlerini belirli bir klasörden yükle with open('src/laptop.pkl', 'rb') as file: model, feature_names = pickle.load(file) st.title("Dizüstü Bilgisayar Fiyat Tahmini") # Temel numerik feature inputları inches = st.number_input("Ekran Boyutu (Inch)", 10.0, 18.0, 15.6) ram = st.number_input("RAM (GB)", 2, 128, 8) weight = st.number_input("Ağırlık (kg)", 0.5, 5.0, 2.0) ghz = st.number_input("İşlemci Hızı (GHz)", 1.0, 5.5, 2.5) ssd = st.number_input("SSD Kapasitesi (GB)", 0, 4000, 256) hdd = st.number_input("HDD Kapasitesi (GB)", 0, 4000, 0) flash = st.number_input("Flash Storage (GB)", 0, 2000, 0) hybrid = st.number_input("Hybrid Disk (GB)", 0, 4000, 0) ppi = st.number_input("PPI", 60, 500, 150) ips = st.selectbox("IPS Panel Var mı?", ["Yok", "Var"]) touch = st.selectbox("Dokunmatik Ekran Var mı?", ["Yok", "Var"]) # Dummy ve categoric feature inputları company = st.selectbox("Marka", ['Apple','Asus','Acer','Dell','HP','Lenovo','MSI','Toshiba','Samsung','Microsoft','Razer','Mediacom','Vero','Xiaomi','Chuwi','Google','Fujitsu','LG','Huawei']) opsys = st.selectbox("İşletim Sistemi", ['Windows 10','Windows 7','Windows 10 Home','Windows 10 Pro','macOS','Linux','No OS','Chrome OS']) input_dict = dict.fromkeys(feature_names, 0) input_dict['Inches'] = inches input_dict['Ram'] = ram input_dict['Weight'] = weight input_dict['GHz'] = ghz input_dict['SSD'] = ssd input_dict['HDD'] = hdd input_dict['Flash_Storage'] = flash input_dict['Hybrid'] = hybrid input_dict['PPI'] = ppi input_dict['IPS'] = 1 if ips == "Var" else 0 input_dict['Touchscreen'] = 1 if touch == "Var" else 0 company_col = f'Company_{company}' if company_col in input_dict: input_dict[company_col] = 1 opsys_col = f'OpSys_{opsys}' if opsys_col in input_dict: input_dict[opsys_col] = 1 input_df = pd.DataFrame([input_dict], columns=feature_names) if st.button("Tahmini Fiyatı Göster"): price_pred = model.predict(input_df)[0] st.success(f"Tahmini Fiyat: {int(price_pred):,} ₺") st.caption("Not: Tahmin edilen fiyat modelin eğitildiği kur ve piyasa koşullarına bağlıdır. Gerçek fiyatlar değişiklik gösterebilir.")