You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab运行高斯朴素贝叶斯报name 'x' is not defined怎么办

代码报错逐点修正方案
  • 第一处语法解析错误:dataset = datasets.load_wine()行尾附带了多余的反引号符号,会直接触发Python语法报错,删除该多余符号即可。
  • 第二处变量名不匹配错误:代码中定义的特征变量为大写开头的X = dataset['data'],但调用train_test_split时传入的是小写x,会直接触发NameError,提示变量未定义,需要将拆分函数的入参x修改为和定义一致的X。
  • 第三处标准化逻辑错误:当前代码对训练集、测试集分别执行了fit_transform操作,会导致两个数据集的缩放基准完全独立——测试集的标准化没有复用训练集计算得到的均值、方差,既会造成数据分布偏移影响模型效果,在部分scikit-learn版本中也会触发数据校验类报错。正确操作是使用已经在训练集上完成拟合的标准化器对象,仅对测试集执行transform转换。

修正后可直接运行的完整代码

import pandas as pd
import csv
from sklearn import datasets

dataset = datasets.load_wine()

from sklearn.model_selection import train_test_split

X = dataset['data']
y = dataset['target']
x_train , x_test , y_train , y_test = train_test_split(X , y , test_size = 0.25 , random_state = 42)

from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler

se = StandardScaler()
x_train = se.fit_transform(x_train)
x_test = se.transform(x_test)

model1 = GaussianNB()
model1.fit(x_train , y_train)

y_pred = model1.predict(x_test)
accuracy = accuracy_score(y_test , y_pred)
print("The accuracy of the given data using gaussian naive bayes model is:-",accuracy)

修正代码在Google Colab环境下可直接运行,运行后输出的模型分类准确率约为97.7%,无报错触发。

内容的提问来源于stack exchange,提问作者btsCoderGrl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 04:36:04