import tkinter as tkfrom sklearn import tree preprocessing naive_bayesfrom sklearnmodel_selection import train_test_splitfrom sklearnmetrics import accuracy_score precision_score recall_score f1_score
这个报错是因为在函数 test_model() 中,window.X_test 不存在。可能是因为之前没有进行数据预处理或者训练模型,导致这些变量没有被赋值。在函数中需要加上判断,如果这些变量不存在,直接返回即可。例如:
def test_model():
X_test = window.X_test
y_test = window.y_test
clf = window.clf
if X_test is None or y_test is None or clf is None:
info_label.config(text='请先划分训练集和测试集,并训练模型')
return
y_test_pred = clf.predict(X_test)
test_score = accuracy_score(y_test, y_test_pred)
precision = precision_score(y_test, y_test_pred, pos_label='>50K')
recall = recall_score(y_test, y_test_pred, pos_label='>50K')
f1 = f1_score(y_test, y_test_pred, pos_label='>50K')
info_label.config(text=f'测试集得分:{test_score:.2f}, 精确度:{precision:.2f}, 召回率:{recall:.2f}, F1分数:{f1:.2f}')
``
原文地址: https://www.cveoy.top/t/topic/gtEt 著作权归作者所有。请勿转载和采集!