import pandas as pd import numpy as np import streamlit as st import joblib from sklearn.preprocessing import StandardScaler,OneHotEncoder from sklearn.model_selection import train_test_split from sklearn.compose import ColumnTransformer df = pd.read_csv('train.csv') x = df.drop(['id', 'Response'], axis=1) y = df[['Response']] x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.20, random_state=42) preprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), ['Age','Driving_License','Region_Code','Previously_Insured','Annual_Premium','Policy_Sales_Channel','Vintage']), ('cat', OneHotEncoder(), ['Gender','Vehicle_Age','Vehicle_Damage']) ] ) # Prediction function def mantar_pred(Gender, Age, Driving_License, Region_Code, Previously_Insured, Vehicle_Age, Vehicle_Damage, Annual_Premium, Policy_Sales_Channel, Vintage): input_data = pd.DataFrame({ 'Gender': [Gender], 'Age': [Age], 'Driving_License': [Driving_License], 'Region_Code': [Region_Code], 'Previously_Insured': [Previously_Insured], 'Vehicle_Age': [Vehicle_Age], 'Vehicle_Damage': [Vehicle_Damage], 'Annual_Premium': [Annual_Premium], 'Policy_Sales_Channel': [Policy_Sales_Channel], 'Vintage': [Vintage] }) input_data_transformed = preprocessor.fit_transform(input_data) model = joblib.load('Sigorta.pkl') prediction = model.predict(input_data_transformed) return float(prediction[0]) # Streamlit UI def main(): st.title("Sigorta Poliçesi Satış Tahmini") st.write("Veri Gir") Gender = st.selectbox('Gender', df['Gender'].unique()) Age = st.slider('Age', int(df['Age'].min()), int(df['Age'].max())) Driving_License = st.selectbox('Driving_License', df['Driving_License'].unique()) Region_Code = st.selectbox('Region_Code', df['Region_Code'].unique()) Previously_Insured = st.selectbox('Previously_Insured', df['Previously_Insured'].unique()) Vehicle_Age = st.selectbox('Vehicle_Age', df['Vehicle_Age'].unique()) Vehicle_Damage = st.selectbox('Vehicle_Damage', df['Vehicle_Damage'].unique()) Annual_Premium = st.slider('Annual_Premium', float(df['Annual_Premium'].min()), float(df['Annual_Premium'].max())) Policy_Sales_Channel = st.selectbox('Policy_Sales_Channel', df['Policy_Sales_Channel'].unique()) Vintage = st.slider('Vintage', int(df['Vintage'].min()), int(df['Vintage'].max())) if st.button('Predict'): result = mantar_pred(Gender, Age, Driving_License, Region_Code, Previously_Insured, Vehicle_Age, Vehicle_Damage, Annual_Premium, Policy_Sales_Channel, Vintage) st.write(f'The predicted result is: {result:.2f}') if __name__ == '__main__': main()