ee.Classifier.amnhMaxent

Tworzy klasyfikator o maksymalnej entropii. Model Maxent służy do modelowania prawdopodobieństwa występowania gatunków na podstawie danych środowiskowych dotyczących lokalizacji, w których wiadomo, że gatunek występuje, oraz dużej liczby lokalizacji „w tle”. Więcej informacji i cytatów znajdziesz na stronie https://biodiversityinformatics.amnh.org/open_source/maxent/ oraz w publikacji referencyjnej: Phillips i wsp., 2004 A maximum entropy approach to species distribution modeling, Proceedings of the Twenty-First International Conference on Machine Learning. Dane wyjściowe to 1 pasmo o nazwie „probability” (prawdopodobieństwo) zawierające modelowane prawdopodobieństwo oraz dodatkowe pasmo o nazwie „clamp”, jeśli argument „writeClampGrid” ma wartość „true”.

WykorzystanieZwroty
ee.Classifier.amnhMaxent(categoricalNames, outputFormat, autoFeature, linear, quadratic, product, threshold, hinge, hingeThreshold, l2lqThreshold, lq2lqptThreshold, addSamplesToBackground, addAllSamplesToBackground, betaMultiplier, betaHinge, betaLqp, betaCategorical, betaThreshold, extrapolate, doClamp, writeClampGrid, randomTestPoints, seed)Klasyfikator
ArgumentTypSzczegóły
categoricalNamesLista, domyślna: nullLista nazw danych wejściowych kategorii. Wszystkie dane wejściowe, które nie są wymienione w tym argumencie, są traktowane jako ciągłe.
outputFormatCiąg znaków, domyślnie: „cloglog”Reprezentacja prawdopodobieństw w danych wyjściowych.
autoFeatureWartość logiczna, domyślnie: trueAutomatycznie wybieraj klasy obiektów do użycia na podstawie liczby próbek treningowych.
linearWartość logiczna, domyślnie: trueZezwalaj na korzystanie z obiektów liniowych. Ignorowane, gdy autofeature ma wartość true.
quadraticWartość logiczna, domyślnie: trueZezwalaj na używanie funkcji kwadratowych. Ignorowane, gdy autofeature ma wartość true.
productWartość logiczna, domyślnie: trueZezwalaj na korzystanie z funkcji produktu. Ignorowane, gdy autofeature ma wartość true.
thresholdWartość logiczna, domyślnie: falseZezwalaj na używanie funkcji progów. Ignorowane, gdy autofeature ma wartość true.
hingeWartość logiczna, domyślnie: trueZezwalaj na korzystanie z funkcji zawiasu. Ignorowane, gdy autofeature ma wartość true.
hingeThresholdLiczba całkowita, domyślnie: 15Liczba próbek, przy której zaczynają być używane funkcje zawiasowe. Ignorowane, gdy autofeature ma wartość false.
l2lqThresholdLiczba całkowita, domyślnie: 10Liczba próbek, przy której zaczynają być używane cechy kwadratowe. Ignorowane, gdy autofeature ma wartość false.
lq2lqptThresholdLiczba całkowita, domyślnie: 80Liczba próbek, przy której zaczynają być używane funkcje produktu i wartości progowe. Ignorowane, gdy autofeature ma wartość false.
addSamplesToBackgroundWartość logiczna, domyślnie: trueDodaj do tła wszystkie próbki, które mają kombinację wartości środowiskowych, która nie występuje jeszcze w tle.
addAllSamplesToBackgroundWartość logiczna, domyślnie: falseDodaj wszystkie próbki do tła, nawet jeśli mają kombinacje wartości środowiskowych, które są już obecne w tle.
betaMultiplierLiczba zmiennoprzecinkowa, domyślnie: 1Mnożnik regularyzacji. Pomnóż wszystkie parametry automatycznej regularyzacji przez tę liczbę. Wyższa liczba oznacza bardziej rozproszony rozkład.
betaHingeLiczba zmiennoprzecinkowa, domyślnie: -1Parametr regularyzacji, który ma być stosowany do wszystkich funkcji zawiasu. Wartość ujemna umożliwia automatyczne ustawienie.
betaLqpLiczba zmiennoprzecinkowa, domyślnie: -1Parametr regularyzacji, który ma być stosowany do wszystkich funkcji liniowych, kwadratowych i produktowych. Wartość ujemna umożliwia automatyczne ustawienie.
betaCategoricalLiczba zmiennoprzecinkowa, domyślnie: -1Parametr regularyzacji, który ma być stosowany do wszystkich cech kategorialnych. Wartość ujemna umożliwia automatyczne ustawienie.
betaThresholdLiczba zmiennoprzecinkowa, domyślnie: -1Parametr regularyzacji, który ma być stosowany do wszystkich cech progowych. Wartość ujemna umożliwia automatyczne ustawienie.
extrapolateWartość logiczna, domyślnie: trueEkstrapolacja. Prognozowanie w obszarach przestrzeni środowiskowej wykraczających poza limity napotkane podczas trenowania.
doClampWartość logiczna, domyślnie: trueZastosuj ograniczenie do danych wyjściowych.
writeClampGridWartość logiczna, domyślnie: trueDodaje do danych wyjściowych pasmo („clamp”) pokazujące rozkład przestrzenny przycinania. W każdym punkcie wartość jest bezwzględną różnicą między wartościami prognozy z ograniczeniem i bez niego.
randomTestPointsLiczba całkowita, domyślnie: 0Procent testów losowych. Odsetek punktów trenowania, które mają być odłożone jako punkty testowe i używane do obliczania AUX, pominięć itp.
seedLong, domyślna: 0Ziarno używane podczas generowania liczb losowych.

Przykłady

Edytor kodu (JavaScript)

// Create some sample species presence/absence training data.
var trainingData = ee.FeatureCollection([
  // Species present points.
  ee.Feature(ee.Geometry.Point([-122.39567, 38.02740]), {presence: 1}),
  ee.Feature(ee.Geometry.Point([-122.68560, 37.83690]), {presence: 1}),
  // Species absent points.
  ee.Feature(ee.Geometry.Point([-122.59755, 37.92402]), {presence: 0}),
  ee.Feature(ee.Geometry.Point([-122.47137, 37.99291]), {presence: 0}),
  ee.Feature(ee.Geometry.Point([-122.52905, 37.85642]), {presence: 0}),
  ee.Feature(ee.Geometry.Point([-122.03010, 37.66660]), {presence: 0})
]);

// Import a Landsat 8 surface reflectance image.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20200606')
                // Select the optical and thermal bands.
                .select(['.._B.*']);

// Sample the image at the location of the points.
var training = image.sampleRegions({collection: trainingData, scale: 30});

// Define and train a Maxent classifier from the image-sampled points.
var classifier = ee.Classifier.amnhMaxent().train({
  features: training,
  classProperty: 'presence',
  inputProperties: image.bandNames()
});

// Classify the image using the Maxent classifier.
var imageClassified = image.classify(classifier);

// Display the layers on the map.
// Species presence probability [0, 1] grades from black to white.
Map.centerObject(image, 9);
Map.addLayer(
    image.select(['SR_B4', 'SR_B3', 'SR_B2']).multiply(0.0000275).add(-0.2),
    {min: 0, max: 0.3}, 'Image');
Map.addLayer(
    imageClassified, {bands: 'probability', min: 0, max: 1}, 'Probability');
Map.addLayer(
    trainingData.filter('presence == 0'), {color: 'red'},
    'Training data (species absent)');
Map.addLayer(
    trainingData.filter('presence == 1'), {color: 'blue'},
    'Training data (species present)');

Konfiguracja Pythona

Informacje o interfejsie Python API i używaniu geemap do interaktywnego programowania znajdziesz na stronie Środowisko Python.

import ee
import geemap.core as geemap

Colab (Python)

"""Demonstrates the ee.Classifier.amnhMaxent method."""

import ee


# Authenticates to the Earth Engine servers.
ee.Authenticate()
# Initializes the client library.
ee.Initialize()


# Create some sample species presence/absence training data.
training_data = ee.FeatureCollection([
    # Species present points.
    ee.Feature(ee.Geometry.Point([-122.39567, 38.02740]), {'presence': 1}),
    ee.Feature(ee.Geometry.Point([-122.68560, 37.83690]), {'presence': 1}),
    # Species absent points.
    ee.Feature(ee.Geometry.Point([-122.59755, 37.92402]), {'presence': 0}),
    ee.Feature(ee.Geometry.Point([-122.47137, 37.99291]), {'presence': 0}),
    ee.Feature(ee.Geometry.Point([-122.52905, 37.85642]), {'presence': 0}),
    ee.Feature(ee.Geometry.Point([-122.03010, 37.66660]), {'presence': 0})
])

# Import a Landsat 8 image and select the reflectance bands.
image = (ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20200606')
         .select(['SR_B[1-7]'])
         .multiply(0.0000275).add(-0.2))  # Apply scaling factors.

# Sample the image at the location of the points.
training = image.sampleRegions(**{
    'collection': training_data,
    'scale': 30
})

# Define and train a Maxent classifier from the image-sampled points.
classifier = ee.Classifier.amnhMaxent().train(**{
    'features': training,
    'classProperty': 'presence',
    'inputProperties': image.bandNames()
})

# Classify the image using the Maxent classifier.
image_classified = image.classify(classifier)