小编ale*_*lex的帖子

randomForest和long向量的问题

我在一个包含8个数字列(预测变量)和1个因子(结果)的数据集上运行随机林.数据集中有1.2M行.当我做:

randomForest(outcome.f ~ a + b + c + d + e + f + g + h,data=mdata)),我收到一个错误:

"Error in randomForest.default(m, y, ...) : 
 long vectors (argument 26) are not supported in .Fortran"
Run Code Online (Sandbox Code Playgroud)

有什么方法可以防止这种情况吗?我不明白为什么包(显然)试图分配长度为2 ^ 31-1的向量.我使用的是Mac OS X 10.9.2,带有Intel Core i7(如果架构很重要).

会话信息

R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] randomForest_4.6-7

loaded via a namespace (and not attached):
[1] tools_3.1.0
Run Code Online (Sandbox Code Playgroud)

r random-forest

12
推荐指数
1
解决办法
4887
查看次数

减少 React 表重新渲染

我有一个包含两列的表格,每一列都是可编辑的。该表还包括添加新条目的能力。我遇到的问题是,每当编辑单行时,都会重新渲染每一行。对于较大的表,这会在编辑单行时导致明显的按键延迟。关于如何防止这种情况的任何想法?

我无法在“小”示例中复制性能问题,但https://codesandbox.io/s/zen-williams-r8pii?file=/src/App.js是基本功能。我试过在几个地方删除 React.memo 无济于事(我是这方面的新手)

谢谢你的帮助!

optimization rendering reactjs

9
推荐指数
1
解决办法
1446
查看次数

数学问题的代码生成

我想编写一个程序,它接受一个数学(优化)问题的描述,解析它,并生成解决它的紧凑,高效的C代码.我在python中有一个更小,更具体的问题的黑客攻击解决方案,但它很难看,只是依赖于模板化的C代码 - 所以我有一堆乱七八糟的字符串看起来像

for (k = 0; k <= %s; k += %s) a[k] = v[k]/%s * a[i];

然后有一堆复杂的条件逻辑,在填写正确的%s值之后,上面的某行会被写入solve_problem.c.

它实际上变得更加复杂,因为通常问题是通过具有某种结构的矩阵等参数化的,并且上述方法虽然可行,但在其自身重量下开始崩溃.

所以我想我正在寻找的是关于如何在代码中表示这些问题的高级建议,或者更确切地说是其他项目已经解决的例子.有人告诉我使用OCaml或F#并查看FFTW,但更简单的东西将被赞赏.

我很抱歉这么说不好,但我甚至难以表达自己正在寻找的东西,我认为这是问题的根源.

math f# ocaml code-generation

6
推荐指数
1
解决办法
584
查看次数

测试短语以查看它们是否相互匹配

我有大量短语(〜几百万),每个短语少于六七个单词,大多数少于五个,我想看看他们是否"短语匹配".这是一个搜索引擎营销术语 - 基本上,如果A包含在B中,则短语匹配B.现在,它们存储在db(postgres)中,我正在执行regexes的连接(请参阅此问题).即使在尝试了所有基本的优化技巧(索引等)并尝试提供的建议之后,它仍然运行缓慢.
有更简单的方法吗?我不反对非数据库解决方案.有没有理由认为正则表达式是矫枉过正的,并且比不同的解决方案占用时间更长?

sql

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

Numpy内存不足

我有两个变量,x和y.x是

type(x) = <class 'numpy.matrixlib.defmatrix.matrix'>

type(y) = <type 'numpy.ndarray'>

x.shape = (869250, 1)

y.shape = (869250,)

x + y给出了一个MemoryError,尽管事实上我有大约5 GB的空闲时间.这似乎很奇怪 - 有没有人知道可能会发生什么?

这是64位Linux上的numpy 1.5.1,python 2.7.

python memory numpy

2
推荐指数
1
解决办法
1144
查看次数

创建大型固定线程池的后果

我正在研究标准服务器应用程序.每个请求的处理分为几个阶段(第二阶段要求第一阶段完成,依此类推).现在,其中一个阶段需要相当长的时间,但本身可以分解为几十个左右的任务,这些任务不依赖于彼此,因此可以并行化.我想添加一个线程池SlowStageService,并想知道如何最好的大小.线程池最好在大多数时间内至少有一个空位,这意味着它必须以比服务器接收请求更快或更快的速度处理任务; 这会产生一个合理的线程池大小下限.但是,我想对尺寸进行慷慨,因为计算中涉及的许多数字可能会发生变化.

所以我的问题是:让我的游泳池太大(比如3或4)并且有很多闲置线程的缺点是什么?我知道它浪费了一些资源,但它实际上并没有保留任何CPU,因此不能用于其他请求,对吧?人们通常会有多少松懈?假设我计算了6个线程是我需要的最小值; 在中等载荷的24芯盒子上说12可以安全吗?

正如我写的那样,听起来我可能需要的是ThreadPoolExecutor一个相当窄(3或4x)的范围?

java concurrency multithreading threadpool

2
推荐指数
1
解决办法
786
查看次数