selfmaster = masterselfmastertitle垃圾邮件分类器selfmastergeometry1000x700selfclassifier = SpamClassifierselfload_frame = tkFrameselfmasterselfload_framepackpadx=10 pady=10selfload_button = tkButtonselfload_
以下是排布整齐后的代码:
self.master = master self.master.title("垃圾邮件分类器") self.master.geometry("1000x700")
self.classifier = SpamClassifier()
self.load_frame = tk.Frame(self.master) self.load_frame.pack(padx=10, pady=10)
self.load_button = tk.Button(self.load_frame, text="导入数据集", command=self.load_dataset, width=15) self.load_button.pack(side="left")
self.show_data_button = tk.Button(self.load_frame, text="查看数据前十行", command=self.show_data, width=15) self.show_data_button.pack(side="left", padx=10, pady=10)
self.file_label = tk.Label(self.master, text="未选择文件") self.file_label.pack(padx=10)
self.test_size_label = tk.Label(self.master, text="测试集所占比例(0~1):") self.test_size_label.pack(padx=10, pady=10)
self.test_size_entry = tk.Entry(self.master, width=15) self.test_size_entry.pack(padx=10, pady=10)
self.train_test_split_button = tk.Button(self.master, text="划分训练集和测试集", command=self.split_data, width=15) self.train_test_split_button.place(relx=0.1, rely=0.2, relwidth=0.3, relheight=0.1)
self.menu_label = tk.Label(self.master, text="选择分类器:") self.menu_label.pack(anchor=tk.W, padx=5, pady=5)
self.options = ["朴素贝叶斯", "逻辑回归", "支持向量机", "K近邻", "决策树", "随机森林", "GDBT", "神经网络"] self.selected_option = tk.StringVar() self.selected_option.set(self.options[0]) self.dropdown_menu = tk.OptionMenu(self.master, self.selected_option, *self.options) self.dropdown_menu.pack(anchor=tk.W, padx=5, pady=5)
self.evaluate_label = tk.Label(self.master, text='模型评估:') self.evaluate_label.pack()
self.evaluate_options=['准确率', '精确率', '召回率', 'F1值'] self.evaluate_option= tk.StringVar() self.evaluate_option.set(self.evaluate_options[0]) self.evaluate_optionmenu = tk.OptionMenu(self.master, self.evaluate_option, *self.evaluate_options) self.evaluate_optionmenu.pack()
self.evaluate_button = tk.Button(self.master, text='评估模型', command=self.evaluate_model) self.evaluate_button.pack()
self.train_button = tk.Button(self.master, text="训练模型", command=self.train_classifier) self.train_button.pack(anchor=tk.W, padx=5, pady=5)
self.text_entry = tk.Entry(self.master, width=50) self.text_entry.pack(padx=10, pady=10)
self.predict_button = tk.Button(self.master, text="预测", command=self.predict, width=15) self.predict_button.place(relx=0.6, rely=0.2, relwidth=0.3, relheight=0.1)
self.random_predict_button = tk.Button(self.master, text="随机预测", command=self.random_predict, width=15) self.random_predict_button.place(relx=0.6, rely=0.3, relwidth=0.3, relheight=0.1)
self.result_label = tk.Label(self.master, text="", width=30) self.result_label.pack(padx=10, pady=10)
self.chart_type = tk.StringVar(self.master) self.chart_type.set('选择图表类型') self.chart_menu = tk.OptionMenu(self.master, self.chart_type, '邮件分类饼图', '混淆矩阵','ROC曲线') self.chart_menu.pack(padx=10, pady=10)
self.generate_chart_button = tk.Button(self.master, text="生成图表", command=self.generate_chart, width=15) self.generate_chart_button.pack(padx=10, pady=10)
self.clear_canvas_button = tk.Button(self.master, text="清空画布", command=self.clear_canvas, width=15) self.clear_canvas_button.pack(padx=10, pady=10)
self.cm_text = tk.Text(self.master, width=70, height=20) self.cm_text.pack(padx=10, pady=10, side=tk.LEFT)
self.canvas = tk.Canvas(self.master, width=600, height=300) self.canvas.pack(padx=10, pady=10, side=tk.LEFT
原文地址: https://www.cveoy.top/t/topic/g6r5 著作权归作者所有。请勿转载和采集!