Cluster
# 简介
提供了常用的非监督分类分类器。
# em
EM(Expectation Maximization)非监督分类分类器。
函数 | 返回值 |
---|---|
em(nClusters, options) | ui.ClustererEM分类器 |
参数 | 类型 | 说明 |
---|---|---|
nClusters | Integer | 分类的数目 |
options | JSON | 算法参数Json对象 |
var geometry = pie.Geometry.Polygon([[[116.953, 39.419], [117.078, 39.419], [117.078, 39.477], [116.953, 39.477], [116.953, 39.419]]], null);
var image = pie.Image("user/101/public/Raster/GF1_Clip").select(["B1", "B2", "B3"]);
var training = image.sample(geometry, 20, "", "", 200);
var options = {
// 迭代终止方式:1表示最大迭代次数 2表示最小收敛阈值 3表示最大迭代次数和最小收敛阈值组合
"type": 3,
// 最小收敛的阈值:当点之间的距离小于这个值的时候终止迭代
"minDistance": 1,
// 最大的迭代次数:计算多少次终止聚类迭代
"maxIter": 100,
// 协方差矩阵类型:可选择0,1,2
"cMatrixType": 1
};
var cluster = pie.Clusterer.em(5, options).train(training);
var resultImage = image.cluster(cluster, "clusterA");
var visParam = {
opacity: 1,
uniqueValue: '0,1,2,3,4',
palette: 'FF0000,00FFFF,00FF00,FF00FF,0000FF'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(117.01, 39.45, 13);
# kMeans
Kmeans非监督分类分类器。
函数 | 返回值 |
---|---|
kMeans(nClusters, options) | ui.ClustererKMeans分类器 |
参数 | 类型 | 说明 |
---|---|---|
nClusters | Integer | 分类的数目 |
options | JSON | 算法参数Json对象 |
var geometry = pie.Geometry.Polygon([[[116.953, 39.419], [117.078, 39.419], [117.078, 39.477], [116.953, 39.477], [116.953, 39.419]]], null);
var image = pie.Image("user/101/public/Raster/GF1_Clip").select(["B1", "B2", "B3"]);
var training = image.sample(geometry, 20, "", "", 200);
var options = {
// 迭代终止方式:1表示最大迭代次数 2表示最小收敛阈值 3表示最大迭代次数和最小收敛阈值组合
"type": 3,
// 最大的迭代次数:计算多少次终止聚类迭代
"maxIter": 4,
// 收敛的阈值:当点之间的距离小于这个值的时候终止迭代
"minDistance": 2,
// 最大重复次数:某一项重复多少次认定是某一类之后就不在重复计算
"maxRepeat": 3,
// 确定簇心的计算方式:0表示随机初始化簇心 1表示用用户给定的值初始化聚类 2表示用kmeans++算法来初始化簇心
"flags": 2
}
var cluster = pie.Clusterer.kMeans(5, options).train(training);
var resultImage = image.cluster(cluster, "clusterA");
var visParam = {
opacity: 1,
uniqueValue: '1,2,3,4,5',
palette: '00FFFF,00FF00,FF00FF,0000FF,FFFF00'
};
Map.addLayer(resultImage, visParam);
Map.setCenter(117.01, 39.45, 13);
// 图例
var data = {
title: "k-means聚类",
colors: ['00FFFF', '00FF00', 'FF00FF', '0000FF', 'FFFF00'],
labels: ['1', '2', '3', '4', '5'],
step: 1
};
var style = {
right: "150px",
bottom: "10px",
height: "70px",
width: "350px"
};
var legend = ui.Legend(data, style);
Map.addUI(legend);
# train
非监督分类分类器训练。
函数 | 返回值 |
---|---|
train(features) | 非监督分类器训练结果 |
参数 | 类型 | 说明 |
---|---|---|
features | FeatureCollection | 采样点 |
var geometry = pie.Geometry.Polygon([[[116.953, 39.419], [117.078, 39.419], [117.078, 39.477],[116.953,39.477],[116.953, 39.419]]], null);
var image = pie.Image("user/101/public/Raster/GF1_Clip").select(["B1","B2","B3"]);
var training = image.sample(geometry,20,"","",200);
var cluster = pie.Clusterer.kMeans(5).train(training);
var resultImage = image.cluster(cluster,"clusterA");
var visParam = {
opacity:1,
uniqueValue:'1,2,3,4,5',
palette: '00FFFF,00FF00,FF00FF,0000FF,FFFF00'
};
Map.addLayer(resultImage,visParam);
Map.setCenter(117.01,39.45,13);
有问题,我来改改 (opens new window)
上次更新: 2022/05/15, 05:29:22