Google Earth Engine(GEE)随机森林分类

本文介绍了如何使用Google Earth Engine(GEE)进行随机森林分类,以进行土地利用分类。通过选取研究区域和 Landsat 8 数据集,建立样本点并进行训练与验证。最终通过混淆矩阵计算分类精度和Kappa系数,评估模型性能。虽然Kappa系数未达到80%,但展示了GEE在遥感图像分类中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日分享:

Google Earth Engine(GEE)随机森林分类

九月第一天,来简单分享下如何在GEE中进行随机森林分类。之做土地利用分类,一直再用ENVI去做,发现做分类时,用ENVI的插件时间太长了,所以就试试用GEE去做一下监督分类。

主要参考Google Earth Engine(GEE)的官方文档

34972a4bd5f6028dddf7deff35dbeab5.png

01

GEE部分实现代码

选择研究区和数据集

var roi = ee.Geometry.Polygon(
        [[[105.76168216373424, 38.90136066495491],
          [105.76168216373424, 37.81375799864711],
          [106.89327396060924, 37.81375799864711],
          [106.89327396060924, 38.90136066495491]]], null, false);
Map.centerObject(roi,10)


var landsat8col = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
                  .filterDate('2021-07-01', '2021-09-30')
                  .filterBounds(roi)
                  .filter(ee.Filter.lte('CLOUD_COVER',5))//云量设置
                  .median();
//显示
var visualization = {
  min: 0.0,
  max: 60000,
  bands: ['SR_B5', 'SR_B4', 'SR_B3'],
};


var clip_L8_ = landsat8col.clip(roi)
Map.addLayer(landsat8col.clip(roi), visualization, '假彩色');

建立并选择样本点,我大致分了常见的六个地类,分别是耕地,草地,林地,居民点及工矿用地,水域,未利用地,设置了用于训练的样本和验证的样本

var training = Crop.merge(grassland).merge(Forest).merge(Urban).merge(Water).merge(Bareland);
print(training);
var trainingData = training.randomColumn('random')
//其实就是80%的样本用于分类
//其余20%的样本用于验证
var sample_training = trainingData.filter(ee.Filter.lte("random", 0.8));
var sample_validate  = trainingData.filter(ee.Filter.gt("random", 0.8));

然后就可以调用模型进行随机森林分类了(ps:样本点还是要自己选的)

var classifier = ee.Classifier.smileRandomForest(50)
    .train({
      features: training, 
      classProperty: 'class', 
      inputProperties: clip_L8_.bandNames()
    });
var Classified_RF = clip_L8_ .classify(classifier).byte();
var dict = classifier.explain();
var variable_importance = ee.Feature(null, ee.Dictionary(dict).get('importance'));
Map.addLayer(Classified_RF.clip(roi),{min: 0, max: 5, 
palette: ['c0c220','26ff4a','7eff8d','ff4e28','319599',"989990"]},  'Classified_RF');

然后就可以用混淆矩阵法去计算分类精度和kappa系数

// 总体分类精度
var accuracy = testAccuracy.accuracy();
// Kappa系数
var kappa = testAccuracy.kappa();

最后就是的导出分类后的结果了

Export.image.toDrive({
  image: Classified_RF,
  description: 'RF2021a',
  crs: "EPSG:32649",
  scale: 30,
  region: roi,
  maxPixels: 1e13,
  folder: 'RF'
});

02

结果显示

ba59ef605cbce791c690c735b882f44d.png

kappa系数没有到80%以上,可能是我选的样本有点问题9d33cbf33ea20f73b61c46dc43e6871c.png07502679f243bebe5d284d9b30bf8c78.png0e65feafb1d5e5ae1d5a5fbf0b29f88e.png28f9fcfdb1c5badb9989a93e3de32788.png

404a8c8b295e0398b8eb09c94be7c767.png

分类结果

完整代码请在公众号后台私信“0901随机森林分类”

感谢关注,欢迎转发!

声明:仅供学习使用!

希望关注的朋友们转发,如果对你有帮助的话记得给小编点个赞或者在看

## ****更多内容请关注微信公众号“生态遥感监测笔记”**

Gee随机森林是一种常用的机器学习算法,用于解决分类问题。它通过多个决策树的集合进行分类,具有较高的准确性和稳定性。其分类效果主要表现在以下几个方面。 首先,Gee随机森林能够处理高维度的数据集。在实际应用中,我们往往会遇到特征较多的情况,而传统的单个决策树可能会面临产生过拟合的问题。而Gee随机森林通过随机选择特征子集进行决策树的构建,从而减少了特征维度,提高了模型的泛化能力,避免了过拟合的发生。 其次,Gee随机森林能够有效地处理大规模的数据集。对于包含大量样本的数据集,随机森林能够并行处理每个决策树的构建和预测,极大地提高了模型的训练和预测速度。这使得Gee随机森林成为处理大数据的理想选择。 此外,Gee随机森林对缺失值和异常值具有较好的鲁棒性。在实际数据中,我们经常会遇到缺失值和异常值的情况,而传统的机器学习算法对于这种情况的处理可能会导致结果的偏差。而Gee随机森林通过随机选择特征子集,可以更好地处理缺失值和异常值,减少它们对模型的影响,提高了模型的稳定性和鲁棒性。 综上所述,Gee随机森林分类问题上具有较好的效果。它能够处理高维度的数据集,适应大规模的数据,并对缺失值和异常值具有较好的鲁棒性。因此,Gee随机森林成为了目前机器学习领域中非常流行和成功的分类算法之一。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生态遥感监测笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值