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

如何解决Python代码中NameError: name 'train_data_flat_t' is not defined错误?

解决NameError: name 'train_data_flat_t' is not defined错误

这个错误的核心原因是:代码中调用的train_data_flat_t、train_labels、test_data_flat_t、test_labels这些变量从未被定义或加载,Python找不到它们的存在。以下是具体解决步骤:

1. 先准备/加载你的训练、测试数据

你需要在模型训练代码之前,完成数据集的定义、加载或划分,以下是两种常见场景的示例:

场景1:使用sklearn自带数据集

from sklearn import datasets
from sklearn.model_selection import train_test_split

# 加载手写数字示例数据集
digits = datasets.load_digits()
# 将图像数据扁平化(对应你的train_data_flat_t格式)
X = digits.images.reshape((len(digits.images), -1))
# 标签数据(对应你的train_labels)
y = digits.target

# 划分训练集和测试集,生成你代码中需要的四个变量
train_data_flat_t, test_data_flat_t, train_labels, test_labels = train_test_split(X, y, test_size=0.2, random_state=42)

场景2:加载本地CSV数据文件

import pandas as pd
from sklearn.model_selection import train_test_split

# 加载本地CSV数据
df = pd.read_csv('your_dataset.csv')
# 提取特征数据并扁平化
X = df.drop('label_column', axis=1).values
# 提取标签列
y = df['label_column'].values

# 划分训练集和测试集
train_data_flat_t, test_data_flat_t, train_labels, test_labels = train_test_split(X, y, test_size=0.2, random_state=42)

2. 检查变量名拼写和执行顺序

  • 确保你定义的变量名和代码中调用的完全一致(比如不要把train_data_flat_t写成train_data_flat)
  • 必须保证数据加载/定义的代码在SVM训练代码之前执行,不能先调用变量再定义它

修正后的完整代码示例

from sklearn import svm
from sklearn import datasets
from sklearn.model_selection import train_test_split
import numpy as np

# 第一步:准备数据
digits = datasets.load_digits()
X = digits.images.reshape((len(digits.images), -1))
y = digits.target
train_data_flat_t, test_data_flat_t, train_labels, test_labels = train_test_split(X, y, test_size=0.2, random_state=42)

# 第二步:训练模型并评估
clf = svm.SVC(gamma=.001, probability=True)
train = clf.fit(train_data_flat_t, train_labels)
predicted = clf.predict(test_data_flat_t)

score = clf.score(test_data_flat_t, test_labels)
print("score", score)

with open('output.txt', 'w') as file:
    file.write(str(np.mean(score)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:40:29