太原网站建设王道下拉惠,网站菜单导航怎么做,饲料网站源码,二维码转链接在线生成器随机森林是一种基于多个决策树的集成学习方法#xff0c;可以用于分类和回归问题。在gee中可以使用ee.Classifier.smileRandomForest()函数来创建一个随机森林分类器#xff0c;并用它来对影像进行分类。
随机森林分类器有一个重要的属性#xff0c;就是可以计算每个特征可以用于分类和回归问题。在gee中可以使用ee.Classifier.smileRandomForest()函数来创建一个随机森林分类器并用它来对影像进行分类。
随机森林分类器有一个重要的属性就是可以计算每个特征或者说波段的重要性即该特征对分类结果的贡献程度。特征重要性可以帮助我们选择最有效的特征从而提高分类的准确性和效率。
在本文中将使用gee平台上的哨兵二号影像COPERNICUS/S2作为数据源对区域内的土地覆盖进行分类并计算并排序每个波段的重要性。具体分类过程可见 【GEE笔记】在线分类流程标注样本点、分类和精度评价
代码如下
var geometry ee.Geometry.Polygon([[[121.81940156260009, 40.92383488850036],[121.81940156260009, 40.73887826797227],[121.99998933115478, 40.73887826797227],[121.99998933115478, 40.92383488850036]]], null, false)// 定义年份和波段列表
var year2020
var bandlist[B2,B3,B4,B8,B11,B12]// 定义时间范围
var start ee.Date(year-4-1);
var finish ee.Date(year-7-1);// 从gee平台上加载哨兵二号影像并按照时间、空间和云量进行过滤
var dataset ee.ImageCollection(COPERNICUS/S2).filterDate(start, finish).filterBounds(geometry).filter(ee.Filter.lt(CLOUDY_PIXEL_PERCENTAGE, 20))// 从影像集中选择需要的波段
datasetdataset.select(bandlist);
// 定义RGB波段和显示范围
var rgbVis {min: 0.0,max: 3000,bands: [B4, B3, B2],
};// 将地图中心定位
Map.centerObject(geometry)
// 打印影像集的信息
print(dataset)// 对影像集进行中值合成并裁剪到西城区范围
var imagedataset.median().clip(geometry)
// 在地图上显示合成影像
Map.addLayer(image,rgbVis)// 加载样本数据包括淡水、海水、建盆、农田、芦苇、建筑、潭土和草地等八个类别
var sampledanshui.merge(haishui).merge(jianpeng).merge(nongtian).merge(luwie).merge(jianzhu)
.merge(tantu).merge(caodi)// 为样本数据添加一个随机数列用于划分训练集和测试集
var withRandom sample.randomColumn(random);
// 定义训练集和测试集的比例大约70%的样本用于训练30%的样本用于测试
var split 0.7;
var trainingPartition2 withRandom.filter(ee.Filter.lt(random, split));
var testingPartition withRandom.filter(ee.Filter.gte(random, split));// 从合成影像中提取训练集的像素值包括波段值和类别标签
var trainingPartitionimage.sampleRegions({collection: trainingPartition2,scale:10,properties: [Map],})
// 创建一个随机森林分类器使用100棵树并用训练集进行训练
var classifier ee.Classifier.smileRandomForest(100).train({features: trainingPartition,classProperty:Map,// inputProperties :[B4, B3, B2]
});
// 从分类器的explain()方法中获取特征重要性的字典
var dict ee.Dictionary(classifier.explain().get(importance));
// 打印特征重要性的字典
print(Explain:,dict);
// 将特征重要性的字典转换为数组并按照重要性的值进行排序
var ttttee.Dictionary(classifier.explain().get(importance)).toArray().toList();
print(重要性排序:,ee.Dictionary(classifier.explain().get(importance)).keys().sort(tttt))// 使用ui.Chart.feature.byProperty()函数将特征重要性的字典绘制成柱状图并显示在控制台中
var variable_importance ee.Feature(null, ee.Dictionary(dict2).get(importance));
var chart
ui.Chart.feature.byProperty(variable_importance)
.setChartType(ColumnChart)
.setOptions({
title: Random Forest Variable Importance,
legend: {position: none},
hAxis: {title: Bands},
vAxis: {title: Importance}
});print(chart);从输出结果可以看到B8波段近红外波段的重要性最高达到了410.5263331047649说明该波段对土地覆盖分类的影响最大。
通过计算并排序特征重要性可以对影像进行特征选择即只保留最重要的波段从而减少数据的维度提高分类的速度和准确性。当然特征选择的效果还需要通过分类精度评估来验证这是下一步的工作。