File size: 907 Bytes
e93c178
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pandas as pd
import numpy as np

def make_prediction(input_data, model, encoders, target_encoder, feature_columns):

    # convert user input into dataframe
    df = pd.DataFrame([input_data])

    # remove Loan_ID if it exists in feature list
    feature_columns = [c for c in feature_columns if c != "Loan_ID"]

    # add any missing columns (to match training data)
    for col in feature_columns:
        if col not in df.columns:
            df[col] = 0

    # arrange columns in correct order
    df = df[feature_columns]

    # encode categorical values
    for col, le in encoders.items():
        df[col] = le.transform(df[col].astype(str))

    # make prediction
    pred = model.predict(df)
    prob = model.predict_proba(df)

    # convert numeric result back to Y/N
    result = target_encoder.inverse_transform(pred)[0]
    confidence = np.max(prob) * 100

    return result, confidence