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

决策树代码中accuracy_score报‘Expected array-like...got None’错误如何修复?

问题修复方案

核心问题分析

你遇到的错误本质是accuracy_score的参数中有一个为None,大概率是前序代码的模型实例化或预测步骤出错,导致y_pred未正确生成(变为None)。结合你的代码,主要存在两个关键问题:

修复步骤

  • 补全必要的库导入
    你的代码缺少scikit-learn核心模块的导入,这会导致函数/类未定义,后续逻辑执行失败。需要在代码最顶部添加:

    from sklearn.datasets import make_classification
    from sklearn.model_selection import train_test_split
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.metrics import accuracy_score
    
  • 修正决策树类名
    scikit-learn中用于分类任务的决策树类是DecisionTreeClassifier,而非你写的DecisionTree。错误的类名会导致模型无法正确实例化,后续的fit和predict调用都会失效,最终y_pred变为None。修改模型实例化代码:

    clf = DecisionTreeClassifier(max_depth=4, criterion='gini')
    

修复后的完整代码

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

X, y = make_classification(n_features=2,n_redundant=0,n_samples=400, random_state=17)
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=17)

clf = DecisionTreeClassifier(max_depth=4, criterion='gini')
clf.fit(X_train, y_train)

y_pred = clf.predict(X_test)
prob_pred = clf.predict_proba(X_test)
accuracy = accuracy_score(y_test,y_pred)
print(f"模型准确率:{accuracy}")

额外验证建议

如果修改后仍有问题,可以在计算准确率前添加以下代码,确认y_test和y_pred的有效性:

assert y_test is not None, "y_test 未正确生成"
assert y_pred is not None, "y_pred 未正确生成"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:20:32