Skip to content
ข้อกังวล: การเปรียบเทียบประสิทธิภาพระหว่าง AEF และ Sentinel-2 ด้วยอัลกอริทึมมาตรฐานอย่าง Random Forest แม้จะเป็นการทดลองที่ดี แต่ในปัจจุบันอาจไม่ถือว่า "ใหม่"
จึงขอ ปรับโฟกัสของงานวิจัยมาที่ "การประเมินประสิทธิภาพเชิงข้อมูล (Data Efficiency) ผ่าน Few-Shot Learning"
เป็นการยกระดับงานวิจัยของเราจากงาน "ประยุกต์ใช้" (Application) ไปสู่งาน "เชิงระเบียบวิธี" (Methodological) ที่มีความใหม่ (Novelty) และมีผลกระทบสูงขึ้นมาก การพิสูจน์ให้เห็นว่า Foundation Model อย่าง AlphaEarth สามารถทำงานได้ดีในสภาวะที่ขาดแคลนข้อมูลนั้น เป็นการตอบคำถามที่สำคัญและเป็นปัญหาที่นักวิจัยทั่วโลกกำลังเผชิญอยู่จริง ซึ่งจะทำให้งานของเราน่าสนใจสำหรับวารสารวิชาการชั้นนำอย่างมาก

แผนการดำเนินงานวิจัย:

การประเมินประสิทธิภาพเชิงข้อมูลของ การประเมินประสิทธิภาพเชิงข้อมูล (Data Efficiency) ของ AlphaEarth Embeddings (AEF) เทียบกับข้อมูล Sentinel-2 แบบดั้งเดิม ผ่านการทดลองแบบ Few-Shot Learning สำหรับการทำแผนที่ LULC



048966a9.png

แผนนี้จะแบ่งออกเป็น 4 ระยะหลัก (Phase) ตั้งแต่การเตรียมการไปจนถึงการเขียนบทความตีพิมพ์

Phase 1: การเตรียมการและตั้งค่า (Preparation & Setup) - (สัปดาห์ที่ 1-3)

ระยะนี้ คือการวางรากฐานที่มั่นคงให้กับการทดลองทั้งหมด ความผิดพลาดในขั้นตอนนี้จะส่งผลกระทบต่อความน่าเชื่อถือของงานวิจัยทั้งระบบ
ขั้นตอนที่ 1.1: การคัดเลือกพื้นที่ศึกษาและข้อมูลอ้างอิง (Study Area & Ground Truth Selection)
Action: ทำการตรวจสอบข้อมูลการใช้ที่ดิน (LULC) จากกรมพัฒนาที่ดิน (พด.) อย่างละเอียด 2 เพื่อหาจังหวัด/พื้นที่ศึกษาที่ปีของการสำรวจข้อมูล "ตรงกับ" ปีของข้อมูล AlphaEarth Embeddings (AEF) ที่เราจะใช้ให้มากที่สุด (เช่น ข้อมูล พด. ปี 2022 กับ AEF ปี 2022)
Deliverable: พื้นที่ศึกษาที่กำหนดขอบเขตชัดเจน พร้อมเอกสารบันทึกที่ระบุปีของข้อมูลทั้งสองแหล่งอย่างชัดเจน เพื่ออ้างอิงในบทความ
ได้เลือกพื้นที่จังหวัดระยองอำเภอปลวกแดง และบ้านค่าย เพราะเป็นจังหวัดในเขตพัฒนาพิเศษภาคตะวันออก (EEC)
เกษตรกรรมมูลค่าสูงที่ซับซ้อน: จันทบุรีและระยองเป็นแหล่งปลูกทุเรียน, มังคุด, และยางพาราที่สำคัญของประเทศ พืชสวนเหล่านี้มักมีลักษณะเป็น "สวนผสม" หรือปลูกในแปลงขนาดเล็ก ทำให้มีลักษณะทางสเปกตรัมที่ใกล้เคียงและแยกออกจากป่าธรรมชาติได้ยาก นี่คือความท้าทายชั้นดีที่จะพิสูจน์ว่า AEF embeddings ซึ่งเรียนรู้จากข้อมูลหลายมิติ (multimodal data) สามารถแยกแยะพืชเหล่านี้ได้ดีกว่าการใช้แค่แบนด์ของ Sentinel-2 หรือไม่
ความซับซ้อนของสวนผลไม้ที่อาจมีการปลูกแบบผสมผสานหรือเป็นแปลงขนาดเล็ก ยังคงเป็นโจทย์ที่ท้าทายและน่าสนใจสำหรับทดสอบขีดความสามารถในการแยกแยะของ AEF Embeddings
การเปลี่ยนแปลงแบบพลวัตสูง: พื้นที่ EEC มีการเปลี่ยนแปลงการใช้ที่ดินอย่างรวดเร็ว มีทั้งการขยายตัวของเขตเมืองและนิคมอุตสาหกรรม, การเปลี่ยนพื้นที่เกษตรกรรม, และการพัฒนาโครงสร้างพื้นฐาน ซึ่งทำให้ LULC มีความหลากหลายสูงมาก ตั้งแต่พื้นที่เมือง, พื้นที่อุตสาหกรรม, พื้นที่เกษตรกรรม, ป่าไม้, ไปจนถึงพื้นที่ชายฝั่งทะเล
ความเกี่ยวข้องและผลกระทบ (Relevance and Impact): หากพื้นที่ศึกษามีความสำคัญในเชิงเศรษฐกิจ, สังคม, หรือสิ่งแวดล้อม จะทำให้งานวิจัยของเรามีน้ำหนักและน่าสนใจมากยิ่งขึ้น เช่น เป็นพื้นที่เขตเศรษฐกิจพิเศษ, เป็นแหล่งเกษตรกรรมมูลค่าสูง, หรือเป็นพื้นที่ที่มีการเปลี่ยนแปลงอย่างรวดเร็ว
ข้อเสนอแนะเชิงกลยุทธ์: เพื่อเพิ่มความแข็งแกร่งให้งานวิจัย เสนอให้เราสร้างชุดข้อมูลตรวจสอบความถูกต้อง "มาตรฐานทองคำ" (Golden Validation Set) ขนาดเล็กขึ้นมาเอง โดยการใช้ภาพถ่ายดาวเทียมความละเอียดสูงมาก (เช่น จาก Maxar, Planet) ของปีล่าสุด มาสร้างโพลีกอน (Polygon) การใช้ที่ดินด้วยตัวเองในพื้นที่ย่อยๆ ชุดข้อมูลนี้จะใช้เป็นตัวตัดสินสุดท้ายที่น่าเชื่อถือที่สุด เพราะมีความสอดคล้องเชิงเวลาอย่างสมบูรณ์

ทำตำแหน่งสำหรับอ้างอิงจาก พด.

ทำการ Download Shapefiles การใช้ที่ดินของจากกรมพัฒนาที่ดิน จังหวัดระยอง ปี 2024
2. เลือกไฟล์ .shp ทั้งสองไฟล์เข้ามาในโปรแกรม:
ไฟล์ LU_RYG_2567.shp (ข้อมูลการใช้ที่ดิน)
ไฟล์ขอบเขตการปกครองระดับอำเภอของระยอง
3. ทำการ Clip พื้นที่ด้วย QGIS
image.png
ขั้นตอนที่ 1.2: การตั้งค่าสภาพแวดล้อมการทดลอง (Setting up the Environment)
Action: เตรียมสภาพแวดล้อมการทำงานบน Google Earth Engine (GEE) และ Python
GEE: เขียนสคริปต์เพื่อเรียกใช้ข้อมูล AEF Embeddings และ Sentinel-2, ทำการสุ่มตัวอย่างข้อมูล (Sampling) ตามตำแหน่งของข้อมูลอ้างอิงจาก พด.
Python: ติดตั้งไลบรารีที่จำเป็น เช่น scikit-learn, geopandas, rasterio, matplotlib เพื่อใช้ในการฝึกโมเดลและวิเคราะห์ผล
Deliverable: สคริปต์ GEE ที่พร้อมใช้งาน และสภาพแวดล้อม Python ที่ตั้งค่าเสร็จสมบูรณ์
// =================================================================================
// GEE JS: เตรียมข้อมูลและส่งออก AEF (64 bands) + Sentinel-2 (13 bands+indices)
// =================================================================================

// 1) นำเข้าข้อมูลและกำหนดพื้นที่ศึกษา
var groundTruth = ee.FeatureCollection('projects/learn-rs-gis/assets/LULC_PluakDaeng_BanKhai_2024');
var amphoeBoundary = ee.FeatureCollection('projects/learn-rs-gis/assets/Rayong_Amphoe_Boundary');

var targetAmphoeNames = ['Amphoe Pluagdeang', 'Amphoe Bankhai'];
var studyArea = amphoeBoundary
.filter(ee.Filter.inList('AMPHOE_E', targetAmphoeNames))
.union();

var year = 2024;
var classProperty = 'LU_CODE';

// 2) เตรียมจุด Ground Truth เป็น centroid พร้อม longitude, latitude
var lulcPoints = groundTruth
.filterBounds(studyArea)
.map(function(f) {
var centroid = f.geometry().centroid();
var coords = centroid.coordinates();
return f.setGeometry(centroid)
.set('longitude', coords.get(0))
.set('latitude', coords.get(1));
});
ขั้นตอนที่ 1.3: การสร้างชุดข้อมูลพื้นฐาน (Creating the Baseline Datasets)
Action: ดำเนินการสกัดข้อมูล (Feature Extraction) สำหรับการทดลองทั้ง 2 รูปแบบ จากตำแหน่งข้อมูลอ้างอิงเดียวกัน
Dataset A (AEF): สกัดเวกเตอร์ 64 มิติจากชุดข้อมูล AEF 2 นี่จะเป็นกระบวนการที่ตรงไปตรงมา เพราะข้อมูลพร้อมใช้งานอยู่แล้ว
Dataset B (Sentinel-2 Baseline): สร้างข้อมูลเปรียบเทียบโดยใช้ภาพ Sentinel-2 Level-2A 2 ซึ่งต้องผ่านขั้นตอนที่ซับซ้อนกว่า: 1) การกรองเมฆและเงาเมฆโดยใช้แบนด์ SCL, 2) การคำนวณดัชนีพืชพรรณและดัชนีอื่นๆ (NDVI, NDWI, NDBI), 3) การสร้างภาพสังเคราะห์รายปี (เช่น ค่ามัธยฐาน) เพื่อให้สอดคล้องกับ AEF, 4) สกัดค่าจากทุกแบนด์และดัชนี
Deliverable: ไฟล์ข้อมูล (เช่น CSV) 2 ชุด ที่มีจำนวนตัวอย่างและป้ายกำกับ (label) เดียวกัน แต่มีชุดคุณลักษณะ (features) ที่แตกต่างกัน
// 3) โหลดภาพ AEF Embeddings และ Sentinel-2 composite
var aefImage = ee.ImageCollection('GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL')
.filterDate(year + '-01-01', year + '-12-31')
.filterBounds(studyArea)
.mosaic()
.clip(studyArea);
var aefBands = aefImage.bandNames();

function maskS2clouds(image) {
var scl = image.select('SCL');
var mask = scl.eq(4).or(scl.eq(5)).or(scl.eq(6))
.or(scl.eq(7)).or(scl.eq(11));
return image.updateMask(mask);
}
function addIndices(image) {
var ndvi = image.normalizedDifference(['B8','B4']).rename('NDVI');
var ndwi = image.normalizedDifference(['B3','B8']).rename('NDWI');
var ndbi = image.normalizedDifference(['B11','B8']).rename('NDBI');
return image.addBands([ndvi, ndwi, ndbi]);
}

var s2Collection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
.filterDate(year + '-01-01', year + '-12-31')
.filterBounds(studyArea)
.map(maskS2clouds)
.map(addIndices);

var s2Image = s2Collection
.qualityMosaic('NDVI')
.clip(studyArea);

var s2Bands = [
'B2','B3','B4','B5','B6','B7','B8','B8A','B11','B12',
'NDVI','NDWI','NDBI'
];

// 4) กำหนดการแบ่ง batch และ export
var batchSize = 1000; // ปรับลดหากยัง error
var totalPoints = lulcPoints.size().getInfo();
var numBatch = Math.ceil(totalPoints / batchSize);

print('Total points:', totalPoints);
print('Number of batches:', numBatch);

var randPoints = lulcPoints.randomColumn('rand');

for (var i = 0; i < numBatch; i++) {
var minR = i / numBatch;
var maxR = (i + 1) / numBatch;
var batch = randPoints
.filter(ee.Filter.gte('rand', minR))
.filter(ee.Filter.lt('rand', maxR));
// 4.1) Export AEF samples
var aefSamples = aefImage.select(aefBands).sampleRegions({
collection: batch,
properties: [classProperty, 'longitude', 'latitude'],
scale: 10,
tileScale: 16, // ปรับเป็นค่าที่ valid (1-16)
geometries: false
});
Export.table.toDrive({
collection: aefSamples,
description: 'AEF_64bands_Rayong2024_b' + (i+1),
folder: 'GEE_Research_Data',
fileNamePrefix: 'aef_64b_rayong2024_b' + (i+1),
fileFormat: 'CSV'
});
// 4.2) Export Sentinel-2 samples
var s2Samples = s2Image.select(s2Bands).sampleRegions({
collection: batch,
properties: [classProperty, 'longitude', 'latitude'],
scale: 10,
tileScale: 16, // ปรับเป็นค่าที่ valid (1-16)
geometries: false
});
Export.table.toDrive({
collection: s2Samples,
description: 'S2_13bands_Rayong2024_b' + (i+1),
folder: 'GEE_Research_Data',
fileNamePrefix: 's2_13b_rayong2024_b' + (i+1),
fileFormat: 'CSV'
});
print('Export batch', i+1, 'size:', batch.size());
}

// 5) แสดงผลบนแผนที่ (ตัวเลือก)
Map.centerObject(studyArea, 10);
Map.addLayer(studyArea, {color: 'red'}, 'Study Area');
Map.addLayer(lulcPoints, {color: 'yellow'}, 'Ground Truth Points');


Phase 2: การออกแบบและดำเนินการทดลอง Few-Shot Learning (FSL Experiment Design & Execution) - (สัปดาห์ที่ 4-7)

นี่คือหัวใจของงานวิจัย เราจะทำการทดลองอย่างเป็นระบบเพื่อวัด "ความคุ้มค่า" ของข้อมูล
ขั้นตอนที่ 2.1: การออกแบบโปรโตคอลการสุ่มตัวอย่าง (Sampling Protocol Design)
Action: จากชุดข้อมูลฝึกฝนทั้งหมด (เช่น 80% ของข้อมูลทั้งหมด) ให้เขียนสคริปต์เพื่อสุ่มตัวอย่างย่อย (sub-sampling) สำหรับสถานการณ์ Few-Shot Learning (FSL) ต่างๆ 2 โดยกำหนดระดับการทดลองเป็น "k-shot" (จำนวนตัวอย่างต่อคลาส) ดังนี้:
k = 1 (1-shot learning)
k = 5 (5-shot learning)
k = 10
k = 25
k = 50
k = 100
k = 200
k = All (ใช้ข้อมูลฝึกฝนทั้งหมดเพื่อเป็นเพดานประสิทธิภาพ)
สิ่งสำคัญ: สำหรับแต่ละค่า k เราต้องทำการสุ่มตัวอย่างซ้ำๆ (เช่น 30 รอบ) เพื่อให้ผลลัพธ์มีความน่าเชื่อถือทางสถิติและไม่ขึ้นอยู่กับโชคในการสุ่มเพียงครั้งเดียว
Deliverable: ชุดของ "ดัชนี" (indices) ของข้อมูลตัวอย่างสำหรับแต่ละ k และแต่ละรอบการทดลอง
นี่คือ โค้ดจัดการเตรียมข้อมูล
ไฟล์นี้คือไฟล์ผลลัพธ์
Rayong2024_AEF_S2_Combined.csv
25.2 MB

ขั้นตอนที่ 2.2: การฝึกและประเมินผลโมเดลวนซ้ำ (Iterative Model Training & Evaluation)
Action: สร้าง Loop การทดลองอัตโนมัติเพื่อดำเนินการฝึกและประเมินผลโมเดลตามโปรโตคอลที่ออกแบบไว้
สำหรับแต่ละค่า k:
สำหรับแต่ละรอบการสุ่ม (1 ถึง 30):
เลือกข้อมูลฝึกฝนชุดย่อยตามดัชนีที่สุ่มไว้
ฝึกโมเดล Random Forest (A) โดยใช้ข้อมูลจาก Dataset A (AEF)
ฝึกโมเดล Random Forest (B) โดยใช้ข้อมูลจาก Dataset B (Sentinel-2)
ประเมินความแม่นยำของโมเดลทั้งสองด้วย ชุดข้อมูลทดสอบ (Validation Set) ชุดเดียวกันเสมอ (30% ของข้อมูลทั้งหมดที่แยกไว้ตั้งแต่แรก)
บันทึกผลลัพธ์ (Overall Accuracy, Kappa, F1-Score) ของทั้งสองโมเดลสำหรับรอบนั้นๆ
Deliverable: ตารางข้อมูลขนาดใหญ่ที่รวบรวมผลการประเมินความแม่นยำทั้งหมดจากการทดลองทุกระดับ k และทุกรอบ

Phase 3: การวิเคราะห์และตีความผลลัพธ์ (Analysis & Interpretation) - (สัปดาห์ที่ 8-10)

ระยะนี้คือการเปลี่ยนตัวเลขจากตารางผลลัพธ์ให้กลายเป็นองค์ความรู้และข้อสรุปที่น่าสนใจ
ขั้นตอนที่ 3.1: การสร้างกราฟ Learning Curves
Action: คำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของความแม่นยำสำหรับแต่ละค่า k จากนั้นนำมาพล็อตเป็นกราฟ
แกน X: จำนวนตัวอย่างที่ใช้ฝึกต่อคลาส (Number of shots, k)
แกน Y: ค่าความแม่นยำ (เช่น Overall Accuracy)
ผลลัพธ์ที่คาดหวัง: เราจะได้กราฟ 2 เส้น เส้นหนึ่งสำหรับ AEF และอีกเส้นสำหรับ Sentinel-2 เราคาดว่าเส้นของ AEF จะเริ่มต้นที่จุดสูงกว่าและชันน้อยกว่า ซึ่งเป็นการแสดงให้เห็นภาพอย่างชัดเจนว่า AEF ต้องการข้อมูลน้อยกว่าเพื่อให้ได้ความแม่นยำในระดับที่ยอมรับได้
Deliverable: กราฟ Learning Curves ที่สวยงามและพร้อมสำหรับใส่ในบทความวิจัย

ตาราง “Few-Shot Learning Curve Results” เปรียบเทียบ mean ± std ของ Accuracy, F1, Kappa สำหรับแต่ละ k (จำนวนตัวอย่างต่อคลาส) ทั้งของ AlphaEarth (AEF) และ Sentinel-2 (S2):
Table 2
k-shot
AEF_Acc (mean±std)
S2_Acc (mean±std)
AEF_F1 (mean±std)
S2_F1 (mean±std)
AEF_Kappa (mean±std)
S2_Kappa (mean±std)
1
0.049 ± 0.019
0.026 ± 0.008
0.069 ± 0.027
0.039 ± 0.014
0.036 ± 0.016
0.016 ± 0.007
5
0.109 ± 0.018
0.043 ± 0.010
0.149 ± 0.026
0.064 ± 0.016
0.091 ± 0.016
0.030 ± 0.008
10
0.144 ± 0.015
0.059 ± 0.008
0.189 ± 0.018
0.088 ± 0.012
0.123 ± 0.012
0.043 ± 0.007
25
0.218 ± 0.012
0.092 ± 0.008
0.268 ± 0.014
0.127 ± 0.012
0.188 ± 0.011
0.070 ± 0.007
50
0.289 ± 0.011
0.139 ± 0.008
0.330 ± 0.011
0.179 ± 0.010
0.251 ± 0.010
0.108 ± 0.007
100
0.346 ± 0.007
0.194 ± 0.007
0.374 ± 0.007
0.231 ± 0.008
0.303 ± 0.007
0.154 ± 0.007
200
0.395 ± 0.005
0.248 ± 0.007
0.408 ± 0.005
0.273 ± 0.007
0.348 ± 0.005
0.199 ± 0.007
all
0.491 ± 0.003
0.396 ± 0.003
0.425 ± 0.003
0.327 ± 0.003
0.414 ± 0.004
0.301 ± 0.003
There are no rows in this table

learning_curve.png
ขั้นตอนที่ 3.2: การวิเคราะห์เชิงสถิติ (Statistical Analysis)
Action: ใช้การทดสอบนัยสำคัญทางสถิติ (เช่น Paired t-test) เพื่อเปรียบเทียบความแตกต่างของความแม่นยำระหว่างสองโมเดลในแต่ละระดับ k
Deliverable: ตารางสรุปผลการทดสอบทางสถิติ (p-values) เพื่อยืนยันว่าประสิทธิภาพที่เหนือกว่าของ AEF นั้นมีนัยสำคัญทางสถิติ ไม่ใช่เรื่องบังเอิญ
Statistical Significance Table (t-test และ Wilcoxon) เปรียบเทียบผล accuracy เฉลี่ยของ AEF vs S2 ในแต่ละ k-shot มีค่า t-stat, p-value และ w-stat, p-value อย่างละเอียด
Table 3
k
AEF mean
S2 mean
t-stat
p-value (t)
w-stat
p-value (wilc)
1
0.05
0.03
7.13
7.689e-08
5
1.863e-08
5
0.11
0.04
18.71
9.972e-18
0
1.863e-09
10
0.14
0.06
39.55
8.795e-27
0
1.863e-09
25
0.22
0.09
62.14
2.084e-32
0
1.863e-09
50
0.29
0.14
90.86
3.610e-37
0
1.863e-09
100
0.35
0.19
99.79
2.401e-38
0
1.863e-09
200
0.4
0.25
96.91
5.597e-38
0
1.863e-09
All
0.49
0.4
111.18
1.054e-39
0
1.863e-09
There are no rows in this table
เกือบทุกกรณี p < 0.001 แปลว่าความแตกต่างระหว่าง AEF กับ S2 “มีนัยสำคัญมาก”
ตารางนี้เหมาะกับวางในผล ท้าย learning curve หรือ analytical table ใน paper
ขั้นตอนที่ 3.3: การวิเคราะห์ความผิดพลาดเชิงพื้นที่ (Spatial Error Analysis)
Action: สร้างแผนที่แสดงความผิดพลาด (Error Map) จากโมเดลที่ดีที่สุด (ที่ใช้ข้อมูลทั้งหมด) เพื่อวิเคราะห์ว่ามีพื้นที่หรือประเภท LULC ใดที่โมเดลทั้งสองมักจะจำแนกผิดพลาด และ AEF สามารถแก้ไขข้อผิดพลาดเหล่านั้นได้ดีกว่าในบริเวณใดบ้าง
Deliverable: แผนที่และบทวิเคราะห์เชิงลึกเกี่ยวกับรูปแบบความผิดพลาดเชิงพื้นที่

วิเคราะห์ Confusion Matrix Best Model (AEF, k-all) พร้อมรายละเอียดจาก LUCODE-lv3

Top-5 Class ที่โมเดลแม่นยำสูงสุด (มีตัวอย่าง ≥ 10)

Table 4
LUCODE
ไทย/อังกฤษ
Accuracy
ถูก/ทั้งหมด
U201
หมู่บ้านบนพื้นราบ /Village
0.87
610/700
W202
บ่อน้ำในไร่นา/Farm pond
0.76
124/163
A302
ยางพารา/Para rubber
0.75
433/577
A303
ปาล์มน้ำมัน/ Oil palm
0.69
89/129
A204
มันสำปะหลัง/ Cassava
0.6
167/279
There are no rows in this table
confmat_top5.png

Bottom-5 Class ที่โมเดลแม่นยำต่ำสุด (มีตัวอย่าง ≥ 10)

Table 5
LUCODE
ไทย/อังกฤษ
Accuracy
ถูก/ทั้งหมด
A200
ไร่ร้าง/ Abandoned field crop
0
0/37
A204/A302
มันสำปะหลัง Cassava / ยางพารา Para rubber
0
0/15
A317
หมาก Betel palm
0
0/33
A301
ไม้ยืนต้นผสม Mixed perennial
0
0/19
A317/A401
หมาก Betel palm / ไม้ผลผสม Mixed orchard
0
0/26
There are no rows in this table
confmat_bottom5.png

สรุป

คลาส U201, W202, A302, A303, A204 เป็น major class ที่โมเดลจำแนกได้แม่น (accuracy >60–87% และจำนวนตัวอย่างมาก)
ส่วนคลาส A200, A204/A302, A317, A301, A317/A401 คือกรณีที่โมเดลแยกไม่ได้เลย (accuracy = 0) แม้มีตัวอย่างมากกว่าขั้นต่ำ
ความแม่นยำเฉลี่ยรวมทุกคลาส ~0.49 (ดูจากการวิเคราะห์ก่อนหน้า)

ข้อเสนอแนะ

นำเสนอ confusion matrix เฉพาะ major/top class ในงานหลัก
เหตุที่ class เล็ก/แม้มีจำนวนแต่แยกไม่ได้ อาจเกิดจาก feature ไม่ชัด, ลักษณะ overlapped, หรือโมเดล bias กับข้อมูลเยอะ
ใน discussion ให้ระบุว่า สถานการณ์ LULC classification จริงมี class imbalance และบางประเภทจำแนกยาก/ต้องทำ data balancing/augmentation



วิเคราะห์ Confusion Matrix Sentinel-2 (k-all, best model)

Top-5 Class ที่โมเดลแยกได้ดีที่สุด (มีตัวอย่าง ≥ 10)

Table 6
LUCODE
รายละเอียด
Accuracy
ถูก/ทั้งหมด
U201
หมู่บ้านบนพื้นราบ /Village
0.76
533/700
A302
ยางพารา/Para rubber
0.75
435/577
W202
บ่อน้ำในไร่นา/Farm pond
0.6
98/163
A303
ปาล์มน้ำมัน Oil palm
0.58
75/129
A204
มันสำปะหลัง Cassava
0.33
93/279
There are no rows in this table
confmat_s2_top5.png

Bottom-5 Class ที่โมเดลแย่/สับสนมาก (มีตัวอย่าง ≥ 10)

Table 7
LUCODE
รายละเอียด
Accuracy
ถูก/ทั้งหมด
A200
ไร่ร้าง/ Abandoned field crop
0
0/37
A204/A302
มันสำปะหลัง Cassava / ยางพารา Para rubber
0
0/15
A304
ยูคาลิปตัส / Eucalyptus
0
0/15
A301
ไม้ยืนต้นผสม / Mixed perennial
0
0/19
M201
พื้นที่ลุ่ม Marsh and Swamp
0
0/24
There are no rows in this table
confmat_s2_bottom5.png


ภาพรวมและข้อสังเกต

U201 และ A302 ยังคงเป็นคลาสที่โมเดล Sentinel-2 แยกได้ดีที่สุด (เหมือนกับโมเดล AEF)
โมเดล Sentinel-2 แยกคลาส A303, W202 ได้ดีใน top-5 ด้วย accuracy 58–60%
A204 accuracy ต่ำลงกว่าผล AEF (เหลือ 0.333)
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.