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

Jupyter Notebook编译成功无输出:MNIST数据集分类问题求助

问题排查与解决

1. 无输出的核心原因:未调用定义的函数

你编写了mnistDTC()函数,但代码中没有执行该函数的语句。在Jupyter Notebook里,仅定义函数不会自动触发执行,必须显式调用才能运行内部逻辑。在代码末尾添加:

mnistDTC()

重新运行后就能看到输出。

2. 数据读取的明显错误

你的代码两次读取的都是标签文件:

df = pd.read_csv('./data/mnist_target.csv', index_col = 0)
target = pd.read_csv('data/mnist_target.csv', index_col = 0)

df应该对应特征数据集,target对应标签数据集,你把两者都读成了标签文件,会导致后续模型训练完全失效。请修正特征文件的路径,比如:

df = pd.read_csv('./data/mnist_features.csv', index_col = 0)  # 替换为你的特征文件名
target = pd.read_csv('./data/mnist_target.csv', index_col = 0)

3. 关于数据集规模的疑问

MNIST数据集(70000样本、单样本784特征)对决策树来说确实不算小,但不会直接导致“无输出”,只会延长训练时间。如果调用函数后长时间无响应,可以做以下优化:

  • 先取小批量数据测试逻辑,比如df = df.sample(1000),target = target.loc[df.index]
  • 限制决策树深度,比如设置tree_clf = DecisionTreeClassifier(max_depth=10),减少训练耗时

修正后的完整代码示例

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from joblib import dump

def mnistDTC():
    # 修正特征文件路径
    df = pd.read_csv('./data/mnist_features.csv', index_col = 0)
    target = pd.read_csv('./data/mnist_target.csv', index_col = 0)
    # 可选:限制树深度加快训练
    tree_clf = DecisionTreeClassifier(max_depth=10)
    
    df_train, df_test, target_train, target_test = train_test_split(df, target, test_size=0.2, random_state=0)
    tree_clf.fit(df_train, target_train)
    
    predictions = tree_clf.predict(df_test)
    print(predictions[:10])

# 调用函数执行
mnistDTC()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:30:57