- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在理解 sklearn 的函数时遇到了问题,希望得到一些说明。起初我以为 sklearn 的 SVM 的 predict_proba 函数给出了分类器预测的置信度,但是在我的情绪识别程序中使用它之后,我开始形成怀疑,觉得我误解了 predict_proba 函数的用途和方式成功了。
例如,我的代码设置如下:
# Just finished training and now is splitting data (cross validation)
# and will give an accuracy after testing the accuracy of the test data
features_train, features_test, labels_train, labels_test = cross_validation.train_test_split(main, target, test_size = 0.4)
model = SVC(probability=True)
model.fit(features_train, labels_train)
pred = model.predict(features_test)
accuracy = accuracy_score(labels_test, pred)
print accuracy
# Code that records video of 17 frames and forms matrix know as
# sub_main with features that would be fed into SVM
# Few lines of code later. . .
model.predict(sub_main)
prob = model.predict_proba(sub_main)
prob_s = np.around(prob, decimals=5)
prob_s = prob_s* 100
pred = model.predict(sub_main)
print ''
print 'Prediction: '
print pred
print 'Probability: '
print 'Neutral: ', prob_s[0,0]
print 'Smiling: ', prob_s[0,1]
print 'Shocked: ', prob_s[0,2]
print 'Angry: ', prob_s[0,3]
print ''
当我测试它时,它给了我这样的东西:
Prediction:
['Neutral']
Probability:
Neutral: 66.084
Smiling: 17.875
Shocked: 11.883
Angry: 4.157
它设法有 66% 的置信度认为正确的分类是“中性”。 66 紧挨着“中立”,恰好是最高的数字。最高数字标有实际预测,对此我很高兴。
但最终最终。 . .
Prediction:
['Angry']
Probability:
Neutral: 99.309
Smiling: 0.16
Shocked: 0.511
Angry: 0.02
它做出了“愤怒”的预测(顺便说一句,这是正确的分类),并在“中立”旁边分配了 99.3% 的置信度。尽管预测完全不同,但最高置信度(最高数字)被分配给中性。
有时它也这样做:
Prediction:
['Smiling']
Probability:
Neutral: 0.0
Smiling: 0.011
Shocked: 0.098
Angry: 99.891
Prediction:
['Angry']
Probability:
Neutral: 99.982
Smiling: 0.0
Shocked: 0.016
Angry: 0.001
我认为我不了解 SVM 的 predict_proba 函数是如何工作的,我想澄清一下它是如何工作的以及我的代码发生了什么。我的代码中发生了什么?
最佳答案
我不太了解 SVC 的工作原理,因此您可以考虑评论中所说的内容来完成此答案。
您必须考虑到 predic_proba 会按照字典顺序为您提供类别,因为它们出现在 classes_ 属性中。你在 the doc 中有这个.
当你想打印你的结果时,你必须考虑这一点。我们可以在您的示例中看到 Angry 位于第一个索引,因此除了第一个之外,您的结果都很好。
试试这个:
print 'Neutral: ', prob_s[0,1]
print 'Smiling: ', prob_s[0,3]
print 'Shocked: ', prob_s[0,2]
print 'Angry: ', prob_s[0,0]
关于python - 无法理解 sklearn 的 SVM 的 predict_proba 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151272/
如果我在 lrge 训练集上训练 SVM,并且类变量是 True 或 False,那么与训练集中的 False 值数量相比,True 值很少会影响训练模型/结果吗?他们应该平等吗?如果我的训练集的 T
假设我的特征向量是 (x1, x2, ...xn) 谁能给我一个代码来使用 libSVM 训练一类 SVM? 我应该如何使用交叉验证来学习参数。 最佳答案 这可能会帮助你 label=ones(Num
我提前为这个问题的新颖性道歉,但我被卡住了。我正在尝试解决这个问题, 我可以做第 i)-1v) 部分,但我卡在了 v 上。我知道计算余量 y,你可以 y=2/||W|| 而且我知道W是超平面的法线,只
我有以下 R 配置: 操作系统:LinuxR 版本 3.0.1 (2013-05-16)rmr2 版本 2.2.1rhdfs 版本 1.0.6hadoop 版本 1.2.0 如何使用带 rmr2 包的
我想尝试不同的嵌入,例如 Word2Vec、ELMo 和 BERT,但我有点困惑是使用词嵌入还是句子嵌入,以及为什么。我将嵌入用作 SVM 分类器的特征输入。 谢谢。 最佳答案 虽然这两种方法都可以证
几乎所有的例子都是基于数字的。在文本文档中,我有文字而不是数字。 那么你能告诉我如何使用这些算法进行文本文档分类的简单示例吗? 我不需要代码示例,只需要逻辑 伪代码将有很大帮助 最佳答案 常用的方法是
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我目前正处于语音识别的讨论阶段项目,我使用MFCC特征提取,但是从函数返回的MFCC特征是一个矩阵,例如每个语音文件(wav)的(20,38)特征矩阵。但是我如何将此功能传递给 SVM 分类器。对于
请我喜欢用 SIFT DESCRIPTOR 和 SVM 将一组图像分类为 4 类。现在,使用 SIFT 提取器,我得到了不同大小的关键点,例如 img1 有 100 个关键点,img2 有 55 个关
我有一组图像。我想学习一类支持向量机(OC-SVM)来模拟特定类(正)的分布,因为我没有足够的例子来代表其他类(负)。我对 OC-SVM 的理解是,它试图将数据与源分离,换句话说,它试图学习一个超球体
我正在使用 scikit-learn 使用 SVM 构建一些预测模型。我有一个包含大约 5000 个示例和大约 700 个特征的数据集。我在我的训练集上使用 18x17 网格搜索进行 5 折交叉验证,
这是我考试时提出的问题。我给出了以下答案,我的得分是0分。教授甚至不同意给予任何部分的认可,也没有告诉我我的答案有什么问题。谁能帮我找出我的答案有什么问题吗? 这是我在考试中给出的答案。缺点是:1)
tune.svm() 和 best.svm() 有什么区别。 当我们调整 svm 内核的参数时,我们不希望总是为我们的模型选择最佳值。 请原谅,因为我是 R 和机器学习的新手。 我注意到在调整 svm
我尝试使用 OpenCV2.3 实现基于 SVM 和 HOG 的人员检测系统。但是我卡住了。 我走到这一步:我可以从图像数据库计算 HOG 值,然后我用 LIBSVM 计算 SVM 向量,所以我得到例
Mahout(机器)中围绕 SVM(支持向量机)的任何新发展Learning With Hadoop) 使用 Hadoop?最近 SVM 实现被添加到 Mahout 中。我打算使用 SVM。有人尝试过
我使用 sklearn.svm.SVC 构建支持向量分类器,如下所示。 import numpy as np from sklearn.svm import SVC svc=SVC(proba
我想看看模型是否收敛于我的交叉验证。我如何增加或减少 sklearn.svm.SVC 中的时代? 目前: SVM_Model = SVC(gamma='auto') SVM_Model.fit(X_t
与在 SVM 的相同成本函数中使用 2-范数权重相比,我们如何通过在成本函数中使用 1-范数权重来提高稀疏性。 对于 1-范数:成本函数 - 最小化 ||w||_1 对于 2-范数:成本函数 - 最小
事实上,我不是一个经验丰富的 C++ 程序员,我是一个 C# 程序员,正如你所知道的,它有很大的不同,根据我的机器学习经验,我只使用了 matlab,所以如果我有一些,请原谅概念错误。 我正在尝试在
我正在尝试使用 OpenCV 中的 SVM 加载函数加载 .xml 文件,然后使用预测函数对交通标志进行分类。当到达预测函数的执行时抛出错误: Unhandled exception at 0x000
我是一名优秀的程序员,十分优秀!