- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下 R 配置:
操作系统:LinuxR 版本 3.0.1 (2013-05-16)rmr2 版本 2.2.1rhdfs 版本 1.0.6hadoop 版本 1.2.0
如何使用带 rmr2 包的 hadoop 转换 svm 模型的结果?所以我可以像往常一样使用构建的模型:
predict(svm1, "new data")
我有以下代码:
# set eviremonet variables
Sys.setenv(HADOOP_CMD="~/Downloads/hadoop-1.2.0/bin/hadoop")
Sys.setenv(HADOOP_HOME="~/Downloads/hadoop-1.2.0/")
# start hadoop
# load librarys
library(rmr2)
library(rhdfs)
library(e1071)
# load sample data
data(iris)
# init hdfs
hdfs.init()
# push data to hdfs
iris.dfs <- to.dfs(iris)
# define map function
iris.map <- function(k, v)
{
svm(v$Species ~ ., data=v)
}
# rum mar job
iris.svm <- mapreduce(input=iris.dfs, map=iris.map)
# get result back
iris.res <- from.dfs(iris.svm)
svm1 <- svm(iris$Species ~ ., data=iris)
class(iris.res)
class(svm1)
两个类的结果如下:
> class(iris.res)
[1] "list"
> class(svm1)
[1] "svm.formula" "svm"
> str(svm1)
List of 30
$ call : language svm(formula = iris$Species ~ ., data = iris)
$ type : num 0
$ kernel : num 2
$ cost : num 1
$ degree : num 3
$ gamma : num 0,25
$ coef0 : num 0
$ nu : num 0,5
$ epsilon : num 0,1
$ sparse : logi FALSE
$ scaled : logi [1:4] TRUE TRUE TRUE TRUE
$ x.scale :List of 2
..$ scaled:center: Named num [1:4] 5,84 3,06 3,76 1,20
.. ..- attr(*, "names")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
..$ scaled:scale : Named num [1:4] 0,828 0,436 1,765 0,762
.. ..- attr(*, "names")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
$ y.scale : NULL
$ nclasses : int 3
$ levels : chr [1:3] "setosa" "versicolor" "virginica"
$ tot.nSV : int 51
$ nSV : int [1:3] 8 22 21
$ labels : int [1:3] 1 2 3
$ SV : num [1:51, 1:4] -1,743 -1,864 -0,173 -0,535 -1,501 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:51] "9" "14" "16" "21" ...
.. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
$ index : int [1:51] 9 14 16 21 23 24 26 42 51 53 ...
$ rho : num [1:3] -0,0203 0,1312 -0,0629
$ compprob : logi FALSE
$ probA : NULL
$ probB : NULL
$ sigma : NULL
$ coefs : num [1:51, 1:2] 0,0891 0,0000 0,8652 0,0000 0,0000 ...
$ na.action : NULL
$ fitted : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "names")= chr [1:150] "1" "2" "3" "4" ...
$ decision.values: num [1:150, 1:3] 1,20 1,06 1,18 1,11 1,19 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:150] "1" "2" "3" "4" ...
.. ..$ : chr [1:3] "setosa/versicolor" "setosa/virginica" "versicolor/virginica"
$ terms :Classes 'terms', 'formula' length 3 iris$Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
.. ..- attr(*, "variables")= language list(iris$Species, Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)
.. ..- attr(*, "factors")= int [1:5, 1:4] 0 1 0 0 0 0 0 1 0 0 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:5] "iris$Species" "Sepal.Length" "Sepal.Width" "Petal.Length" ...
.. .. .. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
.. ..- attr(*, "term.labels")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
.. ..- attr(*, "order")= int [1:4] 1 1 1 1
.. ..- attr(*, "intercept")= num 0
.. ..- attr(*, "response")= int 1
.. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
.. ..- attr(*, "predvars")= language list(iris$Species, Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)
.. ..- attr(*, "dataClasses")= Named chr [1:5] "factor" "numeric" "numeric" "numeric" ...
.. .. ..- attr(*, "names")= chr [1:5] "iris$Species" "Sepal.Length" "Sepal.Width" "Petal.Length" ...
- attr(*, "class")= chr [1:2] "svm.formula" "svm"
> str(iris.res)
List of 2
$ key: NULL
$ val:List of 30
..$ call : language svm(formula = v$Species ~ ., data = v)
..$ type : num 0
..$ kernel : num 2
..$ cost : num 1
..$ degree : num 3
..$ gamma : num 0,25
..$ coef0 : num 0
..$ nu : num 0,5
..$ epsilon : num 0,1
..$ sparse : logi FALSE
..$ scaled : logi [1:4] TRUE TRUE TRUE TRUE
..$ x.scale :List of 2
.. ..$ scaled:center: Named num [1:4] 5,84 3,06 3,76 1,20
.. .. ..- attr(*, "names")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
.. ..$ scaled:scale : Named num [1:4] 0,828 0,436 1,765 0,762
.. .. ..- attr(*, "names")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
..$ y.scale : NULL
..$ nclasses : int 3
..$ levels : chr [1:3] "setosa" "versicolor" "virginica"
..$ tot.nSV : int 51
..$ nSV : int [1:3] 8 22 21
..$ labels : int [1:3] 1 2 3
..$ SV : num [1:51, 1:4] -1,743 -1,864 -0,173 -0,535 -1,501 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:51] "9" "14" "16" "21" ...
.. .. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
..$ index : int [1:51] 9 14 16 21 23 24 26 42 51 53 ...
..$ rho : num [1:3] -0,0203 0,1312 -0,0629
..$ compprob : logi FALSE
..$ probA : NULL
..$ probB : NULL
..$ sigma : NULL
..$ coefs : num [1:51, 1:2] 0,0891 0,0000 0,8652 0,0000 0,0000 ...
..$ na.action : NULL
..$ fitted : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
.. ..- attr(*, "names")= chr [1:150] "1" "2" "3" "4" ...
..$ decision.values: num [1:150, 1:3] 1,20 1,06 1,18 1,11 1,19 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:150] "1" "2" "3" "4" ...
.. .. ..$ : chr [1:3] "setosa/versicolor" "setosa/virginica" "versicolor/virginica"
..$ terms :Classes 'terms', 'formula' length 3 v$Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
.. .. ..- attr(*, "variables")= language list(v$Species, Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)
.. .. ..- attr(*, "factors")= int [1:5, 1:4] 0 1 0 0 0 0 0 1 0 0 ...
.. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. ..$ : chr [1:5] "v$Species" "Sepal.Length" "Sepal.Width" "Petal.Length" ...
.. .. .. .. ..$ : chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
.. .. ..- attr(*, "term.labels")= chr [1:4] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
.. .. ..- attr(*, "order")= int [1:4] 1 1 1 1
.. .. ..- attr(*, "intercept")= num 0
.. .. ..- attr(*, "response")= int 1
.. .. ..- attr(*, ".Environment")=<environment: 0xb639820>
.. .. ..- attr(*, "predvars")= language list(v$Species, Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)
.. .. ..- attr(*, "dataClasses")= Named chr [1:5] "factor" "numeric" "numeric" "numeric" ...
.. .. .. ..- attr(*, "names")= chr [1:5] "v$Species" "Sepal.Length" "Sepal.Width" "Petal.Length" ...
但是如何将结果列表转换为与通常的 smv 调用相同的类?
最佳答案
只需将 svm(v$Species ~ ., data=v)
包装在 map 函数中的 list
调用中,如 list(svm(v$物种 ~ ., data=v))
. map 只能返回列表、矩阵、向量和数据框。如果你返回一个模型(显然,不是我故意实现的)它会被强制到一个列表中。也许只要返回值不是受支持的四个之一,我就可以防御性地这样做,只需在它周围打一个 list
,但我不想尝试太聪明并做出太多猜测。您的方法的另一个问题是 map 函数将在数据集的任意子集上调用(对于较大的数据集),因此您将在输出中获得模型列表(好吧,在您调用输出值之后) .所以现在你有多个支持向量机,你会怎么做,你把它当作一个整体?但是映射阶段的子集是任意的,它们没有任何统计属性,比如被随机化。在我看来,您认为 rmr 具有使 svm 函数并行分布的超能力,但事实并非如此,它只会在不同数据 block 的集群上并行调用它。在一个小示例中,只有一个 block ,但这是具有欺骗性的。尝试 rmr.options(keyval.length = 3)
看看非常小的 block 会发生什么(不适用于生产)。一种不同的方法是在您可以在单台机器上加载的最大样本上构建模型,然后并行运行预测。这在学习阶段当然没有那么可扩展,但我知道大型初创公司就是这样做的。看看 Uri Laserson 在 cloudera 博客上的重采样文章,我认为它会给你一些好的想法。最后,我们在 Google 群组上为 rmr 和相关软件包提供了专门的论坛,非常欢迎您加入我们的社区。
关于R - Hadoop - rmr2 - SVM 模型 - 将结果 "list"类转换为原始类 "svm.formula" "svm",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17731261/
如果我在 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
我是一名优秀的程序员,十分优秀!