这个报错是因为在函数 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}')
``
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

原文地址: https://www.cveoy.top/t/topic/gtEt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录