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

如何在scikit-learn中使用已训练模型预测新增的单条数据行

如何用已训练的XGBoost模型单独预测新增行数据?

很简单,核心就是把新增数据单独处理,只用来做预测,绝对不碰训练/验证数据集,具体步骤如下:

  1. 整理新增行的特征数据
    你需要把第355行的特征整理成和训练时X完全一致的格式——也就是包含OUNdif、UFMdif、Class这三个特征的DataFrame,列名、顺序都要和训练时保持一致。比如:

    # 替换成你实际的新增行数值
    new_row = pd.DataFrame({
        'OUNdif': [你的OUNdif数值],
        'UFMdif': [你的UFMdif数值],
        'Class': [你的Class数值]
    })
    

    这里要注意:如果训练时你对特征做过预处理(比如填充缺失值、标准化),新增行也要做完全一样的处理,不然模型会报错或者预测不准。

  2. 直接用训练好的模型预测
    不需要重新跑训练流程,直接调用已训练完成的my_model的predict()方法就行:

    # 得到新增行的预测结果
    new_pred = my_model.predict(new_row)
    # 打印结果,因为predict返回的是数组,取第一个元素就是这一行的预测值
    print(f"第355行的预测结果: {new_pred[0]}")
    

为什么这样不会误纳入训练?

因为你已经完成了my_model.fit()的训练步骤,现在调用predict()只是用模型已经学完的参数来计算结果,这个过程不会修改模型,也不会把新数据加入任何训练/验证数据集里,完全是独立的预测流程。

只要你不把新增行加到原来的data、X_train或者X_valid里,也不重新执行fit()方法,就绝对不会出现误训练的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 22:07:27