GEE学习——记录一个自动选择效果最好的随机森林树的数目的代码

//选取随机森林树数目
var numTrees = ee.List.sequence(5, 50, 5); 
var numtrees = numTrees.map(function(item){return ee.String(item)})
var accuracies = numTrees.map(function(t)
 { 
   var classifier1 = ee.Classifier.smileRandomForest(t)
                     .train({
                     features: trainingPartition,
                     classProperty: 'lc',
                     inputProperties: input_col.first().bandNames()
                     });
   return testingPartition
       .classify(classifier1)
       .errorMatrix('lc', 'classification')
       .accuracy();
 }); 
  print(ui.Chart.array.values({
   array: ee.Array(accuracies),
   axis: 0,
   xLabels: numTrees
 }));
  var Accuracies = accuracies.map(function(item){return ee.String(item)})
  var tree = numTrees.get(accuracies.indexOf(accuracies.sort().getNumber(9)))
  print('tree',tree)
  var classifier = ee.Classifier.smileRandomForest(tree)
    .train({
      features: trainingPartition, //训练集
      classProperty: 'lc',  //标签
      inputProperties:input.bandNames() //[ "B1", "B2", "B3","B5", "B7","NDBI", "NDVI" ,'MNDWI',"SI",'ELEVATION']
    });
  
  var classification = input.classify(classifier);

之前是通过查看树的数目与准确度的chart后,选择准确度最高的树,需要人为决定。想通过代码自动确定树的数目,首先将准确度排序,排序后选择最后一个(getnumber(9),这里如果numtrees序列长度变化时需要更改),然后搜索对应该准确度的树的数目(tree),将tree打印下来方便检查代码是否准确,然后在下面训练时将tree输入即可。

后记:尝试过用dictionary,但是GEE里面不知道怎么通过值取键,如果将准确度设置为键,可能出现键相同的情况,所以放弃了。多次尝试之后还是选择了最原始的方法——排序选择最后一个,实际上如果可以降序排序再使用first()最好,但是也不知道怎么设置降序排序。。不过好在最后可以用,效果也还行。如果有更好更简单的方法,欢迎交流~

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
gee是一种用于遥感数据处理和分析的开源软件,它通过应用决策算法中的随机森林来实现分类和回归任务。 在gee中选取随机森林数目一个重要的决策。随机森林数目决定了模型的复杂度和性能。通常来说,增加数目会增加模型的稳定性和准确性,但也会增加计算时间和存储空间的消耗。 在选择随机森林数目时,一种常用的方法是通过交叉验证来评估模型在不同数目下的性能表现。交叉验证将训练数据划分为多个子集,然后利用每个子集作为验证集来评估模型的性能。通过比较不同数目下的交叉验证结果,可以选择性能最好的数目。 另一种常用的方法是通过计算袋外误差(Out-of-Bag Error)来选择数目。袋外误差是利用那些未被用于训练的数据来评估模型的预测性能,一般来说,袋外误差越小,模型的性能越好。通过观察不同数目下的袋外误差变化,可以选择一个合适的数目。 除了上述方法,还可以考虑模型的运行时间和存储空间消耗。如果运行时间和存储空间有限,可以选择较少的数目来提高效率,但可能会稍微降低模型的准确性。 综上所述,在gee中选取随机森林数目需要综合考虑模型复杂度、性能表现、计算时间和存储空间消耗等因素。具体选择方法可以通过交叉验证、袋外误差和效率需求来进行决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值