公告 :凡是在
2025 年 4 月 15 日 前註冊使用 Earth Engine 的非商業專案,都必須
驗證非商業用途資格 ,才能繼續存取 Earth Engine。
提供意見
ee.FeatureCollection.errorMatrix
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
比較集合的兩個資料欄,計算集合的 2D 錯誤矩陣:一個資料欄包含實際值,另一個資料欄包含預測值。這些值應為從 0 開始的連續整數。矩陣的軸 0 (資料列) 對應實際值,軸 1 (資料欄) 則對應預測值。
用量 傳回 FeatureCollection. errorMatrix (actual, predicted, order )
ConfusionMatrix
引數 類型 詳細資料 這個:collection
FeatureCollection 輸入集合。 actual
字串 包含實際值的屬性名稱。 predicted
字串 包含預測值的屬性名稱。 order
清單,預設值為空值 預期值清單。如未指定這個引數,系統會假設值是連續的,且範圍介於 0 到 maxValue 之間。如果指定,系統只會使用符合這個清單的值,且矩陣的維度和順序會與這個清單相符。
範例
程式碼編輯器 (JavaScript)
/**
* Classifies features in a FeatureCollection and computes an error matrix.
*/
// Combine Landsat and NLCD images using only the bands representing
// predictor variables (spectral reflectance) and target labels (land cover).
var spectral =
ee . Image ( 'LANDSAT/LC08/C02/T1_L2/LC08_038032_20160820' ). select ( 'SR_B[1-7]' );
var landcover =
ee . Image ( 'USGS/NLCD_RELEASES/2016_REL/2016' ). select ( 'landcover' );
var sampleSource = spectral . addBands ( landcover );
// Sample the combined images to generate a FeatureCollection.
var sample = sampleSource . sample ({
region : spectral . geometry (), // sample only from within Landsat image extent
scale : 30 ,
numPixels : 2000 ,
geometries : true
})
// Add a random value column with uniform distribution for hold-out
// training/validation splitting.
. randomColumn ({ distribution : 'uniform' });
print ( 'Sample for classifier development' , sample );
// Split out ~80% of the sample for training the classifier.
var training = sample . filter ( 'random < 0.8' );
print ( 'Training set' , training );
// Train a random forest classifier.
var classifier = ee . Classifier . smileRandomForest ( 10 ). train ({
features : training ,
classProperty : landcover . bandNames (). get ( 0 ),
inputProperties : spectral . bandNames ()
});
// Classify the sample.
var predictions = sample . classify (
{ classifier : classifier , outputName : 'predicted_landcover' });
print ( 'Predictions' , predictions );
// Split out the validation feature set.
var validation = predictions . filter ( 'random >= 0.8' );
print ( 'Validation set' , validation );
// Get a list of possible class values to use for error matrix axis labels.
var order = sample . aggregate_array ( 'landcover' ). distinct (). sort ();
print ( 'Error matrix axis labels' , order );
// Compute an error matrix that compares predicted vs. expected values.
var errorMatrix = validation . errorMatrix ({
actual : landcover . bandNames (). get ( 0 ),
predicted : 'predicted_landcover' ,
order : order
});
print ( 'Error matrix' , errorMatrix );
// Compute accuracy metrics from the error matrix.
print ( "Overall accuracy" , errorMatrix . accuracy ());
print ( "Consumer's accuracy" , errorMatrix . consumersAccuracy ());
print ( "Producer's accuracy" , errorMatrix . producersAccuracy ());
print ( "Kappa" , errorMatrix . kappa ());
Python 設定
請參閱
Python 環境 頁面,瞭解 Python API 和如何使用 geemap
進行互動式開發。
import ee
import geemap.core as geemap
Colab (Python)
from pprint import pprint
# Classifies features in a FeatureCollection and computes an error matrix.
# Combine Landsat and NLCD images using only the bands representing
# predictor variables (spectral reflectance) and target labels (land cover).
spectral = ee . Image ( 'LANDSAT/LC08/C02/T1_L2/LC08_038032_20160820' ) . select (
'SR_B[1-7]' )
landcover = ee . Image ( 'USGS/NLCD_RELEASES/2016_REL/2016' ) . select ( 'landcover' )
sample_source = spectral . addBands ( landcover )
# Sample the combined images to generate a FeatureCollection.
sample = sample_source . sample ( ** {
# sample only from within Landsat image extent
'region' : spectral . geometry (),
'scale' : 30 ,
'numPixels' : 2000 ,
'geometries' : True
})
# Add a random value column with uniform distribution for hold-out
# training/validation splitting.
sample = sample . randomColumn ( ** { 'distribution' : 'uniform' })
print ( 'Sample for classifier development:' , sample . getInfo ())
# Split out ~80% of the sample for training the classifier.
training = sample . filter ( 'random < 0.8' )
print ( 'Training set:' , training . getInfo ())
# Train a random forest classifier.
classifier = ee . Classifier . smileRandomForest ( 10 ) . train ( ** {
'features' : training ,
'classProperty' : landcover . bandNames () . get ( 0 ),
'inputProperties' : spectral . bandNames ()
})
# Classify the sample.
predictions = sample . classify (
** { 'classifier' : classifier , 'outputName' : 'predicted_landcover' })
print ( 'Predictions:' , predictions . getInfo ())
# Split out the validation feature set.
validation = predictions . filter ( 'random >= 0.8' )
print ( 'Validation set:' , validation . getInfo ())
# Get a list of possible class values to use for error matrix axis labels.
order = sample . aggregate_array ( 'landcover' ) . distinct () . sort ()
print ( 'Error matrix axis labels:' )
pprint ( order . getInfo ())
# Compute an error matrix that compares predicted vs. expected values.
error_matrix = validation . errorMatrix ( ** {
'actual' : landcover . bandNames () . get ( 0 ),
'predicted' : 'predicted_landcover' ,
'order' : order
})
print ( 'Error matrix:' )
pprint ( error_matrix . getInfo ())
# Compute accuracy metrics from the error matrix.
print ( 'Overall accuracy:' , error_matrix . accuracy () . getInfo ())
print ( 'Consumer \' s accuracy:' )
pprint ( error_matrix . consumersAccuracy () . getInfo ())
print ( 'Producer \' s accuracy:' )
pprint ( error_matrix . producersAccuracy () . getInfo ())
print ( 'Kappa:' , error_matrix . kappa () . getInfo ())
提供意見
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
想進一步說明嗎?
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-26 (世界標準時間)。"],[[["Computes a 2D error matrix (confusion matrix) for a FeatureCollection by comparing actual and predicted values."],["Takes the names of the properties containing the actual and predicted values as inputs."],["Accepts an optional 'order' argument to specify the expected values for the matrix axes."],["The matrix rows represent actual values and columns represent predicted values, aiding in assessing classification accuracy."],["Values are expected to be small, contiguous integers starting from 0."]]],["The `errorMatrix` method computes a 2D confusion matrix by comparing actual and predicted values from two columns within a FeatureCollection. It takes `actual` and `predicted` column names as inputs, and an optional `order` list to define the matrix's dimensions and included values. The function uses small contiguous integers starting from 0, and returns a `ConfusionMatrix` object that includes overall accuracy, consumer's accuracy, producer's accuracy and kappa.\n"]]