|
import pandas as pd
|
|
import numpy as np
|
|
import joblib
|
|
|
|
|
|
model = joblib.load('model/only_model.joblib')
|
|
def preprocess_single_data(data):
|
|
|
|
if not isinstance(data, pd.DataFrame):
|
|
data = pd.DataFrame(data, index=[0])
|
|
|
|
|
|
for column in data.columns:
|
|
mode_value = data[column].mode().iloc[0]
|
|
data[column] = data[column].replace(np.nan, mode_value)
|
|
|
|
def predict_single_fraud(data):
|
|
|
|
data_processed = preprocess_single_data(data)
|
|
|
|
|
|
|
|
|
|
|
|
prediction = model.predict(data_processed)[0]
|
|
probability = model.predict_proba(data_processed)[0, 1]
|
|
|
|
return prediction, probability
|
|
|
|
|
|
|
|
new_data_point = {
|
|
'incident_severity': 'Major Damage',
|
|
'insured_hobbies': 9,
|
|
'total_claim_amount': 59670,
|
|
'months_as_customer': 116,
|
|
'policy_annual_premium': 951.46,
|
|
'incident_date': 30,
|
|
'capital-loss': -35500,
|
|
'capital-gains': 0,
|
|
'insured_education_level': 3,
|
|
'incident_city':5,
|
|
}
|
|
|
|
|
|
prediction = predict_single_fraud(new_data_point)
|
|
|
|
|
|
print(f'Fraud Prediction: {prediction}')
|
|
|
|
|