小编DOS*_*ter的帖子

为随机森林回归模型设置ntree和mtry的值

我正在使用R包randomForest来对一些生物数据进行回归.我的训练数据大小是38772 X 201.

我只是想知道---树木ntree的数量和每个级别的变量数量有什么好处mtry?是否有一个近似的公式来找到这样的参数值?

我的输入数据中的每一行都是一个代表氨基酸序列的200个字符,我想建立一个回归模型来使用这样的序列来预测蛋白质之间的距离.

statistics regression r machine-learning random-forest

38
推荐指数
3
解决办法
7万
查看次数

使用插入包来找到GBM的最佳参数

我正在使用R GBM软件包来增强对尺寸为10,000 X 932的一些生物数据进行回归,我想知道什么是GBM软件包的最佳参数设置(n.trees,shrinkage,interaction.depth和n. minobsinnode)当我在网上搜索时,我发现R上的CARET包可以找到这样的参数设置.但是,我在使用带有GBM包的Caret包时遇到了困难,所以我只想知道如何使用插入符找到前面提到的参数的最佳组合?我知道这似乎是一个非常典型的问题,但是我读了插入手册并且仍然难以将插入符号与gbm集成,特别是因为我对这两个包都很新

optimization r gbm r-caret

9
推荐指数
2
解决办法
2万
查看次数

在R中聚类非常大的数据集

我有一个由70,000个数值组成的数据集,表示从0到50的距离,我想聚集这些数字; 然而,如果我正在尝试经典的聚类方法,那么我将不得不建立一个70,000X70,000距离矩阵,表示我的数据集中每两个数字之间的距离,这将不适合内存,所以我想知道是否有是否有任何聪明的方法来解决这个问题,而无需进行分层抽样?我还尝试过R中的bigmemory和大分析库,但仍然无法将数据放入内存中

r cluster-analysis machine-learning data-mining bigdata

9
推荐指数
2
解决办法
2万
查看次数

使用 openmp 迭代地图

我正在尝试使用 openMP 在 C++ 中迭代映射,但是我收到三个错误消息,说
我的循环的初始化、终止和增量形式不正确,而且我在使用 openmp 方面很新,所以有什么方法可以在获得与串行结果相同的结果的同时解决这个问题?以下是我使用的代码

map< int,string >::iterator datIt;
#pragma omp parallel for
for(datIt=dat.begin();datIt!=dat.end();datIt++) //construct the distance matrix
{
...............
}
Run Code Online (Sandbox Code Playgroud)

c++

7
推荐指数
2
解决办法
8818
查看次数

如何计算R中随机森林回归模型的置信水平

我在R中使用随机森林(RF)包,目的是预测蛋白质之间的距离(RF的回归模型)"用于同源建模目的",我获得了相当好的结果.但是,我需要有一个置信水平来对我的预测值进行排名并筛选出不良模型,所以我想知道是否有可能计算这种置信水平,或者是否有任何其他方法来衡量预测的确定性?任何建议或建议都非常感谢

regression r uncertainty confidence-interval random-forest

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

特征选择和交叉验证

我想训练一个回归模型,为此我使用随机森林模型。但是,我还需要进行特征选择,因为我的数据集中有很多特征,我担心如果我使用所有特征,那么我会过度拟合。为了评估我的模型的性能,我还进行了 5 折交叉验证,我对以下两种方法的问题是正确的,为什么?

1- 我应该将数据分成两半,在前半部分进行特征选择,并使用这些选定的特征对剩余的一半进行 5 折交叉验证 (CV)(在这种情况下,5 个 CV 将使用完全相同的选定特征)。

2-执行以下程序:

1- 将数据分成 4/5 用于训练和 1/5 用于测试 2- 将此训练数据(完整数据的 4/5)分成两半:a-) 在前半部分训练模型并使用经过训练的模型进行特征选择。b-) 使用第一部分中选择的特征来在训练数据集的后半部分训练模型(这将是我们最终训练的模型)。3- 在剩余的 1/5 数据(从未在训练阶段使用)上测试模型的性能 4- 重复上一步 5 次,每次我们随机(不替换)将数据分成 4 个/5 用于训练,1/5 用于测试

我唯一担心的是,在第二个程序中,我们将有 5 个模型,最终模型的特征将是这五个模型的顶级特征的联合,所以我不确定 5CV 的性能是否可以反映最终模型的最终性能,特别是因为最终模型与 5fold 中的每个模型具有不同的特征(因为它是 5 个 CV 中每个模型的所选特征的联合)

statistics machine-learning feature-extraction feature-selection cross-validation

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

KeyError:0在python中使用多重处理

我有以下代码,其中我尝试调用一个函数compute_cluster,该函数执行一些计算并将结果写入txt文件中(每个进程将其结果分别写入不同的txt文件中),但是,当我运行以下代码时:

def main():
  p = Pool(19)
  p.map(compute_cluster, [(l, r) for l in range(6, 25) for r in range(1, 4)]) 
  p.close()
if __name__ == "__main__":
   main()                
Run Code Online (Sandbox Code Playgroud)

它崩溃并显示以下错误:

File "RMSD_calc.py", line 124, in <module>
  main()                
File "RMSD_calc.py", line 120, in main
  p.map(compute_cluster, [(l, r) for l in range(6, 25) for r in range(1, 4)]) 
File "/usr/local/lib/python2.7/multiprocessing/pool.py", line 225, in map
  return self.map_async(func, iterable, chunksize).get()
File "/usr/local/lib/python2.7/multiprocessing/pool.py", line 522, in get
  raise self._value
  KeyError: 0
Run Code Online (Sandbox Code Playgroud)

当我在网上搜索“ KeyError:0”的含义时,我没有发现任何有用的信息,因此高度赞赏为什么出现此错误的任何建议

python multithreading multiprocessing keyerror

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

并行执行和python上的文件写入

我有一个非常大的数据集分布在10个大集群中,任务是为每个集群做一些计算,并逐行将结果写入(追加)到10个文件中,其中每个文件包含对应于10个集群中的每个集群的结果,每个集群可以独立计算,我想将代码并行化为十个CPU(或线程),这样我就可以一次对所有集群进行计算,我的任务的简化伪代码如下:

for(c in range (1,10)):  #this is the loop over the clusters
    for(l in "readlines from cluster C")
         # do some computations for line l in cluster c
         # append the results in file named "cluster_c" one file for each cluter c
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multithreading multiprocessing

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

内存和向量的向量

我正在实现一个距离矩阵来计算每个点和所有其他点之间的距离,我有100,000个点,所以我的矩阵大小将是100,000 x 100,000.我用它来实现vector<vector<double> > dist.但是,对于这个大数据大小,它会给出内存错误.以下是我的代码,任何帮助将非常感谢.

vector<vector<double> > dist(dat.size()) vector<double>(dat.size()));
size_t p,j;
ptrdiff_t i;
#pragma omp parallel for private(p,j,i) default(shared)
for(p=0;p<dat.size();++p)
{
// #pragma omp parallel for private(j,i) default(shared)
for (j = p + 1; j < dat.size(); ++j)
{
double ecl = 0.0;
for (i = 0; i < c; ++i)
{
ecl += (dat[p][i] - dat[j][i]) * (dat[p][i] - dat[j][i]);
}
ecl = sqrt(ecl);
dist[p][j] = ecl;
dist[j][p] = ecl;
}
} 
Run Code Online (Sandbox Code Playgroud)

c++ vector visual-c++ data-structures

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

将字符矩阵转换为 R 中的字符串矩阵

我有一个很大的字符矩阵,我想将它转换为一个字符串矩阵,但没有单独遍历每一行,所以我想知道有没有一种聪明的方法可以快速做到这一点,我尝试使用 paste(data[,4 :((i*2)+3)],collapse=""),但是我的问题是它将所有行组合成一个非常大的字符串,而我需要具有与原始矩阵相同的初始行数,每一行包含一列,它是包含该特定行中字符的字符串,换句话说:我想转换矩阵

a=
{
D  E  R  P  G  K  I
S  K  P  A  S  L  N
S  K  P  A  S  L  N
S  K  P  A  S  L  N
S  K  P  A  S  L  N
}
Run Code Online (Sandbox Code Playgroud)

进入

a=
{
 DERPGKI
 SKPASLN
 SKPASLN
 SKPASLN
 SKPASLN
}
Run Code Online (Sandbox Code Playgroud)

r

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