问题标签 [kernlab]

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 回答
739 浏览

r - 使用数据拆分为 KNN 找到最佳 k 值

我正在尝试对数据拆分(训练集、验证集和测试集)进行分配,以找到最合适的分类器——在本例中为 k,因为我使用的是 k-最近邻(kknn 函数,kernlab 的一部分)包裹)。但是,当我使用下面的初始代码来随机化数据拆分过程并运行 for 循环以确定最准确的 k 值时,每次运行循环时都没有得到一致的 k 值。数字到处都是。我是否正确分区了我的数据?我在上一篇文章中因为没有生成最小可重现示例 (MRE) 而得到纠正,所以这是我尝试提供 MRE 代码的尝试:

在将我的 unlist() 函数应用于列表以获得矩阵后,我使用 which() 和 max() 函数以最大精度确定 k 值。每次循环运行时,我都会得到各种不同的 k 值,每个值都与循环的前一次运行不同。当我为我的测试集(data_test)应用相同类型的循环时,我遇到了同样的问题。谁能帮我找到一个解决方案,以磨练特定或一组特定一致的 k 值?

0 投票
1 回答
181 浏览

r - R:ksvm 函数 - 错误:对象不是矩阵

我似乎在使用 ksvm 函数时遇到了错误。每次我尝试运行以下代码时,我都会收到一条错误消息

我问过同事,但似乎没有人能够复制这一点(无论出于何种原因)。任何援助将不胜感激。请看下面的代码:

注意:我已经尝试过使用 as.matrix。我犯了同样的错误

0 投票
0 回答
44 浏览

r - 使用 R 中的 kernlab 获取概率 - ksvm 与预先计算的内核矩阵和 C 分类

我试图在我的测试数据集 test_k 中获得每个观察的概率。我正在使用预先计算的内核矩阵和 C 分类。“C-svc”应该让我得到一个概率模型。但是,我收到以下错误代码:错误:$ 运算符对原子向量无效。为什么?为什么源代码需要 oldco != newncols?源代码中的对象不是我的ksvm.model吗?

它在这里工作?他在那里做什么 iris[c(3, 10, 56, 68,107, 120), -5]?,为什么需要这个?

0 投票
1 回答
160 浏览

r - 用于时间序列预测的高斯过程回归不确定性估计

我有一个 2043 小时的时间序列。我的目标是通过高斯过程回归 (GPR) 模型训练和测试预测模型,包括其不确定性估计。我在应用 R 包caret + kernlab::train( )模型的联合的准时预测方面取得了很好的结果。我如何使用这些 R 包估计它的预测区间?

我的 .csv 数据可通过三个 Dropbox 链接获得:

训练数据

测试数据

完整的时间序列data.frame(时间、训练和测试数据)

目的是使用“ST3”和“ST4_lag1”回归量预测“ST4_lead1”。它们是我们在 data.frames 上的列。

从现在开始,我将展示我的代码。第一个窗口代码对我们双方都是通用的。您可以完全运行它。

我们已经完成了常见的培训测试过程以及获得测试结果。

在第二个窗口代码中,我们将从预测对象中提取一些测试结果。顺便说一句,我希望预测会为我们带来所需的预测间隔,我需要帮助。

它为我们带来了测试结果图,如下所示。实线是观察到的数据,而红点是预测的估计值。

在此处输入图像描述

最后,在第三个窗口代码中,我们只计算回归的指标:

如我们所见,对于训练过程,R² = 0.76 和 MAE = 1.06;而对于测试对象,R² = 0.80 和 MAE = 1.36。这些对我们来说已经足够好了。

在 GPR 中,预测倒数基于每个预测点周围的高斯分布,由Rasmussen 和 Williams (2006)提供。我曾通过其他三种方式尝试过 GPR:仅使用kernlab::train( )tgp::bgp( )gplmr::train( )。这最后一个是由duckmayr亲切地建议的。对于所有这些,我找到了预测区间。然而,“ caret + kernlab::train() ”的联合使用(如我的代码所示)返回了更好的准时预测。我不知道为什么。

正如我在第一个和第二个窗口代码之间提到的,我可能期望从“预测”对象中,我们可以从每个预测点提取平均数据并添加(或减去)其标准偏差的 2 倍,允许y = average + - 2*标准差。但是,我不知道如何提取这个平均值,甚至是每个预测点的标准偏差。

简而言之,如何使用 caret + kernlab 包的联合使用来获得高斯过程回归的预测区间?

0 投票
0 回答
53 浏览

r - 如何在 R 中使用 Workflow 和 Caret 包进行并行计算

我知道我可以在 R 中进行并行计算,但是我无法以与我的建模方法配合使用的方式对其进行设置。

这是我设置负载/设置并行计算的方式

稍后在我的降价书中,我有以下代码来创建、调整和拟合使用多项式内核的支持向量机的工作流。

我的问题是如何为以下内容启用并行计算?

0 投票
1 回答
55 浏览

r - 让基于kernlab函数的程序运行得更快

对于一个范围,我想确定分布变化发生在哪里以及该值在哪里是最大值目前,我正在对范围内的每个值使用内核最大差异测试,并在该值之前和之后取 200 个值,然后提取 mmd 统计信息最大的位置。但这在 R 中计算的计算量非常大。请注意,我使用的是 kernlab 来计算 kmmd。我想知道是否有办法更快地做到这一点?或者如果您有任何建议。任何帮助,将不胜感激。

我的代码是:

0 投票
0 回答
57 浏览

r - Tidymodels svm_rbf kernlab:达到最大迭代次数

我正在测试不同数据集大小对 SVM 分类器准确性的影响。我正在使用 tidymodelssvm_rbfkernlab。当数据集集达到 5 级时,我maximum iterations reached在大约一半的运行中收到消息,然后这将变成 4-2 之间的所有消息。这些是我的数据集大小:

数据集大小表

这是调整每个级别 100 次的输出:

在此处输入图像描述 不幸的是,这不是我可以提供可重现示例的东西,但这是我正在使用的代码:

我的问题是;达到最大迭代次数的事实是否是分类的原因,基本上称所有内容为“否”?还是可能有其他原因?

不管怎样,有什么办法可以解决?

0 投票
1 回答
53 浏览

r - Kernlab:需要 TRUE/FALSE 的缺失值?

我想使用库中的ksvm函数执行样本分类kernlab

if ((type(ret) == "C-svc" || type(ret) == "nu-svc" || type(ret) == : 需要 TRUE/FALSE 的缺失值另外:警告消息: In .local(x, ...) : 强制引入的 NA

0 投票
0 回答
17 浏览

r - 使用 kernlabs lssvm 生成预测

我看过一些与我有类似问题的帖子。与其他帖子不同,我的帖子带有重现错误的代表。我一直在使用 kernlab 生成带有拉普拉斯内核的最小二乘 SVM 模型。因变量是二元的,所有自变量都是分类的。我可以拟合模型,lssvm并且可以用来predict为所有数据生成预测。但是,如果我尝试仅预测数据的一个子集,例如,使用head. 任何帮助将不胜感激。

重复:

reprex 包于 2021-08-16 创建 (v2.0.0 )

0 投票
0 回答
50 浏览

r - 参数 C 是否无法针对“nu-svr”进行优化,还是错误?

我正在尝试使用该kernlab软件包优化 mlr3 生态系统中的 SVR 模型,但出现以下错误:

只有满足以下条件'type <U+2208> {eps-svr, eps-bsvr}'时才能设置参数'C'。相反,当前参数值为:type=nu-svr。

我发现成本参数 C 无法针对“nu-svr”类型进行优化,这很奇怪。

这是我的代码的一部分: