공지사항 :
2025년 4월 15일 전에 Earth Engine 사용을 위해 등록된 모든 비상업용 프로젝트는 액세스 권한을 유지하기 위해
비상업용 자격 요건을 인증 해야 합니다. 2025년 9월 26일까지 인증하지 않으면 액세스가 보류될 수 있습니다.
의견 보내기
ee.FeatureCollection.classify
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
컬렉션의 각 특성을 분류합니다.
사용 반환 값 FeatureCollection. classify (classifier, outputName )
FeatureCollection
인수 유형 세부정보 다음과 같은 경우: features
FeatureCollection 분류할 특성의 컬렉션입니다. 각 특징에는 분류기 스키마의 모든 속성이 포함되어야 합니다. classifier
분류기 사용할 분류기입니다. outputName
문자열, 기본값: 'classification' 추가할 출력 속성의 이름입니다. 분류기에 출력이 두 개 이상 있는 경우 이 인수는 무시됩니다.
예
코드 편집기 (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 API 및 geemap
를 사용한 대화형 개발에 관한 자세한 내용은
Python 환경 페이지를 참고하세요.
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 ())
의견 보내기
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스 에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스 에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책 을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
의견을 전달하고 싶나요?
[[["이해하기 쉬움","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(UTC)"],[],[]]