开发者社区> 问答> 正文

在AI Earth我用决策树提取出来冬小麦的区域,如何选取样本验证kappa系数和acc系数?

在AI Earth我用决策树提取出来冬小麦的区域,如何选取样本验证kappa系数和acc系数?f8bb1228cb8784ece12ac51e43868689.png
import aie

aie.Authenticate()
aie.Initialize()

feature_collection = aie.FeatureCollection('China_City') \
.filter(aie.Filter.eq('city', '菏泽市'))
region = feature_collection.geometry()

播种期影像

img1 = aie.ImageCollection('SENTINEL_MSIL2A') \
.filterBounds(region) \
.filterDate('2020-10-01', '2020-11-11') \
.filter(aie.Filter.lte('eo:cloud_cover',60)) \
.select(["B11","B8","B4","B3","B2"])\
.median()

         # .map(removeLandsatCloud)          

拔节期影像

img2 = aie.ImageCollection('SENTINEL_MSIL2A')\
.filterDate("2021-02-01", "2021-05-11")\
.filterBounds(region)\
.filter(aie.Filter.lt('eo:cloud_cover', 60))\
.select(["B11","B8","B4","B3"])\
.median()

成熟收获期影像

img3 = aie.ImageCollection('SENTINEL_MSIL2A')\
.filterDate("2021-05-30", "2021-07-5")\
.filterBounds(region)\
.filter(aie.Filter.lt('eo:cloud_cover', 60))\
.select(["B11","B8","B4","B3","B2",])\
.median()
red1 = img1.select("B4")
nir1 = img1.select("B8")
swir1 = img1.select("B11")
red2 = img2.select("B4")
nir2 = img2.select("B8")
red3 = img3.select("B4")
nir3 = img3.select("B8")

ndvi1 = (nir1.subtract(red1)).divide(nir1.add(red1)).rename(["NDVI"]).select("NDVI")
nbr1 = (nir1.subtract(swir1)).divide(nir1.add(swir1)).rename(["NBR"]).select("NBR")
ndvi2 = (nir2.subtract(red2)).divide(nir2.add(red2)).rename(["NDVI"]).select("NDVI")
ndvi3 = (nir3.subtract(red3)).divide(nir3.add(red3)).rename(["NDVI"]).select("NDVI")

小麦在10月份的近红外波段更大,短波红外波段更小

条件1:播种期NDVI小,NBR小

条件2:拔节期抽穗期 NDVI大

条件3:成熟期NDVI小于拔节期NDVI

wheat = ndvi1.lt(aie.Image.constant(0.3))\
.And(nbr1.lt(aie.Image.constant(0.07)))\
.And(ndvi2.gt(aie.Image.constant(0.32)))\
.And(ndvi3.lt(ndvi2))\
.clip(region)

结果可视化

map = aie.Map(
center=region.getCenter(),
height=800,
zoom=7
)

vis_params = {
'color': '#00FF00'
}

map.addLayer(
region,
vis_params,
'region',
bounds=region.getBounds()
)

mask_vis = {
'min': 0,
'max': 1,
'palette': ['#ffffff', '#008000'] # 0:白色, 1:绿色
}

ndvi_vis = {
'min': -0.2,
'max': 0.6,
'palette': ['#d7191c', '#fdae61', '#ffffc0', '#a6d96a', '#1a9641']
}

map.addLayer(ndvi1,ndvi_vis, 'ndvi1', bounds=region.getBounds())
map.addLayer(nir1,ndvi_vis, 'nir1', bounds=region.getBounds())
map.addLayer(ndvi2,ndvi_vis, 'ndvi2', bounds=region.getBounds())
map.addLayer(ndvi3,ndvi_vis, 'ndvi3', bounds=region.getBounds())
map.addLayer(wheat,mask_vis, 'wheat', bounds=region.getBounds()) # 绿色区域为小麦

展开
收起
三分钟热度的鱼 2024-03-06 17:22:50 74 0
4 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在AI Earth中,您可以使用以下步骤来选取样本并验证决策树提取冬小麦区域的kappa系数和acc系数:

    1. 收集参考数据:您需要收集一定数量的地面真实数据作为参考,这些数据应该包括冬小麦种植区域的确切位置信息。这可以通过实地调查或使用高分辨率的卫星影像来获取。
    2. 创建样本集:根据收集到的参考数据,创建两个样本集——一个用于训练决策树模型,另一个用于验证模型的准确性。确保样本集代表了不同物候期和不同光谱特征的冬小麦区域。
    3. 训练决策树模型:使用训练样本集来训练决策树模型。您可以利用AI Earth提供的工具和算法,结合NDVI等植被指数,来提取冬小麦的特征。
    4. 应用模型并进行预测:将训练好的决策树模型应用于整个研究区域,进行像元尺度的冬小麦提取。
    5. 验证模型准确性:使用验证样本集来评估模型的性能。计算kappa系数和acc系数,这两个指标可以反映分类结果的一致性和准确性。Kappa系数考虑了随机一致的情况,而acc系数则是总体分类正确率。
    6. 分析结果:根据kappa系数和acc系数的值来分析模型的性能。通常情况下,kappa系数大于0.8表示分类结果非常好,而acc系数则越高越好。
    7. 调整模型:如果验证结果显示模型性能不佳,您可能需要调整模型参数或重新选择特征,然后重复上述步骤进行优化。
    8. 最终评估:在模型优化后,再次进行验证,直到达到满意的kappa系数和acc系数为止。
    9. 报告结果:最后,您可以将模型的性能评估结果整理成报告,以便与其他研究者或决策者分享。

    总的来说,在进行这一过程时,请确保您的样本集具有代表性,并且覆盖了不同的物候期和光谱特征,以便能够准确地验证模型的性能。同时,注意数据的预处理和云去除等步骤,以提高模型的准确性。

    2024-03-08 20:35:01
    赞同 展开评论 打赏
  • 阿里云大降价~

    在AI Earth中,您可以通过以下步骤来选取样本并验证决策树分类结果的Kappa系数和Accuracy系数:

    1. 制作训练样本数据:您需要制作训练样本数据,这些数据将用于训练决策树模型。训练样本应该包含典型的冬小麦区域的特征信息。
    2. 选择验证样本:在分类完成后,您需要手动绘制感兴趣区(ROI)作为验证样本。这些样本将用于评估分类结果的准确性。验证样本的选择应与训练样本的选择方法一致,以确保评估的有效性。
    3. 计算混淆矩阵:使用您的验证样本和分类结果来计算混淆矩阵。混淆矩阵是一个表格,用于描述分类结果和实际类别之间的关系。
    4. 计算Kappa系数:基于混淆矩阵,您可以计算出Kappa系数。Kappa系数是一个统计指标,用于衡量分类结果与实际类别之间的一致性。它的值范围从-1到1,通常大于0的值表示较好的一致性。
    5. 计算Accuracy系数:总体精度(Overall Accuracy)或准确率也是衡量分类效果的一个重要指标。它表示分类正确的样本数占总样本数的比例。
    6. 使用专业软件:您可以利用ENVI、ArcGIS等遥感图像处理软件来进行精度验证。这些软件可以帮助您提取验证点的shp属性值,并进行精度验证分析。
    7. 评估分类效果:根据计算出的Kappa系数和Accuracy系数,您可以评估决策树分类的效果。通常,Kappa系数越高,分类结果的一致性越好;Accuracy系数越高,分类结果的准确性越高。
    8. 调整模型:如果分类结果的精度不满足要求,您可能需要回到模型构建阶段,调整决策树的参数或者增加更多的训练样本,以提高分类的准确性。
    9. 重复验证:为了确保结果的稳定性,您可以多次重复上述过程,每次使用不同的验证样本集来评估分类结果的精度。
    10. 报告结果:最后,您可以将分类结果和精度评估的详细情况整理成报告,以便于进一步分析和讨论。

    请注意,这个过程可能需要一定的遥感知识和数据分析技能。如果您不熟悉这些步骤,可能需要进一步学习相关的遥感技术和统计分析方法。

    2024-03-06 18:57:23
    赞同 展开评论 打赏
  • 看了你的代码,并不是使用平台 classifier 里面的API 函数来完成你的决策树。你只是拼接了一些函数来完成。如果你能知道正确分类的数量(在pixel 或者 object 这个级别)。那么你可以构建ConfusionMatrix,来计算 Kappa 系数等。具体混淆矩阵如何构建可参考文档中心—>API 参考里面的具体说明。此回答整理自钉群“AI Earth地球科学云平台交流群”

    2024-03-06 18:30:48
    赞同 展开评论 打赏
  • 将原始数据集划分为训练集和测试集/验证集。常用的划分方法包括随机划分、交叉验证(如K折交叉验证)或者时间序列上的留出法(对于时间序列数据)。
    使用训练好的模型对验证集进行预测,得到模

    2024-03-06 18:14:12
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于达摩院在深度学习、计算机视觉等方向上的技术积累,结合阿里云强大算力支撑,提供遥感、气象等多源对地观测数据的云计算分析服务,用数据感知地球世界,让AI助力科学研究。
问答排行榜
最热
最新

相关电子书

更多
Lindorm AI 能力介绍 立即下载
2023云栖大会:PolarDB for AI 立即下载
2023云栖大会:Lindorm一站式AI数据平台实战 立即下载