问题标签 [one-class-classification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1011 浏览

python - 结合两个分类模型

我是机器学习的新手,我用 0 表示正常,1 表示攻击,这个想法是这样的:

我想建立一个在第一级应用 DT 的模型。DT 的输出将是 Normal 或 Attack。首先,如果数据被 DT 归类为攻击,我们会发出警报,其次,如果数据归类为正常,我们将正常数据输入第二个模型 (SVM) 以仔细检查是正常还是攻击。

我读过关于集成学习的文章,但是这些方法中的大多数都结合了模型并取平均值或加权,知道我们如何实现这个吗?谢谢

0 投票
1 回答
1349 浏览

python-3.x - 用于文本分类的一类 SVM 模型(scikit-learn)

我正在尝试对一组文本进行分类,以用于预测测试文本集中的相似文本。我正在使用 one_class_svm 模型。“author_corpus”包含由单个作者撰写的文本列表,“test_corpus”包含由其他作者和原作者撰写的文本列表。我正在尝试使用 one_class_svm 来识别测试文本中的作者。

我收到值错误:

给定训练集中的单一作者,我如何实现这个模型来准确预测测试集中文本的作者身份?任何帮助表示赞赏。

作为参考,这里是 one_class_svm 模型指南的链接:https ://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM

0 投票
2 回答
109 浏览

python-3.x - 如何让 OneClassSVM 模型更准确?(Scikit-学习)

我一直在尝试使用该作者撰写的多个文本对作者进行分类,然后我将使用这些文本在其他文本中找到相似之处,以在测试组中识别该作者。

我已经成功地进行了一些预测,但是我仍然得到了无法预测作者的结果。

我已经预先对文本进行了预处理,包括词干、标记、停用词、删除标点符号等,以使其更准确。

我不熟悉 OneClassSVM 参数的工作原理。我可以使用哪些参数来最适合我的问题,如何让我的模型在预测中更准确?

这是我到目前为止所拥有的:

0 投票
1 回答
2023 浏览

keras - 我可以在 keras 中构建一个类 cnn 吗?

我可以在只有一个类(类 - 0)的 keras 中构建一个 cnn,以便它可以预测给定日期是否属于这个类?提前致谢

编辑:感谢到目前为止的回答和评论。我的数据是来自健康结构的加速度时间序列,但我无法访问损坏的状态加速度信号,所以我只有 0 类的数据。

0 投票
0 回答
94 浏览

python - 如何在 PyTorch 中对我的图层的尺寸进行故障排除

我正在解决我的尺寸不正确的训练循环错误。当然这里和那里还有其他代码,但我认为这是最重要的。我觉得我在网上看到的任何地方都被告知不同的信息或不同的方式,我不知道如何至少让第一层正确,以便我可以从那里进行故障排除。我知道从一层出来的东西进入下一层,这些尺寸必须匹配。查看此链接https://towardsdatascience.com/pytorch-layer-dimensions-what-sizes-should-they-be-and-why-4265a41e01fd

我认为第一层应该是nn.Conv2d([batch_size, channels, height, width]) or nn.Conv2d([62,3,800,600])。然而,这给出了错误的想法 RuntimeError: Given groups=1, weight of size 3 62 800 600, expected input[62, 3, 800, 600] to have 62 channels, but got 3 channels instead。所以,我认为通道是第一个数字,特征的数量,然后是(H,W)。所以需要左右切换#s.......但是,得到错误

我如何理解这些需要的维度?

图片信息:

代码:

错误信息:

0 投票
0 回答
373 浏览

r - R One-Class SVM - 获得概率输出

在从 R 中的一类 svm 进行预测时,我试图找出概率输出。我知道这不被支持libsvm,我也知道这个问题已经在几年前被问,但是是当时不可用。我希望现在情况有所改变!此外,这个问题仍然有效,因为没有给出在 R 中实现的方法作为解决方案。

我找不到执行此操作的软件包,因此我自己尝试了两种方法来解决此问题:

  1. 获取决策值并通过使用 sigmoid 激活函数对其进行转换。这在本文中有所描述。请注意以下段落:

此外,SVM 还可以生成类概率作为输出而不是类标签。这可以通过 Platt 的后验概率 (Platt 2000) 的改进实现 (Lin, Lin, and Weng 2001) 来完成,其中将 sigmoid 函数拟合到二元 SVM 分类器的决策值 f,通过最小化来估计 A 和 B负对数似然函数

  1. 对预测输出使用逻辑回归函数并从中得出概率。这种方法首先由Platt描述,这里概述了一种方法

我的问题是,为了检查我的两个解决方案中的任何一个是否合理,我在一个二类 svm 问题上测试了这两种方法,因为e1071使用libsvm给出了二类问题的概率,因此这被视为“真相”。我发现我的两种方法都没有与libsvm.

这是三个图表,显示了结果概率与已知决策值的关系。 点击查看图片。抱歉,我的声誉似乎太低,无法嵌入令人沮丧的图像!我不确定社区中声誉较高的人是否可以编辑嵌入?

我认为我的 Platt 方法在理论上更合理,但从图中可以看出,逻辑回归似乎在某种程度上太好了,与任一分类相关的概率都非常接近 1(正数)和 0(负数)。

我的 Platt 实现代码是

运行时我收到以下警告

所以我显然做错了什么!我觉得修复这个功能可能是最好的方法,但我看不出我哪里出错了?我正在遵循我之前提到的方法,here

我得到如下决策值的 sigmoid

示例是使用 Iris 数据集完成的,完整代码在这里

0 投票
1 回答
178 浏览

r - R语言中的一类分类。生成混淆矩阵时我做错了什么?

我正在尝试理解和实现分类器 R 中的一个类基于多个 UCI 和其中之一(http://archive.ics.uci.edu/ml/datasets/Chronic_Kidney_Disease)。

尝试打印混淆矩阵时,您会给出错误“所有参数必须具有相同的长度”。

我究竟做错了什么?

以下是我正在使用的数据集的一些第一行:

错误日志:

0 投票
1 回答
131 浏览

python - H2O 是否支持一类分类?

我想为 Python 或 R 使用 H2O 包构建一个类分类 (OCC)模型,但我在互联网上找不到任何参考。所以我想知道,H2O 是否支持一类分类?如果是这样,这里有人可以帮我提供一个示例代码来使用Iris 数据集中的 Setosa 类,然后测试它以预测其他类吗?

0 投票
1 回答
348 浏览

r - 我无法在 R 中使用 One Class 生成分类的混淆矩阵

我正在尝试在 Kaggle(https://www.kaggle.com/uciml/breast-cancer-wisconsin-data)的数据集上理解和实现 R 中的一类分类。

尝试打印混淆矩阵时,您会给出错误:

Error in! All.equal (nrow (data), ncol (data)): invalid type argument

我究竟做错了什么?

0 投票
1 回答
142 浏览

tensorflow - 使用 TPU 进行二元与多类分类

我正在使用 EfficientNetB7 和 EfficientNetB0 模型来训练我的数据集,并且正面临一个重大异常。EfficientNetB7 在 40 个 epoch、lr_callback、4 个 nb_classes、imagenet 权重下给出了 96.4% 的准确率。

因此,我尝试通过使用 4 个 EfficientNetB0 模型来独立预测 4 个类别来提高准确度,但准确度停留在 50%。我尝试改变学习率,看看它是否停留在局部最小值,但准确度是一样的。

我还尝试了其他神经网络,例如 ResNet50,但准确率仍然停留在 50%。谁能告诉我我在哪里犯了错误。