import numpy as np
import pandas as pd
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from PIL import Image
import PIL.ImageOps
x,y=fetch_openml("mnist_784",version=1,return_X_y=True)
X_train,X_test,Y_train,Y_test=train_test_split(x,y,random_state=9,train_size=7500,test_size=2500)
X_trainscaled=X_train/255.0
X_testS=X_test/255.0
clf=LogisticRegression(solver="saga",multi_class="multinomial").fit(X_trainscaled,Y_train)
def get_predict(image):
    im_pil = Image.open(image) 
    image_bw = im_pil.convert('L') 
    image_bw_resized = image_bw.resize((28,28), Image.ANTIALIAS) 
    pixel_filter = 20 
    min_pixel = np.percentile(image_bw_resized, pixel_filter) 
    image_bw_resized_inverted_scaled = np.clip(image_bw_resized-min_pixel, 0, 255) 
    max_pixel = np.max(image_bw_resized) 
    image_bw_resized_inverted_scaled = np.asarray(image_bw_resized_inverted_scaled)/max_pixel 
    test_sample = np.array(image_bw_resized_inverted_scaled).reshape(1,784)
    test_pred = clf.predict(test_sample)
    return test_pred[0]