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

新手求助:如何完成决策树分类器的训练与测试?

完整决策树分类训练测试步骤

针对你的150条两列CSV数据,按100条训练、50条测试的需求,完整操作步骤如下:

1. 导入所需工具库

除了决策树分类器,还需要加载数据的pandas,以及评估指标工具:

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report, accuracy_score

2. 加载CSV数据

用pandas读取你的CSV文件,假设文件名为data.csv:

# 读取CSV文件
df = pd.read_csv("data.csv")
# 假设第一列是特征(输入),第二列是分类标签(输出)
# 可根据实际列名调整,比如用列名提取:x = df["特征列名"], y = df["标签列名"]
x = df.iloc[:, 0].values.reshape(-1, 1)  # 单特征需转成二维数组,否则sklearn会报错
y = df.iloc[:, 1].values

3. 拆分训练集与测试集

按你要求的100/50比例拆分,两种方式可选:

方式一:手动固定拆分(前100条训练,后50条测试)

train_x = x[:100]
train_y = y[:100]
test_x = x[100:]
test_y = y[100:]

方式二:随机拆分但固定数量(保证每次拆分结果一致)

如果需要随机选取样本且保证标签分布均匀,可使用train_test_split:

from sklearn.model_selection import train_test_split
train_x, test_x, train_y, test_y = train_test_split(
    x, y, train_size=100, test_size=50, random_state=17, stratify=y
)
# stratify=y 可选,作用是让训练/测试集的标签分布和原数据一致

4. 训练与评估模型

补全你写的代码,完整执行流程如下:

# 初始化决策树分类器
classifier = DecisionTreeClassifier(random_state=17)
# 用训练数据训练模型
classifier.fit(train_x, train_y)
# 对测试集进行预测
pred_y = classifier.predict(test_x)
# 输出分类评估报告(包含精确率、召回率等指标)
print(classification_report(test_y, pred_y))
# 输出准确率
print("模型准确率:", accuracy_score(test_y, pred_y))

关键注意点

  • 单特征必须转成二维数组(用reshape(-1,1)),否则sklearn会抛出维度不匹配的错误
  • 如果CSV文件有表头,建议直接用列名提取特征和标签,避免索引混淆
  • random_state固定数值是为了保证每次运行的拆分和训练结果一致,方便调试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:30:21