小编Ken*_*ams的帖子

线性SVM模型的权重(在R中)?

使用kernlab我训练了一个模型,其代码如下:

my.model <- ksvm(result ~ f1+f2+f3, data=gold, kernel="vanilladot")
Run Code Online (Sandbox Code Playgroud)

由于它是一个线性模型,我更喜欢在运行时将得分计算为特征值的简单加权和,而不是使用完整的SVM机制.如何将模型转换为类似的东西(这里有一些组成的权重):

> c(.bias=-2.7, f1=0.35, f2=-0.24, f3=2.31)
.bias    f1    f2    f3 
-2.70  0.35 -0.24  2.31 
Run Code Online (Sandbox Code Playgroud)

.bias偏差项在哪里,其余是特征权重?

编辑:

这是一些示例数据.

gold <- structure(list(result = c(-1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), f1 = c(0, 0, 0, 0, 
0, 0, …
Run Code Online (Sandbox Code Playgroud)

r svm

5
推荐指数
2
解决办法
4855
查看次数

动态扩展 data.table

我知道当我data.table逐行构建时,最好预先分配空间:

library(data.table)
dt <- data.table(x=rep(0,1000), y=rep(0,1000))
for(i in 1L:1000L) {
    set(dt, i, 1L, runif(1))
    set(dt, i, 2L, rnorm(1))
}
Run Code Online (Sandbox Code Playgroud)

(事实上​​,如果我不预先分配,我会收到该代码的分段错误。)

如果我事先不知道行数,那么我需要动态增长,可能使用指数分配或其他方式。我是否需要自己管理这个过程,或者是否有任何现有的支持来data.table实现动态增长?

另外,当我完成附加行时,我可能会剩下一些分配的空间,有没有truncate()方法或类似的方法?还是我应该做dt <- dt[1:n,]

r data.table

5
推荐指数
0
解决办法
1025
查看次数

Spark:从REST服务创建RDD

Spark中是否有可用于将RDD绑定到REST服务的开箱即用功能?也就是说,调用Web服务并获取RDD.

或者是我自己调用其余服务并将结果集合转换为RDD的最简单方法?

谢谢.

apache-spark

5
推荐指数
1
解决办法
1385
查看次数

Apache Spark:处理RDD中的Option/Some/None

我正在映射HBase表,每个HBase行生成一个RDD元素.但是,有时行有坏数据(在解析代码中抛出NullPointerException),在这种情况下我只想跳过它.

我有我的初始映射器返回一个Option表示它返回0或1个元素,然后筛选Some,然后获取包含的值:

// myRDD is RDD[(ImmutableBytesWritable, Result)]
val output = myRDD.
  map( tuple => getData(tuple._2) ).
  filter( {case Some(y) => true; case None => false} ).
  map( _.get ).
  // ... more RDD operations with the good data

def getData(r: Result) = {
  val key = r.getRow
  var id = "(unk)"
  var x = -1L

  try {
    id = Bytes.toString(key, 0, 11)
    x = Long.MaxValue - Bytes.toLong(key, 11)
    // ... more code that might throw exceptions …
Run Code Online (Sandbox Code Playgroud)

scala exception apache-spark scala-option

5
推荐指数
2
解决办法
6975
查看次数

将Git存储库发布到SVN

我和我的小团队在Git工作,而较大的团队使用Subversion.我想安排一个cron作业,HEAD每小时将我们的存储库当前发布到SVN 仓库中的某个目录中.

我以为我已经想到了这一点,但我之前写下的食谱现在似乎没有起作用:

git clone ssh://me@gitserver/git-repo/Projects/ProjX px2
cd px2
svn mkdir --parents http://me@svnserver/svn/repo/play/me/fromgit/ProjX
git svn init -s http://me@svnserver/svn/repo/play/me/fromgit/ProjX
git svn fetch
git rebase trunk master
git svn dcommit
Run Code Online (Sandbox Code Playgroud)

这是我尝试时会发生的事情:

% git clone ssh://me@gitserver/git-repo/Projects/ProjX px2
Cloning into 'ProjX'...
...

% cd px2

% svn mkdir --parents http://me@svnserver/svn/repo/play/me/fromgit/ProjX
Committed revision 123.

% git svn init -s http://me@svnserver/svn/repo/play/me/fromgit/ProjX
Using higher level of URL: http://me@svnserver/svn/repo/play/me/fromgit/ProjX => http://me@svnserver/svn/repo

% git svn fetch
W: Ignoring error from SVN, path probably does not exist: (160013): …
Run Code Online (Sandbox Code Playgroud)

svn git mirroring

4
推荐指数
1
解决办法
1957
查看次数

Scala非连续子阵列

我是Scala的新手.我看到有一个slice可以返回连续切片的Arrays方法,如下所示:

scala> "zero|one|two|three|four|five".split("\\|").slice(2,5)
res3: Array[String] = Array(two, three, four)
Run Code Online (Sandbox Code Playgroud)

是否有某种语法糖用于采取任意的,非连续的,非上升的子阵列?就像是:

scala> "zero|one|two|three|four|five".split("\\|").fictionalMethod(4,1,5)
res3: Array[String] = Array(four, one, five)
Run Code Online (Sandbox Code Playgroud)

arrays scala slice

4
推荐指数
1
解决办法
250
查看次数

通过自制软件安装 R 3.x

R公式https://github.com/Homebrew/homebrew-core/commits/master/Formula/r.rb最近从版本3.6.3升级到4.0。版本 4 中有一些向后不兼容的更改,因此我想在我的系统上安装 3.x 和 4.x 进行测试。

用自制程序可以实现吗?一个简单的尝试brew install r@3.6就给了我No available formula with the name "r@3.6"

(旁白:从 3.6 到 4.0 的升级在我的系统上相当偷偷地发生,我做了一个brew upgrade dvc升级了一些依赖项 [ Installing dependencies for dvc: c-ares, protobuf, grpc, gcc, openblas, sqlite, python@3.8, numpy, zstd and apache-arrow],然后是大量的依赖项:

==> Upgrading 42 dependents:
ansible 2.9.6_1 -> 2.9.10, ansible 2.9.6_1 -> 2.9.10, awscli 2.0.7 -> 2.0.28_1,
 awscli 2.0.7 -> 2.0.28_1, cython 0.29.10 -> 0.29.20, cassandra 3.11.4 -> 3.11.6_2,
 ffmpeg 4.2.2_2 -> 4.3_2, …
Run Code Online (Sandbox Code Playgroud)

homebrew r version

4
推荐指数
1
解决办法
1581
查看次数

Git:检查分支是否严格是另一个分支的后代

我看到了一些关于“如何检查分支是否X已重新基于Y”的问题,但我还没有找到具有我想要的特定风味的分支。

我想检查是否X是“简单的分支下降Y”。X严格来说,只允许在和 之间使用这种模式,而不是在和Y之间使用这种模式:ZY

换句话说,如果分支中的每个提交都X具有Y作为祖先(或者等于Y或是其中一个Y祖先)——而不仅仅是 的尖端是否具有作为X祖先Y

这对于帮助人们实现基于 rebase 的合并模式是可取的,其中X是功能分支,Y是主要开发分支。(如果有人真的知道他们在做什么,并且非严格分支是他们真正想要的,我们可以轻松地授予特殊豁免并允许合并。但我们希望他们至少意识到他们正在这样做,这一直没有发生。)

请注意,这与“可以合并”不同--ff-onlygit merge --ff-only会很高兴地更新Y以指向XifY是 的后代X,即使 的某些祖先X既不是 的后代也不是祖先Y

我知道我可以遍历所有祖先X并检查是否Y是每个祖先的祖先(当我到达Y自身时停止,并确保没有多个父母),但我想知道是否有更好的内置东西到我错过的 Git。

附录:

pull正如 @TTT 指出的,另一个常见的情况是有人在 之前使用 ing而push不是执行 …

git git-merge

4
推荐指数
1
解决办法
240
查看次数

计算组合而不破坏类型

我想知道是否有人知道如何以比我想象的更好的方式计算如下组合.

> library(lubridate)
> df <- data.frame(x=sample(now()+hours(1:3), 100, T), y=sample(1:4, 100, T))
> with(df, as.data.frame(table(x, y)))
                     x y Freq
1  2012-06-15 00:10:18 1    5
2  2012-06-15 01:10:18 1    9
3  2012-06-15 02:10:18 1    8
4  2012-06-15 00:10:18 2    9
5  2012-06-15 01:10:18 2   10
6  2012-06-15 02:10:18 2   12
7  2012-06-15 00:10:18 3    7
8  2012-06-15 01:10:18 3    9
9  2012-06-15 02:10:18 3    6
10 2012-06-15 00:10:18 4    5
11 2012-06-15 01:10:18 4   14
12 2012-06-15 02:10:18 4    6
Run Code Online (Sandbox Code Playgroud)

我喜欢这种格式,但不幸的是,当我们跑 …

combinations r factors data.table

3
推荐指数
1
解决办法
203
查看次数

Pandas DataFrame 的空副本

我正在寻找一种有效的习惯用法来创建一个新的 Pandas DataFrame,它的列和类型与现有的Pandas相同DataFrame,但没有行。以下工作,但可能比它可能效率低得多,因为它必须创建一个长索引结构,然后为每一行评估它。我假设这O(n)是行数,我想找到一个O(1)解决方案(这看起来还不错)。

out = df.loc[np.repeat(False, df.shape[0])].copy()
Run Code Online (Sandbox Code Playgroud)

copy()在那里,因为老实说,我不知道在什么情况下我会得到副本或查看原件。

为了在 R 中进行比较,一个很好的习惯用法是 do df[0,],因为没有第零行。 df[NULL,]也有效。

indexing dataframe pandas

3
推荐指数
1
解决办法
369
查看次数