使用scikit-learn随机森林如何获取预测标签并追加至原输入数据
scikit-learn的随机森林模型内置的predict()方法就可以直接返回预测标签,和你提到的Keras对应功能完全一致,具体操作如下:
1. 核心操作逻辑
总共只需要两步即可完成需求:
- 调用训练完成的随机森林实例的
predict()方法,传入和训练时维度、顺序一致的输入特征,得到所有样本的预测标签数组 - 将预测标签数组作为新列追加到你的原始输入数据表中
2. 可运行示例代码
假设你使用Pandas存储原始数据,参考实现如下:
import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score # -------------------------- # 此处为模拟你已完成的训练逻辑 # -------------------------- # 假设raw_df是你的原始输入数据表,包含特征列和可选的真实标签列 # 假设特征列是['col1','col2','col3'],真实标签列是'true_label' X = raw_df[['col1','col2','col3']] y = raw_df['true_label'] # 训练随机森林模型 rf = RandomForestClassifier() rf.fit(X, y) # -------------------------- # 追加预测标签到原始数据的核心代码 # -------------------------- # 生成所有样本的预测标签 pred_labels = rf.predict(X) # 追加到原始数据表,新列名可自定义 raw_df['predicted_label'] = pred_labels # 如果你需要计算评估指标,直接用新增的列计算即可 acc = accuracy_score(raw_df['true_label'], raw_df['predicted_label']) print(f"模型准确率: {acc}")
3. 注意事项
- 传入
predict()的特征数据必须和模型训练时的特征数量、列顺序完全一致,避免预测结果异常 - 如果需要输出每个类别的预测概率,可以调用
predict_proba()方法,返回的数组每一列对应一个类别的预测概率 - 如果你的原始数据包含未标注的待预测样本,同样可以用上述方法追加预测结果
内容的提问来源于stack exchange,提问作者Nick Choi
相关产品推荐
相关产品推荐

