C#中是否有任何优化库?
我必须在excel中优化复杂的方程,因为这个方程有一些系数.我必须根据我定义的适应度函数对它们进行优化.所以我想知道是否有这样一个库可以满足我的需求?
我正在尝试使用下面的代码复制我的数据框中的行。但是,我发现它很慢。
duprow = df[1,]
for(i in 1:2000)
{
print(i)
df = rbind(df,duprow)
}
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法?
我需要在我的Java程序中解决非线性最小化(N个未知数的最小残差平方)问题.解决这些问题的常用方法是Levenberg-Marquardt算法.我有一些问题
有没有人对不同的LM实现有经验?LM的味道略有不同,我听说算法的确切实现对其数值稳定性有重要影响.我的功能非常好,所以这可能不是问题,但当然我想选择一个更好的选择.以下是我发现的一些替代方案:
FPL统计小组的非线性优化Java包.这包括经典Fortran MINPACK例程的Java转换.
JLAPACK,另一个Fortran翻译.
一些Python实现.纯Python很好,因为它可以用jythonc编译成Java.
是否有任何常用的启发式方法来进行LM所需的初始猜测?
在我的应用程序中,我需要对解决方案设置一些约束,但幸运的是它们很简单:我只是要求解决方案(为了成为物理解决方案)是非负的.略微负面的解决方案是数据中测量不准确的结果,显然应该为零.我正在考虑使用"常规"LM但是迭代以便如果一些未知数变为负数,我将其设置为零并从中解决其余部分.真正的数学家可能会嘲笑我,但你认为这可行吗?
感谢您的任何意见!
更新:这不是火箭科学,要解决的参数数量(N)最多为5,而数据集只有不足以使解决成为可能,所以我相信Java足以解决这个问题.而且我相信聪明的应用数学家已经多次解决了这个问题,所以我只是在寻找一些现成的解决方案,而不是自己做饭.例如,如果它是纯Python,Scipy.optimize.minpack.leastsq可能会没问题.
java math numerical mathematical-optimization scientific-computing
遗传算法是最有效的方法来优化隐藏节点的数量和在人工神经网络上完成的训练量吗?
我正在使用Matlab中的NNToolbox编写神经网络.我对优化技术的任何其他建议持开放态度,但我最熟悉GA.
matlab mathematical-optimization neural-network genetic-algorithm
zoo::rollmean是一个有用的函数,它返回时间序列的滚动均值; 对于x长度n和窗口大小k的向量,它返回向量c(mean(x[1:k]), mean(x[2:(k+1)]), ..., mean(x[(n-k+1):n])).
我注意到我正在开发的一些代码似乎运行缓慢,所以我使用Rcpp包和一个简单的for循环编写了我自己的版本:
library(Rcpp)
cppFunction("NumericVector rmRcpp(NumericVector dat, const int window) {
const int n = dat.size();
NumericVector ret(n-window+1);
double summed = 0.0;
for (int i=0; i < window; ++i) {
summed += dat[i];
}
ret[0] = summed / window;
for (int i=window; i < n; ++i) {
summed += dat[i] - dat[i-window];
ret[i-window+1] = summed / window;
}
return ret;
}")
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,这个版本的函数比zoo::rollmean函数快得多:
# Time series with …Run Code Online (Sandbox Code Playgroud) 我试图找到函数的局部最小值,并且参数具有固定的总和.例如,
Fx = 10 - 5x1 + 2x2 - x3
条件如下,
x1 + x2 + x3 = 15
(x1,x2,x3)> = 0
其中x1,x2和x3的总和具有已知值,并且它们都大于零.在R中,它看起来像这样,
Fx = function(x) {10 - (5*x[1] + 2*x[2] + x[3])}
opt = optim(c(1,1,1), Fx, method = "L-BFGS-B", lower=c(0,0,0), upper=c(15,15,15))
Run Code Online (Sandbox Code Playgroud)
我还尝试使用constrOptim的不等式来强制求和.我仍然认为这可能是一个看似合理的工作,但我无法使其发挥作用.这是真实问题的简化示例,但任何帮助都将非常感激.
我想对字段进行累积求和,但只要遇到0就重置聚合值.
这是我想要的一个例子:
data.frame(campaign = letters[1:4] ,
date=c("jan","feb","march","april"),
b = c(1,0,1,1) ,
whatiwant = c(1,0,1,2)
)
campaign date b whatiwant
1 a jan 1 1
2 b feb 0 0
3 c march 1 1
4 d april 1 2
Run Code Online (Sandbox Code Playgroud) 我正在处理一个包含10000个数据点和100个变量的数据集.不幸的是,我所拥有的变量没有以良好的方式描述数据.我使用了PCA分析prcomp(),前3台PC似乎占据了数据的大部分可变性.据我了解,主要成分是不同变量的组合; 因此它具有对应于每个数据点的特定值,并且可以被视为新变量.我能将这些主要组件作为3个新变量添加到我的数据中吗?我需要它们进行进一步分析.
可重现的数据集:
set.seed(144)
x <- data.frame(matrix(rnorm(2^10*12), ncol=12))
y <- prcomp(formula = ~., data=x, center = TRUE, scale = TRUE, na.action = na.omit)
Run Code Online (Sandbox Code Playgroud) 我有一个mygraph有10,000个节点和~145,000个边的igraph对象,我需要从这个图中创建一些子图,但是它们的大小不同.我需要的是从确定的大小(从5个节点到500个节点)创建子图,其中所有节点都连接在每个子图中.我需要为每个大小创建~1,000个子图(即,大小为5的1000个子图,大小为6的1000个,依此类推),然后根据不同的节点属性为每个图计算一些值.我有一些代码,但需要很长时间才能进行所有计算.我想在使用该graphlets功能以获得不同的大小,但每次我在计算机上运行它都会因内存问题而崩溃.
这是我正在使用的代码:
第一步是创建一个函数来创建不同大小的子图并进行所需的计算.
random_network<-function(size,G){
score_fun<-function(g){
subsum <- sum(V(g)$weight*V(g)$RWRNodeweight)/sqrt(sum(V(g)$RWRNodeweight^2))
subsum
}
genes.idx <- V(G)$name
perm <- c()
while(length(perm)<1000){
seed<-sample(genes.idx,1)
while( length(seed)<size ){
tmp.neigh <- V(G)[unlist(neighborhood(G,1,seed))]$name
tmp.neigh <- setdiff(tmp.neigh, seed)
if( length(tmp.neigh)>0 )
seed<-c(seed,sample(tmp.neigh,1)) else break
}
if( length(seed)==size )
perm <- c(perm,score_fun(induced.subgraph(G,seed)))
}
perm
}
Run Code Online (Sandbox Code Playgroud)
第二步是将函数应用于实际图形
### generate some example data
library(igraph)
my_graph <- erdos.renyi.game(10000, 0.0003)
V(my_graph)$name <- 1:vcount(my_graph)
V(my_graph)$weight <- rnorm(10000)
V(my_graph)$RWRNodeweight <- runif(10000, min=0, max=0.05)
### Run the code to get the subgraphs from different …Run Code Online (Sandbox Code Playgroud) 我需要浏览网页上的所有页面.所有这些页面的左上角都有一个下拉框,包含所有可用的城市.我想通过选择此下拉框中的每个位置来访问每个页面.下拉框有一个滚动条,当我想选择它下面的选项时,它会给我异常消息:
Message: Element is not currently visible and so may not be interacted with
Stacktrace:
at fxdriver.preconditions.visible (file:///tmp/tmpHWLMyH/extensions/fxdriver@googlecode.com/components/command-processor.js:9981)
at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmpHWLMyH/extensions/fxdriver@googlecode.com/components/command-processor.js:12517)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpHWLMyH/extensions/fxdriver@googlecode.com/components/command-processor.js:12534)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpHWLMyH/extensions/fxdriver@googlecode.com/components/command-processor.js:12539)
at DelayedCommand.prototype.execute/< (file:///tmp/tmpHWLMyH/extensions/fxdriver@googlecode.com/components/command-processor.js:12481)
Run Code Online (Sandbox Code Playgroud)
下面是代码:
#!/bin/env/python
# -*- coding: utf-8 -*-
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
def get_browser():
return webdriver.Firefox()
main_page_url = "http://example.com/"
basic_url = 'http://example.com/ogloszenia-kobiet.html'
def …Run Code Online (Sandbox Code Playgroud)