输出与预测不符

     2023-02-16     281

关键词:

【中文标题】输出与预测不符【英文标题】:Output is not as expected in the prediction 【发布时间】:2021-08-18 11:27:24 【问题描述】:

我有这样的训练和测试数据集:

train: 2000 files
hit.txt
nohit.txt
hit.txt

Test: 1500 
hit.txt
nohit.txt
hit.txt

我训练了一个模型,得到了 74% 的准确率;这是下面的代码:

但是当我对测试数据集进行预测时,我得到的分数是一个我不想要的数组。

test_dir = 'test/'
dictionary = make_dic(test_dir)

features_, labels_ = make_dataset(dictionary)

calibrated_pred_final = calibrated_clf_pipe.predict(features_)

calibrated_pred_final
array([1, 1, 1, ..., 1, 1, 0])

test_pred_final = calibrated_clf_pipe.predict_proba(features_)
import numpy as np
batch_y = np.array(test_pred_final).flatten()

f = open('scores.txt', 'w')
for i in range(len(batch_y)):
    f.write(str(batch_y))    

score.txt 文件长这样,

[0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306][0.38636364 0.61363636 0.05147059 ... 0.61363636 0.86734694 0.13265306] this goes forever.

我期望的是每封测试邮件的分数,如下所示。

 0.38636364     
 0.61363636 
 0.05147059
    ...
    ...

我不确定出了什么问题。为什么我在一个重复 1500 次的数组中得到这个分数?我假设这个分数数组代表每封邮件的分数,但我如何删除整个列表并让每封邮件只有一个分数,就像我的预期结果一样?

【问题讨论】:

【参考方案1】:

预测符合预期。问题在于您写信给score.txt 的方式。您错过了对batch_y 的索引,因此它为数组中的每个元素添加了整个数组。这是更新的代码:

test_dir = 'test/'
dictionary = make_dic(test_dir)

features_, labels_ = make_dataset(dictionary)

calibrated_pred_final = calibrated_clf_pipe.predict(features_)

calibrated_pred_final
array([1, 1, 1, ..., 1, 1, 0])

# line changed below.
test_pred_final = calibrated_clf_pipe.predict_proba(features_)

import numpy as np
batch_y = np.array(test_pred_final).flatten()

f = open('scores.txt', 'w')
for i in range(len(batch_y)):
    f.write(str(batch_y[i]) + '\n') # You missed indexing into batch_y here

如果您想要概率,您可以继续使用predict_proba。如果您想要 0 1 个预测,请使用 predict

【讨论】:

我的测试数据确实有 1500 个数据点,但是每个数据点都是一个单独的文本文件。所以我希望输出如上所示。 使用您的索引代码,我的输出仍然如下所示[0.42857147 0.0618750] 0.71875 0.0611470.0620770.06207 0.0611870.0611770 0.71875 ... 0.71875 ... 0.71875 ... 0.0611730] 0.62] [0.42857143 0.94117647 0.0625 ... 0.84210526 0.71875 0.62] [0.42857143 0.94117647 0.0625 ... 0.84210526 0.71875 0.62] [0.42857143 0.94117647 0.0625 ... 0.84210526 0.71875 0.62] [0.42857143 0.94117647 0.0625 ... 0.84210526 0.71875 0.62] 跨度> 对。然后你需要提取概率最高的索引。那你为什么用predict_proba?你应该使用predict 你知道为什么我们会为单个数据点行获得这么多概率吗? 它基于您使用的分类器。通常,当使用predict_proba 时,您会得到数据集中每个类为正的概率。这就是为什么你得到这么多概率(每个班级)。如果你使用predict,那么它只给出概率最高的类。

分类与回归的关系和区别

走刀口分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。举个例子:预测明天的气温是多少度,这是一个回归任务;预测明天是阴、晴还是雨,就... 查看详情

xlearn 预测错误给出的 mse 与函数的输出不同

】xlearn预测错误给出的mse与函数的输出不同【英文标题】:xlearnpredictionserrorgiveadifferentmsethanoutputbythefunction【发布时间】:2021-05-0714:45:37【问题描述】:xlearnpredict函数提供的mse与您通过查看预测并自行计算得到的结果不同。这是... 查看详情

BCEWithLogitsLoss:试图将预测标签的二进制输出作为张量,与输出层混淆

】BCEWithLogitsLoss:试图将预测标签的二进制输出作为张量,与输出层混淆【英文标题】:BCEWithLogitsLoss:Tryingtogetbinaryoutputforpredictedlabelasatensor,confusedwithoutputlayer【发布时间】:2021-01-0803:44:54【问题描述】:我的数据集的每个元素都... 查看详情

与 foreach 并行预测 nnet 输出时 R 内存爆炸

】与foreach并行预测nnet输出时R内存爆炸【英文标题】:Rmemoryblowupwhenpredictingnnetoutputinparallelwithforeach【发布时间】:2018-03-0223:30:24【问题描述】:我有一个(大型)神经网络正在由R中的nnet包训练。我希望能够模拟来自这个神经网... 查看详情

回归(regression)与分类(classification)的区别

...部分数据集已经有正确的答案。“分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。”回归是监督学习的一部分,通常是用来预测一个连续值的输... 查看详情

分类与回归的区别

...问题和分类问题的本质一样,都是针对一个输入做出一个输出预测,其区别在于输出变量的类型。 分类问题是指,给定一个新的模式,根据训练集推断它所对应的类别(如:+1,-1),是一种定性输出,也叫离散变量预测;&n... 查看详情

照片与本人严重不符

朋友:你为什么面试失败了?我:因为我简历上贴的照片是这样结果面试时面试官发现我长成这样 查看详情

为啥打印结果与实物不符

】为啥打印结果与实物不符【英文标题】:Whytheprintingresultisnotmatchedwiththeactualstuff为什么打印结果与实物不符【发布时间】:2020-06-2204:20:38【问题描述】:我的应用程序基于WPF,它可以创建绘图然后打印。问题是:有时打印的结... 查看详情

回归与分类的区别

1)输出数据的类型分类输出的数据类型是离散数据,也就是分类的标签。比如我们前面通过学生学习预测考试是否通过,这里的预测结果是考试通过,或者不通过,这2种离散数据。回归输出的是连续数据类型。比如我们通过学... 查看详情

VirtualHost 与子域的行为不符

】VirtualHost与子域的行为不符【英文标题】:VirtualHost\'snotactingasexpectedwithsubdomain【发布时间】:2017-04-1210:00:17【问题描述】:这是我的设置的简化。我有一个没有ServerName或ServerAliases的默认VirtualHost(启用了站点的000-default.conf)... 查看详情

“分组依据”计算与预期结果不符

】“分组依据”计算与预期结果不符【英文标题】:\'Groupby\'calculationsdon\'tmatchexpectedresults【发布时间】:2018-03-1822:06:57【问题描述】:这是我的查询:selectproduct_name,(sum(item_price-discount_amount)*(quantity))ASproduct_totalfromproductsinnerjoinor... 查看详情

文本字段上的 UITapGestureRecognizer 与预期不符

】文本字段上的UITapGestureRecognizer与预期不符【英文标题】:UITapGestureRecognizeronatextfieldnotasexpected【发布时间】:2018-05-0414:30:53【问题描述】:在我的课堂上,我在一个数组textViewRecognizer中有11个UITapGestureRecognizer,连接到数组boxArr... 查看详情

glActiveTexture 默认行为与预期不符

】glActiveTexture默认行为与预期不符【英文标题】:glActiveTexturedefaultbehaviornotasanticipated【发布时间】:2018-03-2819:21:04【问题描述】:我想澄清一下默认的OpenGL行为。据我了解,默认的活动纹理单元为0(GL_TEXTURE0),除非通过glActiveText... 查看详情

分类预测与回归模型介绍

...)分类  分类是构造一个分类模型,输入样本属性值,输出对应类别,将每个样本映射到预先定义好的类别。  分类模型,建立在已有类标记的数据集上,因此,属于“有监督学习”(2)预测  预测,指建立两种或... 查看详情

Xpath scrapy 结果与预期不符

】Xpathscrapy结果与预期不符【英文标题】:Xpathscrapyresultnotasexpected【发布时间】:2020-10-1902:21:43【问题描述】:我正在尝试获取前面标记的值。这就是我正在做的事情:html页面结构:...<trclass="destaqueno-hover"><tdclass="periodo"co... 查看详情

带有 NSLayoutAttributeTrailing 的 NSLayoutConstraints 与预期不符

】带有NSLayoutAttributeTrailing的NSLayoutConstraints与预期不符【英文标题】:NSLayoutConstraintswithNSLayoutAttributeTrailingnotasexpected【发布时间】:2014-11-2618:07:23【问题描述】:我有一个包含两个新约束的数组。当我设置这些约束时,按钮被放... 查看详情

日历热图:颜色与指定不符

】日历热图:颜色与指定不符【英文标题】:CalendarHeatmap:Colorsnotasspecified【发布时间】:2016-06-1306:40:14【问题描述】:我正在使用agstudy对日历热图的修改(discussion和源GitHub)一般来说,代码工作得很好,但我无法让我的颜色代... 查看详情

熊猫日期时间周与预期不符

】熊猫日期时间周与预期不符【英文标题】:Pandasdatetimeweeknotasexpected【发布时间】:2019-09-1706:36:54【问题描述】:在使用Pandas日期时间时,我尝试按周和年对数据进行分组。但是,我注意到有些年份,一年的最后一天最终与同... 查看详情