import numpy as np from sklearn.naive_bayes import GaussianNB from sklearn import metrics import pickle import os import pandas as pd from sklearn.preprocessing import MinMaxScaler # def prediction_generator(list_): # # This method need a np. array. # # Therefore this method needs the imports: # # import pandas as pd # # import pickle # # In the folder models.py # # @return one it with the prediction # vanilla_df = pd.read_excel("small_set_normalized_21_04_2020_2.xlsx",encoding='utf-8') # LOrdinalCols = ['Competitiveness_Score', 'Openness', 'Conscentiousness', # 'Agreeableness', 'Neuroticism', 'Extraversion'] # scaler = MinMaxScaler() # scaler.fit(vanilla_df[LOrdinalCols]) # list_[LOrdinalCols] = scaler.transform(list_[LOrdinalCols]) # #------------- TODO:Preprocessing done. Add the classifier with pickle --------# # x = np.asarray(list_, dtype=np.float32) # print(list_) # print(x) # #x = np.asarray(list_, dtype=np.float32) # # # -------------- # # Create model # # -------------- # sfilename = os.getcwd()+'/'+'model_NaiveBayses-70.19acc.sav' # # load the model from disk # model = pickle.load(open(sfilename, 'rb')) # # x = x.reshape(1, -1) # # y_pred = model.predict(x) # # iY_pred = int(y_pred) # # return iY_pred def prediction_human_expert(list_): # REQUIRED LIST FORM # feats_ = ['Competitiveness_Score', 'Openness','Conscentiousness', 'Agreeableness', 'Neuroticism', 'Extraversion', # 'younger_siblings', 'older_siblings', 'english_lk', 'math_lk', 'risksq001','parental_home_german', 'parental_home_foreign_language', # 'birthplace_Baden-Wuerttemberg', 'birthplace_Bayern', 'birthplace_Hessen', 'birthplace_Nordrhein-Westfalen', # 'degree_mother_Universitaet','degree_father_Universitaet','birthplace_Rheinland-Pfalz', 'birthplace_other', # 'age_before_85', 'age_85_89', 'age_90_94', 'age_95_99', 'age_00_later', 'gender', 'impatiencesq001'] # [4., 4., 6., 7., 2., 3., 1., 0., 0., 0., 6., 0., 1., 0., 0., 1., 0., 1., 1., 0., 1., 1., 0., 0., 0., 0., 0., 6.] x = np.asarray(list_, dtype=np.float32).reshape(1, -1) if x.mean() > 5: return 1 else: return 0 #sfilename = os.getcwd()+'/'+'model_.sav' #load the model from disk #model = pickle.load(open(sfilename, 'rb')) #y_pred = model.predict(x) def prediction_ml(list_): #sfilename = os.getcwd()+'/'+'RF_model_.sav' sfilename = '/Users/kev/Desktop/oTree_/Mirror_mirror/RF_model_.sav' model = pickle.load(open(sfilename, 'rb')) x = np.asarray(list_, dtype=np.float32).reshape(1, -1) y_pred = model.predict_proba(x)[:,1][0] #print(y_pred) if y_pred > 0.6: return 1 else: return 0