У меня есть графический интерфейс Tkinter, который запускает Logistic Reg. приложение имеет две кнопки; Один для получения файла и второй для прогнозов. Моя программа построена так:
Верхняя часть содержит весь способ склеарна, пока данные не будут установлены. Затем вторая часть содержит мой графический интерфейс Tkinter.
Моя кнопка прогнозирования выдает файл, содержащий категорические значения, которые я не хотел, и сами прогнозы.
Единственная проблема заключается в том, что при выдаче файла вершина почти пуста, хотя у меня есть прогнозы, а функция прогнозирования выдает именно то, что я хочу, когда используется без графического интерфейса. Вот как выглядит выпущенный документ:
X1 X2 X3 Preds
0
1
1
0
xx xx xx
xx xx xx
xx xx xx
xx xx xx
Вот что я сделал:
from tkinter import *
root=Tk()
root.geometry('600x450')
root.resizable(width=False, height=False)
root.configure(background='white')
root.title('First ML GUI')
label1= Label(root,text='ML APP',bg= 'white')
label1.config(font=('Courier',20, 'bold'))
label1.place(x=100, y=30)
def catch_file():
# getting my file
root.filename=filedialog.askopenfilename()
btn_getfile=Button(root, text='Load_File', command=lambda:catch_file())
btn_getfile.pack()
btn_getfile.place(x=265,y=120)
#on_click_pred=Label(root, textvariable=msg2)
### Here is the Pred button##############
btn_predict=Button(root, text='PREDS',
command=lambda:predictor(root.filename))
btn_predict.pack()
btn_predict.place(x=450,y=200)
on_click_pred=Label(root, textvariable=msg2)
on_click_pred.place(x=360,y=150)
def predictor(file)
data=pd.read_csv(file)
data=data.dropna()
categorical=data[['A1','A2','A3']]
numerical=data.select_dtypes(include=['number'])
numerical=numerical[['X1','X2','X3']]
numerical=sc.transform(numerical)
pred=lr.predict(numerical)
pred_df=pd.DataFrame(pred, columns=['Preds'])
report=pd.concat([categorical,pred_df], axis=1)
report.to_csv('report.csv')
root.mainloop()
Итак, одним словом, первая часть выпущенного файла содержала только прогнозы, а вторая часть - все данные, которые мне нужны, но столбец preds теперь пуст.