如何获取sklearn中LogisticRegression对测试数据的分类结果
测试集分类结果获取与逐行比对方法
训练好的scikit-learn LogisticRegression模型自带predict()方法,传入测试集特征即可输出每条样本的预测分类标签,直接就能和真实标签y_test做逐行比对。
核心代码
调用predict()获取预测结果:
y_pred = clf.predict(x_test)
返回的y_pred是和y_test长度一致的数组,数组索引和测试集样本一一对应,直接按索引对位就能比对。
逐行比对实现
- 结构化表格比对(推荐):用pandas生成对比表,方便筛选查看预测错误的样本
import pandas as pd compare_result = pd.DataFrame({ "真实标签": y_test, "预测标签": y_pred, "预测是否正确": y_test == y_pred }) # 筛选查看所有预测错误的样本 print(compare_result[compare_result["预测是否正确"] == False])
- 逐行打印结果:适合快速抽查比对情况
for sample_idx, (true, pred) in enumerate(zip(y_test, y_pred)): status = "预测正确" if true == pred else "预测错误" print(f"第{sample_idx}条样本:真实值={true},预测值={pred},{status}")
补充:如果需要查看模型对每个样本的分类置信度,可以调用
clf.predict_proba(x_test),返回的数组每一行对应该样本属于各个类别的概率值,可用于分析预测错误样本的概率分布。
内容的提问来源于stack exchange,提问作者Pawan
相关产品推荐
相关产品推荐

