GEE:利用libsvm()创建一个支持向量机SVM分类器进行土地利用分类

结果展示:

GEE:利用libsvm()创建一个支持向量机SVM分类器进行土地利用分类

; 函数:ee.Classifier.libsvm()

用法返回ee.Classifier.libsvm(decisionProcedure, svmType, kernelType, shrinking, degree, gamma, coef0, cost, nu, terminationEpsilon, lossEpsilon, oneClass)分类器

主要参数:

主要参数类型详细decisionProcedureString,默认:”Voting”用于分类的决策过程,不用于回归svmTypeString, 默认:”C_SVC”支持矢量机类型:C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR 或者 NU_SVR,任选之一。kernelTypeString, 默认:”LINEAR”核函数类型:LINEAR (u′×v), POLY ((γ×u′×v + coef₀)ᵈᵉᵍʳᵉᵉ), RBF (exp(-γ×abs(u-v)²)) 或者 SIGMOID (tanh(γ×u′×v + coef₀)),仁选之一。shrinkingBoolean, 默认:true是否使用收缩启发式算法degreeInteger, 默认:null多项式的次数,适用于 POLY 内核。gammaFloat, 默认:null核函数中的伽马值,默认为特征数量的倒数,适用于 POLY、RBF 和 SIGMOID 内核。coef0Float, 默认:null核函数中的 coef₀ 值,默认为 0,对 POLY 和 SIGMOID 内核有效。costFloat, 默认:null成本 © 参数,默认为 1,仅对 C-SVC、epsilon-SVR 和 nu-SVR 有效。nuFloat, 默认: nullnu 参数,默认为 0.5,仅对 nu-SVC、一类 SVM 和 nu-SVR 有效。terminationEpsilonFloat, 默认:null终止标准容差 (e),默认为 0.001,仅对 epsilon-SVR 有效。lossEpsilonFloat, 默认:null损失函数中的 epsilon §,默认为 0.1,仅对 epsilon-SVR 有效。oneClassInteger, 默认:null在一类 SVM 中训练的训练数据的类别,默认为 0。仅对一类 SVM 有效。可能的值是 0 和 1。分类器输出是二进制 (0/1),并且将与确定属于该类的数据匹配该类值。

例子:


var img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')
              .select('B.*');

var lc = ee.Image('ESA/WorldCover/v100/2020');

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();

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
});

sample = sample.randomColumn();
var trainingSample = sample.filter('random );
var validationSample = sample.filter('random > 0.8');

var trainedClassifier = ee.Classifier.libsvm().train({
  features: trainingSample,
  classProperty: label,
  inputProperties: img.bandNames()
});

print('Results of trained classifier', trainedClassifier.explain());

var trainAccuracy = trainedClassifier.confusionMatrix();
print('Training error matrix', trainAccuracy);
print('Training overall accuracy', trainAccuracy.accuracy());

validationSample = validationSample.classify(trainedClassifier);
var validationAccuracy = validationSample.errorMatrix(label, 'classification');
print('Validation error matrix', validationAccuracy);
print('Validation accuracy', validationAccuracy.accuracy());

var imgClassified = img.classify(trainedClassifier);

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);

翻译至:https://developers.google.com/earth-engine/apidocs/ee-classifier-libsvm

Original: https://blog.csdn.net/qq_35591253/article/details/125658706
Author: 养乐多
Title: GEE:利用libsvm()创建一个支持向量机SVM分类器进行土地利用分类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/662245/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球