Classifier
# 简介
提供了常用的监督分类分类器。
AdaBoost分类分类器。
函数 | 返回值 |
---|---|
boost(options) | ui.ClassifierBoost分类器 |
参数 | 类型 | 说明 |
---|---|---|
options | JSON | 算法参数Json对象 |
var image = pie.Image('user/17090142114/PGDB001/World84').select(["B1", "B2", "B3"]);
var featureCollection = pie.FeatureCollection('user/17090142114/PGDB001/WorldROI');
var training = image.sampleRegions(featureCollection, ["type"], 50000);
var options = {
// 树的最大深度
"maxDepth": 20,
// 节点样本数的最小值
"minSampleCount": 2,
// 决策树的最大预分类数量
"maxCategories": 15,
// 是否建立替代分裂点
"useSurrogates": 0,
// 交叉验证次数
"cVFolds": 0,
// 是否严格修剪
"use1SERule": 0,
// 是否进行剪枝后移除操作
"truncatePrunedTree": 0,
// 设置AdaBoost算法的类型,DISCRETE=0 REAL=1 LOGIT=2 GENTLE=3
"boostType": 0,
// 弱分类器的数量
"weakCount": 100,
// 设置权重修剪率,一个介于0和1(含)之间的阈值,该阈值可隐式地丢弃Boosting算法迭代过程中一些不重要的训练样本
"weightTrimRate": 0.95,
};
var classifer = pie.Classifier.boost(options).train(training, "type", ["B1", "B2", "B3"]);
var resultImage = image.classify(classifer, "classifyA");
var visParam = {
opacity: 1,
uniqueValue: '1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(0, 0, 0);
决策树分类分类器。
函数 | 返回值 |
---|---|
dTrees(options) | ui.ClassifierDT分类器 |
参数 | 类型 | 说明 |
---|---|---|
options | JSON | 算法参数Json对象 |
var image = pie.Image('user/17090142114/PGDB001/World84').select(["B1", "B2", "B3"]);
var featureCollection = pie.FeatureCollection('user/17090142114/PGDB001/WorldROI');
var training = image.sampleRegions(featureCollection, ["type"], 50000);
var options = {
// 树的最大深度
"maxDepth": 20,
// 节点样本数的最小值
"minSampleCount": 2,
// 决策树的最大预分类数量
"maxCategories": 15,
// 是否建立替代分裂点
"useSurrogates": 0,
// 交叉验证次数
"cVFolds": 0,
// 是否严格修剪
"use1SERule": 0,
// 是否进行剪枝后移除操作
"truncatePrunedTree": 0,
};
var classifer = pie.Classifier.dTrees(options).train(training, "type", ["B1", "B2", "B3"]);
var resultImage = image.classify(classifer, "classifyA");
var visParam = {
opacity: 1,
uniqueValue: '1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(0, 0, 0);
K最近邻分类分类器。
函数 | 返回值 |
---|---|
knn(options) | ui.ClassifierKNN分类器 |
参数 | 类型 | 说明 |
---|---|---|
options | JSON | 算法参数Json对象 |
var image = pie.Image('user/17090142114/PGDB001/World84').select(["B1", "B2", "B3"]);
var featureCollection = pie.FeatureCollection('user/17090142114/PGDB001/WorldROI');
var training = image.sampleRegions(featureCollection, ["type"], 50000);
var options = {
// 默认的临近对象数量,K值
"defaultK": 3,
// 获取KNN算法类型 BRUTE_FORCE=1, KDTREE=2
"algorithmType": 1,
// 在使用KDTree算法时,Emax参数值
"eMax": 0,
};
var classifer = pie.Classifier.knn(options).train(training, "type", ["B1", "B2", "B3"]);
var resultImage = image.classify(classifer, "classifyA");
var visParam = {
opacity: 1,
uniqueValue: '1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(0, 0, 0);
正态贝叶斯分类分类器。
函数 | 返回值 |
---|---|
normalBayes(options) | ui.ClassifierNormalBayes分类器 |
参数 | 类型 | 说明 |
---|---|---|
options | JSON | 算法参数Json对象,默认为空 |
var image = pie.Image('user/17090142114/PGDB001/World84').select(["B1","B2","B3"]);
var featureCollection = pie.FeatureCollection('user/17090142114/PGDB001/WorldROI');
var training = image.sampleRegions(featureCollection,["type"],50000);
var classifer = pie.Classifier.normalBayes().train(training,"type",["B1","B2","B3"]).getInfo();
var resultImage = image.classify(classifer,"classifyA");
var visParam = {
opacity:1,
uniqueValue:'1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'};
Map.addLayer(resultImage,visParam);
Map.setCenter(0,0,0);
随机森林分类分类器。
函数 | 返回值 |
---|---|
rTrees(options) | ui.ClassifierRTrees分类器 |
参数 | 类型 | 说明 |
---|---|---|
options | JSON | 算法参数Json对象 |
var image = pie.Image('user/17090142114/PGDB001/World84').select(["B1", "B2", "B3"]);
var featureCollection = pie.FeatureCollection('user/17090142114/PGDB001/WorldROI');
var training = image.sampleRegions(featureCollection, ["type"], 50000);
var options = {
// 树的最大深度
"maxDepth": 10,
// 节点样本数的最小值
"minSampleCount": 10,
// 决策树的最大预分类数量
"maxCategories": 15,
// 树节点随机选择特征子集的大小
"activeVarCount": 4,
// 迭代终止方式:1表示最大迭代次数 2表示最小收敛阈值 3表示最大迭代次数和最小收敛阈值组合
"type": 3,
// 最小收敛的阈值:当点之间的距离小于这个值的时候终止迭代
"minDistance": 0.01,
// 最大的迭代次数:计算多少次终止聚类迭代
"maxIter": 1000
};
var classifer = pie.Classifier.rTrees(options).train(training, "type", ["B1", "B2", "B3"]);
var resultImage = image.classify(classifer, "classifyA");
var visParam = {
opacity: 1,
uniqueValue: '1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(0, 0, 0);
svm(支持向量机)监督分类分类器。
函数 | 返回值 |
---|---|
svm(options) | ui.ClassifierSVM分类器 |
参数 | 类型 | 说明 |
---|---|---|
options | JSON | 算法参数Json对象 |
var image = pie.Image('user/17090142114/PGDB001/World84').select(["B1", "B2", "B3"]);
var featureCollection = pie.FeatureCollection('user/17090142114/PGDB001/WorldROI');
var training = image.sampleRegions(featureCollection, ["type"], 50000);
var options = {
// SVM类型: C_SVC=100,NU_SVC=101,ONE_CLASS=102,EPS_SVR=103,NU_SVR=104
"svmType": 100,
// SVN核类型:LINEAR=0,POLY=1,RBF=2,SIGMOID=3,CHI2=4,INTER=5
"kernelType": 0,
// 核函数的γ参数,默认值为1;
"gamma": 1,
// 核函数的coef0参数,默认值为0
"coef0": 0,
// 多项式核函数的degreee参数(阶数),默认值为0;
"degree": 0,
// 用最优参数训练SVM,如果是会相当耗时
"trainAuto": 0,
// 迭代终止方式:1表示最大迭代次数 2表示最小收敛阈值 3表示最大迭代次数和最小收敛阈值组合
"type": 3,
// 最小收敛的阈值:当点之间的距离小于这个值的时候终止迭代
"minDistance": 0.1,
// 最大的迭代次数:计算多少次终止聚类迭代
"maxIter": 100
};
var classifer = pie.Classifier.svm(options).train(training, "type", ["B1", "B2", "B3"]);
var resultImage = image.classify(classifer, "classifyA");
var visParam = {
opacity: 1,
uniqueValue: '1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(0, 0, 0);
监督分类分类器训练。
函数 | 返回值 |
---|---|
train(features,classProperty,inputProperties,subsampling,subsamplingSeed) | 监督分类器训练结果 |
参数 | 类型 | 说明 |
---|---|---|
features | FeatureCollection | 样本点 |
classProperty | String | 分类类别字段 |
inputProperties | List | 分类计算字段 |
subsampling | Float | 未启用 |
subsamplingSeed | Int | 未启用 |
var image = pie.Image('user/pieadmin/public/Raster/World84').select(["B1","B2","B3"]);
var featureCollection = pie.FeatureCollection('user/pieadmin/public/shape/WorldROI');
var training = image.sampleRegions(featureCollection,["type"],50000);
var classifier = pie.Classifier.normalBayes().train(training,"type",["B1","B2","B3"]);
var resultImage = image.classify(classifier,"classifyA");
var visParam = {
opacity:1,
uniqueValue:'1,2,3,4',
palette: 'EAF2F5,000032,1F3600,FAFFC8'
};
Map.addLayer(resultImage,visParam);
Map.setCenter(0,0,0);
来源:https://engine.piesat.cn/engine-studio/tutorials
有问题,我来改改 (opens new window)
上次更新: 2022/05/15, 05:29:22