Duyuru:
15 Nisan 2025'ten önce Earth Engine'i kullanmak için kaydedilen tüm ticari olmayan projelerin Earth Engine erişimini sürdürmek için
ticari olmayan uygunluğu doğrulaması gerekir.
ee.FeatureCollection.classify
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bir koleksiyondaki her özelliği sınıflandırır.
Kullanım | İadeler |
---|
FeatureCollection.classify(classifier, outputName) | FeatureCollection |
Bağımsız Değişken | Tür | Ayrıntılar |
---|
bu: features | FeatureCollection | Sınıflandırılacak özellikler koleksiyonu. Her özellik, sınıflandırıcının şemasındaki tüm özellikleri içermelidir. |
classifier | Sınıflandırıcı | Kullanılacak sınıflandırıcı. |
outputName | Dize, varsayılan: "classification" | Eklenecek çıkış özelliğinin adı. Sınıflandırıcıda birden fazla çıkış varsa bu bağımsız değişken yoksayılır. |
Örnekler
Kod Düzenleyici (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 kurulumu
Python API'si ve etkileşimli geliştirme için geemap
kullanımı hakkında bilgi edinmek üzere
Python Ortamı sayfasına bakın.
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:', 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())
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-26 UTC.
[null,null,["Son güncelleme tarihi: 2025-07-26 UTC."],[[["\u003cp\u003eClassifies every feature within a given FeatureCollection using a specified classifier.\u003c/p\u003e\n"],["\u003cp\u003eReturns a new FeatureCollection with added classification results in a property specified by \u003ccode\u003eoutputName\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eRequires the input FeatureCollection to have properties matching the classifier's schema.\u003c/p\u003e\n"],["\u003cp\u003eThe default output property name is "classification" unless the classifier has multiple outputs.\u003c/p\u003e\n"]]],[],null,["# ee.FeatureCollection.classify\n\nClassifies each feature in a collection.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|----------------------------------------------------------|-------------------|\n| FeatureCollection.classify`(classifier, `*outputName*`)` | FeatureCollection |\n\n| Argument | Type | Details |\n|------------------|-----------------------------------|-------------------------------------------------------------------------------------------------------------------|\n| this: `features` | FeatureCollection | The collection of features to classify. Each feature must contain all the properties in the classifier's schema. |\n| `classifier` | Classifier | The classifier to use. |\n| `outputName` | String, default: \"classification\" | The name of the output property to be added. This argument is ignored if the classifier has more than one output. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n/**\n * Classifies features in a FeatureCollection and computes an error matrix.\n */\n\n// Combine Landsat and NLCD images using only the bands representing\n// predictor variables (spectral reflectance) and target labels (land cover).\nvar spectral =\n ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_038032_20160820').select('SR_B[1-7]');\nvar landcover =\n ee.Image('USGS/NLCD_RELEASES/2016_REL/2016').select('landcover');\nvar sampleSource = spectral.addBands(landcover);\n\n// Sample the combined images to generate a FeatureCollection.\nvar sample = sampleSource.sample({\n region: spectral.geometry(), // sample only from within Landsat image extent\n scale: 30,\n numPixels: 2000,\n geometries: true\n})\n// Add a random value column with uniform distribution for hold-out\n// training/validation splitting.\n.randomColumn({distribution: 'uniform'});\nprint('Sample for classifier development', sample);\n\n// Split out ~80% of the sample for training the classifier.\nvar training = sample.filter('random \u003c 0.8');\nprint('Training set', training);\n\n// Train a random forest classifier.\nvar classifier = ee.Classifier.smileRandomForest(10).train({\n features: training,\n classProperty: landcover.bandNames().get(0),\n inputProperties: spectral.bandNames()\n});\n\n// Classify the sample.\nvar predictions = sample.classify(\n {classifier: classifier, outputName: 'predicted_landcover'});\nprint('Predictions', predictions);\n\n// Split out the validation feature set.\nvar validation = predictions.filter('random \u003e= 0.8');\nprint('Validation set', validation);\n\n// Get a list of possible class values to use for error matrix axis labels.\nvar order = sample.aggregate_array('landcover').distinct().sort();\nprint('Error matrix axis labels', order);\n\n// Compute an error matrix that compares predicted vs. expected values.\nvar errorMatrix = validation.errorMatrix({\n actual: landcover.bandNames().get(0),\n predicted: 'predicted_landcover',\n order: order\n});\nprint('Error matrix', errorMatrix);\n\n// Compute accuracy metrics from the error matrix.\nprint(\"Overall accuracy\", errorMatrix.accuracy());\nprint(\"Consumer's accuracy\", errorMatrix.consumersAccuracy());\nprint(\"Producer's accuracy\", errorMatrix.producersAccuracy());\nprint(\"Kappa\", errorMatrix.kappa());\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\nfrom pprint import pprint\n\n# Classifies features in a FeatureCollection and computes an error matrix.\n\n# Combine Landsat and NLCD images using only the bands representing\n# predictor variables (spectral reflectance) and target labels (land cover).\nspectral = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_038032_20160820').select(\n 'SR_B[1-7]')\nlandcover = ee.Image('USGS/NLCD_RELEASES/2016_REL/2016').select('landcover')\nsample_source = spectral.addBands(landcover)\n\n# Sample the combined images to generate a FeatureCollection.\nsample = sample_source.sample(**{\n # sample only from within Landsat image extent\n 'region': spectral.geometry(),\n 'scale': 30,\n 'numPixels': 2000,\n 'geometries': True\n})\n# Add a random value column with uniform distribution for hold-out\n# training/validation splitting.\nsample = sample.randomColumn(**{'distribution': 'uniform'})\nprint('Sample for classifier development:', sample.getInfo())\n\n# Split out ~80% of the sample for training the classifier.\ntraining = sample.filter('random \u003c 0.8')\nprint('Training set:', training.getInfo())\n\n# Train a random forest classifier.\nclassifier = ee.Classifier.smileRandomForest(10).train(**{\n 'features': training,\n 'classProperty': landcover.bandNames().get(0),\n 'inputProperties': spectral.bandNames()\n})\n\n# Classify the sample.\npredictions = sample.classify(\n **{'classifier': classifier, 'outputName': 'predicted_landcover'})\nprint('Predictions:', predictions.getInfo())\n\n# Split out the validation feature set.\nvalidation = predictions.filter('random \u003e= 0.8')\nprint('Validation set:', validation.getInfo())\n\n# Get a list of possible class values to use for error matrix axis labels.\norder = sample.aggregate_array('landcover').distinct().sort()\nprint('Error matrix axis labels:', order.getInfo())\n\n# Compute an error matrix that compares predicted vs. expected values.\nerror_matrix = validation.errorMatrix(**{\n 'actual': landcover.bandNames().get(0),\n 'predicted': 'predicted_landcover',\n 'order': order\n})\nprint('Error matrix:')\npprint(error_matrix.getInfo())\n\n# Compute accuracy metrics from the error matrix.\nprint('Overall accuracy:', error_matrix.accuracy().getInfo())\nprint('Consumer\\'s accuracy:')\npprint(error_matrix.consumersAccuracy().getInfo())\nprint('Producer\\'s accuracy:')\npprint(error_matrix.producersAccuracy().getInfo())\nprint('Kappa:', error_matrix.kappa().getInfo())\n```"]]