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

如何将训练完成的机器学习模型应用到其他独立数据集进行测试

操作步骤

你不需要再调用train_test_split拆分原数据集,直接把训练、测试流程拆成两个独立数据的处理环节即可,具体操作如下:


1. 训练阶段(使用250名患者的数据集)

和你之前学习的训练逻辑完全一致,只需要去掉拆分测试集的步骤即可:

import pandas as pd
from sklearn.linear_model import LogisticRegression # 示例用逻辑回归,替换为你教程里的模型即可
# 加载训练数据集
train_df = pd.read_csv("你的250名患者训练集路径.csv")
# 拆分特征和标签
x_train = train_df.drop("output", axis=1)
y_train = train_df["output"]

# 【可选】如果有预处理(比如标准化、编码),必须用训练集拟合转换器
# 示例:标准化
# from sklearn.preprocessing import StandardScaler
# scaler = StandardScaler()
# x_train = scaler.fit_transform(x_train)

# 训练模型
model = LogisticRegression()
model.fit(x_train, y_train)

2. 测试阶段(使用3名患者的独立数据集)

需保证测试集的特征列名、顺序、数据类型和训练集的x_train完全一致,不能多列也不能缺列

# 加载独立测试数据集
test_df = pd.read_csv("你的3名患者测试集路径.csv")

# 拆分特征和标签:如果测试集带真实output标签需要评估效果就执行这步,仅做预测可以跳过
x_test = test_df.drop("output", axis=1)
y_test = test_df["output"]

# 【可选】和训练阶段对应,用训练集拟合好的预处理转换器处理测试集,不能重新fit
# x_test = scaler.transform(x_test)

3. 预测/评估

  • 仅预测心脏病发作概率:
# 返回的数组第二列即为对应患者心脏病发作的概率
pred_proba = model.predict_proba(x_test)[:, 1]
print(pred_proba)
  • 需评估模型效果(测试集有真实output标签的前提下):
from sklearn.metrics import accuracy_score
y_pred = model.predict(x_test)
# 计算准确率
acc = accuracy_score(y_test, y_pred)
print(f"模型准确率:{acc}")

注意事项

如果训练阶段做了缺失值填充、特征编码、标准化/归一化等预处理操作,必须用训练集拟合的预处理工具处理测试集,不能单独对测试集做拟合操作,否则会出现数据泄露,导致预测结果失真。

内容的提问来源于stack exchange,提问作者Leonardo Felix da Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:36:04