与预测连接时的数据

时间:2019-05-03 06:24:29

标签: python machine-learning tkinter

我有一个运行Logistic Reg的Tkinter GUI。该应用程序有两个按钮;一个用于获取文件,第二个用于进行预测。我的程序是这样构建的: 顶部包含整个sklearn方法,直到数据拟合为止。然后第二部分包含我的Tkinter GUI。 我的预测按钮发出了一个文件,其中包含我不想要的分类值以及预测本身。 唯一的问题是当发出文件时,顶部的几乎是空的,尽管我有预测,并且预测功能完全可以产生我不使用GUI时想要的功能。这是发出的内容:

 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列现在为空。

1 个答案:

答案 0 :(得分:3)

您无需concat,只需将预测保存为新列即可。

numerical['Preds'] = pred
numerical.to_csv('report.csv')