功能上线 | AI Earth地球科学云平台新增机器学习类函数算子

简介: 功能上线 | AI Earth地球科学云平台新增机器学习类函数算子

机器学习类函数算子

AI Earth在用户访谈中收到了多位用户反馈,希望平台能提供机器学习相关算子能力。我们快速规划和研发,近期上线了20多类与机器学习相关的函数算子,包括常用的分类器,如随机森林、支持向量机、贝叶斯等,同时上线对分类模型精度进行评价的混淆矩阵。

/函数列表/

函数名称

函数用途

aie.Classifier.linearsvm

创建线性支持向量机分类器

aie.Classifier.decisionTree

创建决策树分类器

aie.Classifer.cart

创建CART分类器

aie.Classifer.randomForest

创建随机森林分类器

aie.Classifier.gradientTreeBoost

创建梯度提升树分类器

aie.Classifier.AdaBoost

创建自适应集成分类器

aie.Classifer.naiveBayes

创建贝叶斯分类器

aie.Classifer.train

利用样本数据对分类器进行训练

aie.Classifier.confusionMatrix

基于已经训练好的分类器,对训练样本进行再预测,获取真实结果与预测结果的混淆矩阵

aie.Image.classify

对影像进行分类

aie.FeatureCollection.classify

对FeatureCollection进行分类

aie.ConfusionMatrix

构建混淆矩阵

aie.ConfusionMatrix.accuracy

计算混淆矩阵的准确率

aie.ConfusionMatrix.consumersAccuracy

计算混淆矩阵每一类别的查全率

aie.ConfusionMatrix.fscore

计算混淆矩阵每一类别的F度量

aie.ConfusionMatrix.kappa

计算混淆矩阵的kappa系数

aie.ConfusionMatrix.producersAccuracy

计算混淆矩阵每一类别的查准率

aie.FeatureCollection.errorMatrix

基于FeatureCollection中指定的两列属性构建混淆矩阵

aie.Image.sample

从影像中获取样本点,每一个样本点将包含对应坐标点下所有波段的像元值

 

/应用案例/

平台的案例广场中提供了进行地表覆盖监督分类的应用案例,我们利用ESA地表覆盖数据作为随机采样的训练样本真值标签,对单景Sentinel-2A影像采用自适应集成分类器(aie.Classifier.adaBoost)进行地物覆盖的分类,并利用混淆矩阵进行分类精度的分析。

欢迎平台用户进行相关体验与测试。

 

附案例代码

  • 利用ESA地表覆盖数据,作为训练样本的地物真值标签。
1. 
2. # 指定研究区域
3. roi = aie.Geometry.BBox(119.8679, 29.7058, 121.0332, 30.7178)
4. 
5. # 使用ESA地表覆盖分类作为标签类别, 并将其裁剪到研究区
6. lc = aie.ImageCollection('ESA_WORLD_COVER_V100').filterBounds(roi).mosaic().clip(roi)
7. 
8. # 将ESA地表覆盖分类值重新映射到[0, 10]
9. class_values = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100]
10. remap_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
11. label = 'lc'
12. lc_remap = lc.remap(class_values, remap_values).rename([label])
13. 
14. # 选取一景S2A影像的地表辐射波段, 作为训练和预测示例
15. img = aie.Image('S2A_MSIL2A_20220103T024121_N0301_R089_T51RTP_20220103T050347').select('B.*')
16. 
17. # 指定获取样本的范围, 如果样本范围过大, 同时采样分辨率过高的话, 将导致sample函数运行时间过长
18. sample_roi = aie.Geometry.BBox(120.1730, 30.1086, 120.3846, 30.2862)
19. # 指定在10m分辨率下获取1000个样本点, 由于sample函数无法保证各类别样本数量均衡, 因此可自行上传训练样本
20. samples = img.addBands(lc_remap).sample(sample_roi, 10, 1000)
21. 
22. # 在训练样本中增加一列随机数, 选取80%的样本为训练样本, 选取20%的样本为验证样本
23. sample = samples.randomColumn()
24. training_sample = sample.filter(aie.Filter.lte('random', 0.8))
25. validation_sample = sample.filter(aie.Filter.gt('random', 0.8))
  •  
  • 创建分类器,并利用随机获取的样本进行训练,同时利用混淆矩阵进行精度评估。
1. 
2. # 创建自适应集成分类器,并进行训练
3. trained_classifier = aie.Classifier.adaBoost(10).train(training_sample, label, img.bandNames().getInfo())
4. 
5. # 训练集混淆矩阵包含的类别,对应class_values中的类别为[10, 30, 40, 50, 60, 70]
6. train_accuracy = trained_classifier.confusionMatrix()
7. print('Training error matrix:', train_accuracy.getInfo())
8. print('Training overall accuracy:', train_accuracy.accuracy().getInfo())
9. 
10. # 使用验证集对分类器进行评估
11. validation = validation_sample.classify(trained_classifier)
12. # 验证集混淆矩阵包含的类别,对应class_values中的类别为[10, 40, 50, 60, 70]
13. validation_accuracy = validation.errorMatrix(label, 'classification')
14. print('Validation error matrix:', validation_accuracy.getInfo())
15. print('Validation accuracy:', validation_accuracy.accuracy().getInfo())
  • 对Sentinel-2影像进行分类,并将结果可视化
1. 
2. # 使用训练好的分类器对影像进行分类
3. img_classified = img.classify(trained_classifier)
4. 
5. color = ['#006400' ,'#ffbb22', '#ffff4c', '#f096ff', '#fa0000', '#b4b4b4',
6. '#f0f0f0', '#0064c8', '#0096a0', '#00cf75', '#fae6a0']
7. map = aie.Map(
8.     center=roi.getCenter(),
9.     height=800,
10.     zoom=9
11. )
12. # 待分类影像真彩色图层
13. map.addLayer(
14.     img,
15.     {
16. 'bands': ['B4', 'B3', 'B2'],
17. 'min': 200,
18. 'max': 1800
19.     },
20. 'True Color (432)',
21.     bounds=roi.getBounds()
22. )
23. # 自适应集成分类图层
24. map.addLayer(
25.     img_classified,
26.     {
27. 'bands': 'classification',
28. 'min': 0,
29. 'max': 10,
30. 'palette': color
31.     },
32. 'aie_classification',
33.     bounds=roi.getBounds()
34. )
35. map


相关文章
|
4月前
|
机器学习/深度学习 人工智能 监控
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
本系列文章深入讲解了从Seq2Seq、RNN到Transformer,再到GPT模型的关键技术原理与实现细节,帮助读者全面掌握Transformer及其在NLP中的应用。同时,通过一个房价预测的完整案例,介绍了算法工程师如何利用数据训练模型并解决实际问题,涵盖需求分析、数据收集、模型训练与部署等全流程。文章适合初学者和开发者学习AI基础与实战技能。
578 25
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
|
6月前
|
机器学习/深度学习 人工智能 供应链
从概念到商业价值:AI、机器学习与深度学习全景指南
在这个科技飞速发展的时代🚀,人工智能正以惊人的速度渗透到我们的生活和工作中👀。但面对铺天盖地的AI术语和概念,很多人感到困惑不已😣。"AI"、"机器学习"、"深度学习"和"神经网络"到底有什么区别?它们如何相互关联?如何利用这些技术提升工作效率和创造价值?
|
5月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL消息传递接口的PyG替换
DGL (Deep Graph Learning) 和 PyG (Pytorch Geometric) 是两个主流的图神经网络库,它们在API设计和底层实现上有一定差异,在不同场景下,研究人员会使用不同的依赖库,昇腾NPU对PyG图机器学习库的支持亲和度更高,因此有些时候需要做DGL接口的PyG替换。
|
6月前
|
数据可视化 Rust 机器学习/深度学习
mlop.ai 无脑使用教程 (机器学习工具 WandB/ClearML 的首个国区开源平替)
mlop.ai 是首个为国区用户优化的机器学习工具,全栈免费开源,是主流付费解决方案 ClearML/WandB 的开源平替。常规实验追踪的工具经常大幅人为降速,mlop因为底层为Rust代码,能轻松支持高频数据写入。如需更多开发者帮助或企业支持,敬请联系cn@mlop.ai
343 12
mlop.ai 无脑使用教程 (机器学习工具 WandB/ClearML 的首个国区开源平替)
|
5月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL图构建接口的PyG替换
本文探讨了在图神经网络中将DGL接口替换为PyG实现的方法,重点以RFdiffusion蛋白质设计模型中的SE3Transformer为例。SE3Transformer通过SE(3)等变性提取三维几何特征,其图构建部分依赖DGL接口。文章详细介绍了两个关键函数的替换:`make_full_graph` 和 `make_topk_graph`。前者构建完全连接图,后者生成k近邻图。通过PyG的高效实现(如`knn_graph`),我们简化了图结构创建过程,并调整边特征处理逻辑以兼容不同框架,从而更好地支持昇腾NPU等硬件环境。此方法为跨库迁移提供了实用参考。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
289 6
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
Java+机器学习基础:打造AI学习基础
随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI技术应用到实际业务场景中。Java作为一种强大的编程语言,不仅在企业级应用开发中占据重要地位,在AI领域也展现出了巨大的潜力。本文将通过模拟一个AI应用,从背景历史、业务场景、优缺点、底层原理等方面,介绍如何使用Java结合机器学习技术来打造一个AI学习的基础Demo。
471 18
|
9月前
|
机器学习/深度学习 数据采集 人工智能
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。
|
12月前
|
机器学习/深度学习 人工智能 自动驾驶
揭秘AI:机器学习如何改变我们的世界
在这篇文章中,我们将深入探讨机器学习如何改变我们的世界。从自动驾驶汽车到智能医疗诊断,机器学习正在逐步渗透到我们生活的每一个角落。我们将通过实例和代码示例,揭示机器学习的工作原理,以及它如何影响我们的生活。无论你是科技爱好者,还是对人工智能充满好奇的普通读者,这篇文章都将为你打开一扇新的大门,带你走进机器学习的世界。
214 0