इस्तेमाल | रिटर्न |
---|---|
ee.Classifier.libsvm(decisionProcedure, svmType, kernelType, shrinking, degree, gamma, coef0, cost, nu, terminationEpsilon, lossEpsilon, oneClass) | कैटगरी तय करने वाला |
आर्ग्यूमेंट | टाइप | विवरण |
---|---|---|
decisionProcedure | स्ट्रिंग, डिफ़ॉल्ट: "वोटिंग" | क्लासिफ़िकेशन के लिए इस्तेमाल की जाने वाली फ़ैसले की प्रक्रिया. 'वोटिंग' या 'मार्जिन' में से कोई एक. इसका इस्तेमाल रिग्रेशन के लिए नहीं किया जाता. |
svmType | स्ट्रिंग, डिफ़ॉल्ट: "C_SVC" | एसवीएम का टाइप. इनमें से कोई एक: `C_SVC`, `NU_SVC`, `ONE_CLASS`, `EPSILON_SVR` या `NU_SVR`. |
kernelType | स्ट्रिंग, डिफ़ॉल्ट: "LINEAR" | कर्नल टाइप. LINEAR (u′×v), POLY ((γ×u′×v + coef₀)ᵈᵉᵍʳᵉᵉ), RBF (exp(-γ×|u-v|²)), या SIGMOID (tanh(γ×u′×v + coef₀)) में से कोई एक. |
shrinking | बूलियन, डिफ़ॉल्ट: true | क्या श्रिंकिंग ह्यूरिस्टिक का इस्तेमाल करना है. |
degree | पूर्णांक, डिफ़ॉल्ट: null | पॉलिनॉमियल की डिग्री. यह सुविधा, POLY कर्नल के लिए मान्य है. |
gamma | फ़्लोट, डिफ़ॉल्ट: null | कर्नल फ़ंक्शन में गामा वैल्यू. डिफ़ॉल्ट रूप से, यह वैल्यू सुविधाओं की संख्या के व्युत्क्रम पर सेट होती है. यह POLY, RBF, और SIGMOID कर्नल के लिए मान्य है. |
coef0 | फ़्लोट, डिफ़ॉल्ट: null | कर्नेल फ़ंक्शन में coef₀ वैल्यू. डिफ़ॉल्ट रूप से, यह वैल्यू 0 पर सेट होती है. यह POLY और SIGMOID कर्नल के लिए मान्य है. |
cost | फ़्लोट, डिफ़ॉल्ट: null | लागत (C) पैरामीटर. डिफ़ॉल्ट वैल्यू 1 होती है. यह सिर्फ़ C-SVC, epsilon-SVR, और nu-SVR के लिए मान्य है. |
nu | फ़्लोट, डिफ़ॉल्ट: null | nu पैरामीटर. डिफ़ॉल्ट रूप से, इसकी वैल्यू 0.5 होती है. यह सिर्फ़ nu-SVC, one-class SVM, और nu-SVR के लिए मान्य है. |
terminationEpsilon | फ़्लोट, डिफ़ॉल्ट: null | टर्मिनेशन की शर्त के लिए टॉलरेंस (e). डिफ़ॉल्ट रूप से, इसकी वैल्यू 0.001 होती है. यह सिर्फ़ ऐप्सीलॉन-एसवीआर के लिए मान्य है. |
lossEpsilon | फ़्लोट, डिफ़ॉल्ट: null | लॉस फ़ंक्शन (p) में मौजूद ऐप्सीलॉन. डिफ़ॉल्ट रूप से, यह वैल्यू 0.1 पर सेट होती है. यह सिर्फ़ ऐप्सीलॉन-एसवीआर के लिए मान्य है. |
oneClass | पूर्णांक, डिफ़ॉल्ट: null | ट्रेनिंग डेटा की वह क्लास जिस पर एक क्लास वाले एसवीएम में ट्रेनिंग दी जानी है. डिफ़ॉल्ट रूप से, यह वैल्यू 0 पर सेट होती है. यह सिर्फ़ एक क्लास वाले एसवीएम के लिए मान्य है. संभावित वैल्यू 0 और 1 हैं. क्लासिफ़ायर का आउटपुट बाइनरी (0/1) होता है. साथ ही, यह क्लास की वैल्यू से मेल खाता है. ऐसा उस डेटा के लिए होता है जिसे क्लास में शामिल किया गया है. |
उदाहरण
कोड एडिटर (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 an SVM classifier (C-SVM classification, voting decision procedure, // linear kernel) from the training sample. var trainedClassifier = ee.Classifier.libsvm().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);
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 an SVM classifier (C-SVM classification, voting decision procedure, # linear kernel) from the training sample. trained_classifier = ee.Classifier.libsvm().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