ee.Classifier.confusionMatrix
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
यह फ़ंक्शन, क्लासिफ़ायर के ट्रेनिंग डेटा के आधार पर, उसके लिए 2D कन्फ़्यूज़न मैट्रिक्स का हिसाब लगाता है. जैसे, रीसबस्टिट्यूशन की गड़बड़ी. मैट्रिक्स का ऐक्सिस 0, इनपुट क्लास से जुड़ा होता है और ऐक्सिस 1, आउटपुट क्लास से जुड़ा होता है. पंक्तियां और कॉलम, क्लास 0 से शुरू होते हैं और ज़्यादा से ज़्यादा क्लास वैल्यू तक क्रम से बढ़ते हैं. इसलिए, अगर इनपुट क्लास 0 से शुरू नहीं होती हैं या क्रम से नहीं होती हैं, तो कुछ पंक्तियां या कॉलम खाली हो सकते हैं.
इस्तेमाल | रिटर्न |
---|
Classifier.confusionMatrix() | ConfusionMatrix |
आर्ग्यूमेंट | टाइप | विवरण |
---|
यह: classifier | कैटगरी तय करने वाला | इस्तेमाल किया जाने वाला क्लासिफ़ायर. |
उदाहरण
कोड एडिटर (JavaScript)
// A Sentinel-2 surface reflectance image, reflectance bands selected,
// serves as the source for training and prediction in this contrived example.
var img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')
.select('B.*');
// ESA WorldCover land cover map, used as label source in classifier training.
var lc = ee.Image('ESA/WorldCover/v100/2020');
// Remap the land cover class values to a 0-based sequential series.
var classValues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100];
var remapValues = ee.List.sequence(0, 10);
var label = 'lc';
lc = lc.remap(classValues, remapValues).rename(label).toByte();
// Add land cover as a band of the reflectance image and sample 100 pixels at
// 10 m scale from each land cover class within a region of interest.
var roi = ee.Geometry.Rectangle(-122.347, 37.743, -122.024, 37.838);
var sample = img.addBands(lc).stratifiedSample({
numPoints: 100,
classBand: label,
region: roi,
scale: 10,
geometries: true
});
// Add a random value field to the sample and use it to approximately split 80%
// of the features into a training set and 20% into a validation set.
sample = sample.randomColumn();
var trainingSample = sample.filter('random <= 0.8');
var validationSample = sample.filter('random > 0.8');
// Train a 10-tree random forest classifier from the training sample.
var trainedClassifier = ee.Classifier.smileRandomForest(10).train({
features: trainingSample,
classProperty: label,
inputProperties: img.bandNames()
});
// Get information about the trained classifier.
print('Results of trained classifier', trainedClassifier.explain());
// Get a confusion matrix and overall accuracy for the training sample.
var trainAccuracy = trainedClassifier.confusionMatrix();
print('Training error matrix', trainAccuracy);
print('Training overall accuracy', trainAccuracy.accuracy());
// Get a confusion matrix and overall accuracy for the validation sample.
validationSample = validationSample.classify(trainedClassifier);
var validationAccuracy = validationSample.errorMatrix(label, 'classification');
print('Validation error matrix', validationAccuracy);
print('Validation accuracy', validationAccuracy.accuracy());
// Classify the reflectance image from the trained classifier.
var imgClassified = img.classify(trainedClassifier);
// Add the layers to the map.
var classVis = {
min: 0,
max: 10,
palette: ['006400' ,'ffbb22', 'ffff4c', 'f096ff', 'fa0000', 'b4b4b4',
'f0f0f0', '0064c8', '0096a0', '00cf75', 'fae6a0']
};
Map.setCenter(-122.184, 37.796, 12);
Map.addLayer(img, {bands: ['B11', 'B8', 'B3'], min: 100, max: 3500}, 'img');
Map.addLayer(lc, classVis, 'lc');
Map.addLayer(imgClassified, classVis, 'Classified');
Map.addLayer(roi, {color: 'white'}, 'ROI', false, 0.5);
Map.addLayer(trainingSample, {color: 'black'}, 'Training sample', false);
Map.addLayer(validationSample, {color: 'white'}, 'Validation sample', false);
Python सेटअप करना
Python API और इंटरैक्टिव डेवलपमेंट के लिए geemap
का इस्तेमाल करने के बारे में जानकारी पाने के लिए,
Python एनवायरमेंट पेज देखें.
import ee
import geemap.core as geemap
Colab (Python)
# A Sentinel-2 surface reflectance image, reflectance bands selected,
# serves as the source for training and prediction in this contrived example.
img = ee.Image(
'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG'
).select('B.*')
# ESA WorldCover land cover map, used as label source in classifier training.
lc = ee.Image('ESA/WorldCover/v100/2020')
# Remap the land cover class values to a 0-based sequential series.
class_values = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100]
remap_values = ee.List.sequence(0, 10)
label = 'lc'
lc = lc.remap(class_values, remap_values).rename(label).toByte()
# Add land cover as a band of the reflectance image and sample 100 pixels at
# 10 m scale from each land cover class within a region of interest.
roi = ee.Geometry.Rectangle(-122.347, 37.743, -122.024, 37.838)
sample = img.addBands(lc).stratifiedSample(
numPoints=100, classBand=label, region=roi, scale=10, geometries=True
)
# Add a random value field to the sample and use it to approximately split 80%
# of the features into a training set and 20% into a validation set.
sample = sample.randomColumn()
training_sample = sample.filter('random <= 0.8')
validation_sample = sample.filter('random > 0.8')
# Train a 10-tree random forest classifier from the training sample.
trained_classifier = ee.Classifier.smileRandomForest(10).train(
features=training_sample,
classProperty=label,
inputProperties=img.bandNames(),
)
# Get information about the trained classifier.
display('Results of trained classifier', trained_classifier.explain())
# Get a confusion matrix and overall accuracy for the training sample.
train_accuracy = trained_classifier.confusionMatrix()
display('Training error matrix', train_accuracy)
display('Training overall accuracy', train_accuracy.accuracy())
# Get a confusion matrix and overall accuracy for the validation sample.
validation_sample = validation_sample.classify(trained_classifier)
validation_accuracy = validation_sample.errorMatrix(label, 'classification')
display('Validation error matrix', validation_accuracy)
display('Validation accuracy', validation_accuracy.accuracy())
# Classify the reflectance image from the trained classifier.
img_classified = img.classify(trained_classifier)
# Add the layers to the map.
class_vis = {
'min': 0,
'max': 10,
'palette': [
'006400',
'ffbb22',
'ffff4c',
'f096ff',
'fa0000',
'b4b4b4',
'f0f0f0',
'0064c8',
'0096a0',
'00cf75',
'fae6a0',
],
}
m = geemap.Map()
m.set_center(-122.184, 37.796, 12)
m.add_layer(
img, {'bands': ['B11', 'B8', 'B3'], 'min': 100, 'max': 3500}, 'img'
)
m.add_layer(lc, class_vis, 'lc')
m.add_layer(img_classified, class_vis, 'Classified')
m.add_layer(roi, {'color': 'white'}, 'ROI', False, 0.5)
m.add_layer(training_sample, {'color': 'black'}, 'Training sample', False)
m.add_layer(
validation_sample, {'color': 'white'}, 'Validation sample', False
)
m
जब तक कुछ अलग से न बताया जाए, तब तक इस पेज की सामग्री को Creative Commons Attribution 4.0 License के तहत और कोड के नमूनों को Apache 2.0 License के तहत लाइसेंस मिला है. ज़्यादा जानकारी के लिए, Google Developers साइट नीतियां देखें. Oracle और/या इससे जुड़ी हुई कंपनियों का, Java एक रजिस्टर किया हुआ ट्रेडमार्क है.
आखिरी बार 2025-07-26 (UTC) को अपडेट किया गया.
[null,null,["आखिरी बार 2025-07-26 (UTC) को अपडेट किया गया."],[[["\u003cp\u003e\u003ccode\u003econfusionMatrix()\u003c/code\u003e computes a 2D confusion matrix, representing the performance of a classifier by comparing predicted versus actual class values from its training data.\u003c/p\u003e\n"],["\u003cp\u003eThe matrix axes correspond to input (rows) and output (columns) classes, starting at 0 and increasing sequentially.\u003c/p\u003e\n"],["\u003cp\u003eRows or columns may be empty if input classes aren't 0-based or sequential, reflecting potential gaps in the class range.\u003c/p\u003e\n"],["\u003cp\u003eThis function is called on a classifier object and returns a \u003ccode\u003eConfusionMatrix\u003c/code\u003e object which can be used for further analysis, such as calculating overall accuracy.\u003c/p\u003e\n"]]],[],null,["# ee.Classifier.confusionMatrix\n\nComputes a 2D confusion matrix for a classifier based on its training data (e.g., resubstitution error). Axis 0 of the matrix corresponds to the input classes and axis 1 corresponds to the output classes. The rows and columns start at class 0 and increase sequentially up to the maximum class value, so some rows or columns might be empty if the input classes aren't 0-based or sequential.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|--------------------------------|-----------------|\n| Classifier.confusionMatrix`()` | ConfusionMatrix |\n\n| Argument | Type | Details |\n|--------------------|------------|------------------------|\n| this: `classifier` | Classifier | The classifier to use. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// A Sentinel-2 surface reflectance image, reflectance bands selected,\n// serves as the source for training and prediction in this contrived example.\nvar img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')\n .select('B.*');\n\n// ESA WorldCover land cover map, used as label source in classifier training.\nvar lc = ee.Image('ESA/WorldCover/v100/2020');\n\n// Remap the land cover class values to a 0-based sequential series.\nvar classValues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100];\nvar remapValues = ee.List.sequence(0, 10);\nvar label = 'lc';\nlc = lc.remap(classValues, remapValues).rename(label).toByte();\n\n// Add land cover as a band of the reflectance image and sample 100 pixels at\n// 10 m scale from each land cover class within a region of interest.\nvar roi = ee.Geometry.Rectangle(-122.347, 37.743, -122.024, 37.838);\nvar sample = img.addBands(lc).stratifiedSample({\n numPoints: 100,\n classBand: label,\n region: roi,\n scale: 10,\n geometries: true\n});\n\n// Add a random value field to the sample and use it to approximately split 80%\n// of the features into a training set and 20% into a validation set.\nsample = sample.randomColumn();\nvar trainingSample = sample.filter('random \u003c= 0.8');\nvar validationSample = sample.filter('random \u003e 0.8');\n\n// Train a 10-tree random forest classifier from the training sample.\nvar trainedClassifier = ee.Classifier.smileRandomForest(10).train({\n features: trainingSample,\n classProperty: label,\n inputProperties: img.bandNames()\n});\n\n// Get information about the trained classifier.\nprint('Results of trained classifier', trainedClassifier.explain());\n\n// Get a confusion matrix and overall accuracy for the training sample.\nvar trainAccuracy = trainedClassifier.confusionMatrix();\nprint('Training error matrix', trainAccuracy);\nprint('Training overall accuracy', trainAccuracy.accuracy());\n\n// Get a confusion matrix and overall accuracy for the validation sample.\nvalidationSample = validationSample.classify(trainedClassifier);\nvar validationAccuracy = validationSample.errorMatrix(label, 'classification');\nprint('Validation error matrix', validationAccuracy);\nprint('Validation accuracy', validationAccuracy.accuracy());\n\n// Classify the reflectance image from the trained classifier.\nvar imgClassified = img.classify(trainedClassifier);\n\n// Add the layers to the map.\nvar classVis = {\n min: 0,\n max: 10,\n palette: ['006400' ,'ffbb22', 'ffff4c', 'f096ff', 'fa0000', 'b4b4b4',\n 'f0f0f0', '0064c8', '0096a0', '00cf75', 'fae6a0']\n};\nMap.setCenter(-122.184, 37.796, 12);\nMap.addLayer(img, {bands: ['B11', 'B8', 'B3'], min: 100, max: 3500}, 'img');\nMap.addLayer(lc, classVis, 'lc');\nMap.addLayer(imgClassified, classVis, 'Classified');\nMap.addLayer(roi, {color: 'white'}, 'ROI', false, 0.5);\nMap.addLayer(trainingSample, {color: 'black'}, 'Training sample', false);\nMap.addLayer(validationSample, {color: 'white'}, 'Validation sample', false);\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# A Sentinel-2 surface reflectance image, reflectance bands selected,\n# serves as the source for training and prediction in this contrived example.\nimg = ee.Image(\n 'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG'\n).select('B.*')\n\n# ESA WorldCover land cover map, used as label source in classifier training.\nlc = ee.Image('ESA/WorldCover/v100/2020')\n\n# Remap the land cover class values to a 0-based sequential series.\nclass_values = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100]\nremap_values = ee.List.sequence(0, 10)\nlabel = 'lc'\nlc = lc.remap(class_values, remap_values).rename(label).toByte()\n\n# Add land cover as a band of the reflectance image and sample 100 pixels at\n# 10 m scale from each land cover class within a region of interest.\nroi = ee.Geometry.Rectangle(-122.347, 37.743, -122.024, 37.838)\nsample = img.addBands(lc).stratifiedSample(\n numPoints=100, classBand=label, region=roi, scale=10, geometries=True\n)\n\n# Add a random value field to the sample and use it to approximately split 80%\n# of the features into a training set and 20% into a validation set.\nsample = sample.randomColumn()\ntraining_sample = sample.filter('random \u003c= 0.8')\nvalidation_sample = sample.filter('random \u003e 0.8')\n\n# Train a 10-tree random forest classifier from the training sample.\ntrained_classifier = ee.Classifier.smileRandomForest(10).train(\n features=training_sample,\n classProperty=label,\n inputProperties=img.bandNames(),\n)\n\n# Get information about the trained classifier.\ndisplay('Results of trained classifier', trained_classifier.explain())\n\n# Get a confusion matrix and overall accuracy for the training sample.\ntrain_accuracy = trained_classifier.confusionMatrix()\ndisplay('Training error matrix', train_accuracy)\ndisplay('Training overall accuracy', train_accuracy.accuracy())\n\n# Get a confusion matrix and overall accuracy for the validation sample.\nvalidation_sample = validation_sample.classify(trained_classifier)\nvalidation_accuracy = validation_sample.errorMatrix(label, 'classification')\ndisplay('Validation error matrix', validation_accuracy)\ndisplay('Validation accuracy', validation_accuracy.accuracy())\n\n# Classify the reflectance image from the trained classifier.\nimg_classified = img.classify(trained_classifier)\n\n# Add the layers to the map.\nclass_vis = {\n 'min': 0,\n 'max': 10,\n 'palette': [\n '006400',\n 'ffbb22',\n 'ffff4c',\n 'f096ff',\n 'fa0000',\n 'b4b4b4',\n 'f0f0f0',\n '0064c8',\n '0096a0',\n '00cf75',\n 'fae6a0',\n ],\n}\nm = geemap.Map()\nm.set_center(-122.184, 37.796, 12)\nm.add_layer(\n img, {'bands': ['B11', 'B8', 'B3'], 'min': 100, 'max': 3500}, 'img'\n)\nm.add_layer(lc, class_vis, 'lc')\nm.add_layer(img_classified, class_vis, 'Classified')\nm.add_layer(roi, {'color': 'white'}, 'ROI', False, 0.5)\nm.add_layer(training_sample, {'color': 'black'}, 'Training sample', False)\nm.add_layer(\n validation_sample, {'color': 'white'}, 'Validation sample', False\n)\nm\n```"]]