صحت سنجی طبقه بندی در گوگل ارث انجین
قطعا هر طبقه بندی که توسط کابر انجام می شود مقداری خطا دارد. در این پست قصد داریم خطا و درستی طبقه بندی را بررسی کنیم.آموزش تهیه نقشه شیب، جهت شیب …
آموزش شبکه چند ظلعی تیسن در …
آموزش رقومی سازی یا دیجیت کردن …
آموزش ایجاد کلیپ (برش شیپ فایل) …
آموزش ایجاد بافر در آرک مپ
آموزش درونیابی به روش کریجینگ در …
آموزش درونیابی به روش اسپلاین در …
آموزش درونیابی به روش IDW در …
آموزش انتقال داده اکسل به نر …
تغییر سیستم تصویر تصویر رستری در …
درستی سنجی طبقه بندی
از آنجا که طبقه بندی هایی که ما بر اساس الگوریتم های موجود مانند kmean انجام میدهیم عموما با تعریف نقاط آموزشی برای الگوریتم ها انجام می شود، ممکن است در تعیین نقاط آموزشی اشتباهی انجام دهیم و یا اینکه الگوریتم به کار رفته پیکسل هایی را به اشتباه طبقه بندی کند. در این زمینه با استفاده از تکنیک یا ضریبی به نام ضریب کاپا میزان درستی طبقه انجام شده را بررسی می کنیم. این کار به وسیله ی داده هایی که ما از صحت آن ها مطمئن هستیم انجام می شود. در ادامه می توانید نحوه درستی سنجی را یاد بگیرید.
آموزش های مشابه
- طبقه بندی نظارت شده در گوگل ارث انجین
- طبقه بندی نظارت نشده در گوگل ارث انجین
- ساخت حساب در گوگل ارث انجین
- دوره آموزش جامع گوگل ارث انجین
صحت سنجی در گوگل ارث انجین
در این مقاله برای آموزش بهتر قصد داریم درستی سنجی را در چهار مرحله و با استفاده از تصاویر سنتینل 2 انجام دهیم. در گام اول ابتدا تصاویر ماهواره ای مورد نیاز را باز می کنیم. سپس در گام دوم طبقه بندی را انجام داده و در گام سوم داده های صحت سنجی را فراخوانی کرده و در گام آخر صحت سنجی انجام خواهد شد. برای انجام این گام ها از مراحل زیر پیرویی کنید
گام اول: تصاویر ماهواره ای در گوگل ارث انجین
در ابتدای کار ما باید بتوانیم تصویر ماهواره ای مورد نظر خود را وارد محیط کد نویسی ارث انجین کنیم (باز کردن تصاویر ماهواره ای). در این آموزش ما از تصویر ماهواره ای سنتینل 2 استفاده کرده ایم. برای این کار کافی است که از کد های زیر استفاده کنید. در کد های زیر به جای عبارت YourRegion از نام شیپ فایل منطقه مورد مطالعه خود استفاده کنید
function maskS2clouds(image) {
var qa = image.select('QA60');
var cloudBitMask = 1 << 10;
var cirrusBitMask = 1 << 11;
var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));return image.updateMask(mask).divide(10000);
}var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2020-06-01', '2020-07-20')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',20))
.map(maskS2clouds)
.mosaic()
.clip(YourRegion);
در این مثال ما از تصاویر سنتینل 2 در محدوده استان کردستان استفاده کرده ایم. بعد از اجرای کد های بالا، تصویری مشابه تصویر زیر برای شما باز خواهد شد.
گام دوم: طبقه بندی تصاویر سنتینل 2
در ابتدای این مقاله می توانید لینک طبقه بندی نظارت شده در گوگل ارث انجین را مشاهده کنید. در این پست قصد نداریم نحوه طبقه بندی را آموزش دهیم. اما برای اینکه مجمموعه کدهای واحد داشته باشید، سعی کرده ایم که کد های طبقه بندی را در اختیار شما قرار دهیم . برای این کار از کدهای زیر استفاده کنید.
var newfc = urban.merge(bare).merge(vegetation).merge(water);
var bands = ['B4', 'B8', 'B11'];
var training = dataset.select(bands).sampleRegions({
collection: newfc,
properties: ['landcover'],
scale: 30
});var label = 'landcover';
var trained = ee.Classifier.smileCart().train(training, label, bands);
var classified = dataset.select(bands).classify(trained);
در تصویر زیر می توانید نتیجه طبقه بندی بعد از استفاده از کدهای بالا را مشاهده کنید.
داده های صحت سنجی
همانطور که می دانید برای انجام طبقه بندی نظارت شده ما از داده های آموزشی یا training data استفاده می کنیم. برای این کار معمولا تعدادی نقاط ایجاد می کنیم که هر نطقه تعیین کننده یک دسته است به طور مثال برای طبقه بندی کاربری اراضی ما مجموعه ای نقاط ایجاد می کنیم که تعدادی از آن ها تعیین کننده آب سطحی و تعدادی دیگر تعیین کننده پوشش گیاهی است.
اما برای انجام صحت سنجی به دسته ای دیگر از همین داده های نیاز داریم که نوع طبقه بندی را برای مشخص کند. برای مثال از نقشه های از قبل تعیین شده تعدادی نقطه یا پلی گون استخراج می کنیم که داده های صحیح یا صحت سنجی شده هستند. برای ایجاد این داده ها می توانید از داده های میدانی نیز استفاده کنید. بعد از ایجاد آن ها از کد های زیر برای ترکیب و نمونه سازی آن های استفاده کنید.
var gcp = gcp_urban.merge(gcp_bare).merge(gcp_vegetation)
.merge(gcp_water);
var test = classified.sampleRegions({
collection: gcp,
properties: ['landcover'],
tileScale: 16,
scale: 10,
});
ضریب کاپا در گوگل ارث انجین
ضریب کاپا از یک آزمون آماری برای ارزیابی میزان درستی یک طبقه بندی استفاده می کند. ضریب کاپا می تواند از 1 تا -1 متغیر باشد. مقدار 0 نشان می دهد که طبقه بندی بهتر از یک طبقه بندی تصادفی نیست. یک عدد منفی نشان می دهد که طبقه بندی به طور قابل توجهی بدتر از حالت تصادفی است. مقدار نزدیک به 1 نشان می دهد که طبقه بندی به طور قابل توجهی بهتر از حالت تصادفی است.
این ضریب در گوگل ارث انجین به سادگی قابل برآورد می باشد. برای این کار می توانید از کد های زیر در ادامه کد های بالا استفاده کنید.
var testConfusionMatrix = test.errorMatrix('landcover', 'classification');
print('Kappa statistic for gcp', testConfusionMatrix.kappa());
دقت کلی طبقه بندی در گوگل ارث انجین
دقت کلی اساساً به ما می گوید که چه نسبتی از همه پیکسل ها به درستی طبقه بندی شده اند. دقت کلی معمولاً به صورت درصد بیان می شود، با دقت 100٪ یک طبقه بندی کامل است که در آن تمام پیکسل ها به درستی طبقه بندی شده اند. دقت کلی ساده ترین روش محاسبه و درک است، اما در نهایت فقط اطلاعات اولیه دقت را در اختیار کاربر و سازنده نقشه قرار می دهد. برای محاسبه دقت کلی در گوگل ارث انجین از کد زیر استفاده کنید.
print('overall accuracy for gcp', testConfusionMatrix.accuracy());
مانند تصویر زیر می توانید در بخش console نتیجه ضریب های استفاده شده را مشاهده کنید.