小编use*_*842的帖子

OpenMP - 在每个循环迭代中启动一个新线程

我无法调整自己的想法以适应OpenMP的做事方式.

粗略地说,我想要的是:

for(int i=0; i<50; i++)
{
   doStuff();
   thread t;
   t.start(callback(i)); //each time around the loop create a thread to execute callback
}
Run Code Online (Sandbox Code Playgroud)

我想我知道如何在c ++ 11中完成这项工作,但我需要能够用OpenMP完成类似的工作.

c++ openmp

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

Python中具有自定义距离函数的聚类算法

我有一个聚类问题,我认为需要直观的距离函数。每个实例都有一个 x、y 坐标,但也有一组描述它的属性(每个实例的数量不同)。理想情况下,可以将pythonobjects(类的实例)传递给它并根据它们的内容任意比较它们。

我想将距离表示为 x、y 值之间的欧几里得距离的加权和,以及类似 jaccard 指数的东西,以测量其他属性的集合重叠。就像是:

dist = (euclidean(x1, y1, x2, y2) * 0.6) + (1-jaccard(attrs1, attrs2) * 0.4)
Run Code Online (Sandbox Code Playgroud)

我发现的大多数聚类算法和实现都将实例特征转换为数字。例如,在 sklearn 中使用 dbscan,要执行我的距离函数,我需要以某种方式将数字转换回原始表示。

如果可以使用可以以任意方式比较实例的距离函数进行聚类,那就太好了。例如,想象一个欧几里德距离函数,如果对象与另一个非空间特征匹配,它会评估对象更近。

def dist(ins1, ins2):
     euc = euclidean(ins1.x, ins1.y, ins2.x, ins2.y)
     if ins1.feature1 == ins2.feature1:
          euc = euc * 0.9
     return euc         
Run Code Online (Sandbox Code Playgroud)

有没有适合这种情况的方法?如果不必预先设置集群数量也很好(但这对我来说并不重要)。

python cluster-analysis

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

标签 统计

c++ ×1

cluster-analysis ×1

openmp ×1

python ×1