如何使用已训练的随机森林(Random Forest)模型输出单样本预测结果
单样本预测实现方法
你已经完成了模型训练和编码器拟合,仅需按特征对齐、编码、预测、逆编码四个步骤操作即可,示例代码如下:
import pandas as pd # 构造待预测单样本,特征顺序必须和训练时保持完全一致 sample_df = pd.DataFrame( [["Son", "19-30", "Games", "Yes", "C"]], columns=["Gender", "Age", "Leisure", "Married", "Division"] ) # 用已拟合的特征编码器转换样本 sample_encoded = encoder1.transform(sample_df) # 模型预测得到编码后的标签 pred_encoded = rfc.predict(sample_encoded) # 用已拟合的标签编码器逆转换,得到Yes/No结果 pred_label = encoder2.inverse_transform( pd.DataFrame(pred_encoded, columns=["Online Shopping"]) ) print("预测结果:", pred_label["Online Shopping"].iloc[0])
注意事项
- 单样本的特征顺序、特征名称必须和训练集完全一致,否则会出现编码错误或预测结果偏移
- 不要重新调用
encoder1.fit()、encoder2.fit()方法,否则会覆盖原有编码映射规则,导致结果失效 - 你原有代码中存在数据泄露风险:拆分训练集、测试集应该在编码之前完成,编码器仅用训练集数据拟合,不能直接用全量X拟合后同时转换训练集和测试集
内容的提问来源于stack exchange,提问作者bellatrix
相关产品推荐
相关产品推荐

