I sin bog Bogen om hvorfor, Judea Pearl går ind for at lære årsags- og virkningsprincipper til maskiner for at forbedre deres intelligens. Præstationerne af dyb læring er i bund og grund blot en form for kurvetilpasning, hvorimod kausalitet kunne bruges til at afdække interaktioner mellem verdens systemer under forskellige begrænsninger uden at teste hypoteser direkte. Dette kunne give svar, der fører os til AGI (kunstig generaliseret intelligens).
Denne løsning foreslår en kausal inferensramme ved hjælp af Bayesianske netværk til at repræsentere årsagsafhængigheder og drage kausale konklusioner baseret på observerede satellitbilleder og eksperimentelle forsøgsdata i form af simulerede vejr- og jordforhold. Det casestudie er årsagssammenhængen mellem nitrogenbaseret gødningsudbringning og majsudbyttet.
Satellitbillederne behandles ved hjælp af specialbyggede Amazon SageMaker geospatiale muligheder og beriget med specialbygget Amazon SageMaker-behandling operationer. Den kausale inferensmotor er indsat med Amazon SageMaker Asynchronous Inference.
I dette indlæg demonstrerer vi, hvordan man skaber denne kontrafaktiske analyse ved hjælp af Amazon SageMaker JumpStart løsninger.
Løsningsoversigt
Følgende diagram viser arkitekturen for ende-til-ende arbejdsflowet.
Forudsætninger
Du har brug for en AWS-konto at bruge denne løsning.
For at køre denne JumpStart 1P-løsning og få infrastrukturen implementeret på din AWS-konto, skal du oprette en aktiv Amazon SageMaker Studio instans (se Ombord på Amazon SageMaker Domain). Når din Studio-instans er klar, skal du følge instruktionerne i SageMaker JumpStart at lancere Crop Yield Counterfactuals-løsningen.
Bemærk, at denne løsning i øjeblikket kun er tilgængelig i den vestlige region i USA (Oregon).
Kausal slutning
Kausalitet handler om at forstå forandring, men hvordan man formaliserer dette i statistik og maskinlæring (ML) er ikke en triviel øvelse.
I denne afgrødeudbytteundersøgelse kan kvælstoffet tilsat som gødning og udbytteresultaterne blive forvirrede. På samme måde kan kvælstoffet tilsat som gødning og resultaterne af nitrogenudvaskningen også forveksles i den forstand, at en fælles årsag kan forklare deres sammenhæng. Tilknytning er dog ikke årsagssammenhæng. Hvis vi ved, hvilke observerede faktorer der forvirrer associationen, tager vi højde for dem, men hvad hvis der er andre skjulte variabler, der er ansvarlige for forvirring? At reducere mængden af gødning vil ikke nødvendigvis reducere resterende nitrogen; på samme måde formindsker det måske ikke udbyttet drastisk, hvorimod jordbund og klimatiske forhold kan være de observerede faktorer, der forvirrer sammenhængen. Hvordan man håndterer confounding er det centrale problem med kausal inferens. En teknik introduceret af RA Fisher kaldet randomiseret kontrolleret forsøg har til formål at bryde mulig forvirring.
Men i fravær af randomiserede kontrolforsøg er der behov for kausal slutning udelukkende ud fra observationsdata. Der er måder at forbinde de kausale spørgsmål til data i observationsstudier ved at skrive den kausale grafiske model på, hvad vi postulerer som, hvordan tingene sker. Dette indebærer at hævde, at de tilsvarende traverser vil fange de tilsvarende afhængigheder, samtidig med at det opfylder det grafiske kriterium for betinget ignorering (i hvilken udstrækning vi kan behandle årsagssammenhæng som en sammenhæng baseret på de kausale antagelser). Efter at vi har postuleret strukturen, kan vi bruge de underforståede invarianser til at lære af observationsdata og sætte kausale spørgsmål ind og udlede kausale påstande uden randomiserede kontrolforsøg.
Denne løsning bruger både data fra simulerede randomiserede kontrolforsøg (RCT'er) samt observationsdata fra satellitbilleder. En række simuleringer udført over tusindvis af marker og flere år i Illinois (USA) bruges til at studere majsens reaktion på stigende nitrogenmængder for en bred kombination af vejr- og jordvariation set i regionen. Den adresserer begrænsningen ved at bruge forsøgsdata begrænset i antallet af jorde og år, den kan udforske ved at bruge afgrødesimuleringer af forskellige landbrugsscenarier og geografier. Databasen blev kalibreret og valideret ved hjælp af data fra mere end 400 forsøg i regionen. Den oprindelige nitrogenkoncentration i jorden blev sat tilfældigt inden for et rimeligt interval.
Derudover er databasen forbedret med observationer fra satellitbilleder, hvorimod zonestatistikker er afledt af spektrale indekser for at repræsentere rumlige-temporale ændringer i vegetation, set på tværs af geografier og fænologiske faser.
Kausal slutning med Bayesianske netværk
Strukturelle kausale modeller (SCM'er) bruger grafiske modeller til at repræsentere kausale afhængigheder ved at inkorporere både datadrevne og menneskelige input. En særlig type struktur-årsagsmodel kaldet Bayesian-netværk foreslås til at modellere afgrødens fænologiske dynamik ved hjælp af sandsynlighedsudtryk ved at repræsentere variabler som noder og relationer mellem variable som kanter. Noder er indikatorer for afgrødevækst, jord- og vejrforhold, og kanterne mellem dem repræsenterer rumlige og tidsmæssige årsagssammenhænge. Forældreknuderne er markrelaterede parametre (inklusive såningsdagen og beplantet areal), og børneknuderne er målinger for udbytte, kvælstofoptagelse og kvælstofudvaskning.
For mere information, se database karakterisering og vejlede til at identificere majs vækststadier.
Der kræves et par trin for at bygge en Bayesiansk netværksmodel (med CausalNex), før vi kan bruge det til kontrafaktisk og interventionel analyse. Strukturen af kausalmodellen læres i første omgang fra data, hvorimod fagekspertise (betroet litteratur eller empiriske overbevisninger) bruges til at postulere yderligere afhængigheder og uafhængigheder mellem tilfældige variable og interventionsvariable, samt at hævde, at strukturen er kausal.
Ved brug af INGEN TÅRER, en kontinuerlig optimeringsalgoritme til strukturindlæring, læres grafstrukturen, der beskriver betingede afhængigheder mellem variabler, fra data, med et sæt begrænsninger pålagt kanter, overordnede noder og underordnede noder, som ikke er tilladt i den kausale model. Dette bevarer de tidsmæssige afhængigheder mellem variabler. Se følgende kode:
"""
tabu_edges: Imposing edges that are not allowed in the causal model
tabu_parents: Imposing parent nodes that are not allowed in the causal model
tabu_child: Imposing child nodes that are not allowed in the causal model """
from causalnex.structure.notears import from_pandas g_learned = from_pandas( X, tabu_edges=tabu_edges, tabu_parent_nodes=tabu_parents, tabu_child_nodes=tabu_child, max_iter=100,
)
Det næste trin indkoder domæneviden i modeller og fanger fænologisk dynamik, samtidig med at falske relationer undgås. Multikollinearitetsanalyse, variationsinflationsfaktoranalyse og global træk vigtighed ved hjælp af SHAP analyser udføres for at uddrage indsigt og begrænsninger på vandstressvariabler (ekspansion, fænologi og fotosyntese omkring blomstring), vejr- og jordvariabler, spektrale indekser og de nitrogenbaserede indikatorer:
"""
edges: Modifying the structure by imposing constraints on edges """
from causalnex.structure import StructureModel g = StructureModel()
g.add_edges_from( edges, origin="expert" )
Bayesianske netværk i CausalNex understøtter kun diskrete distributioner. Eventuelle kontinuerlige funktioner, eller funktioner med et stort antal kategorier, diskretiseres før de passer til det Bayesianske netværk:
from causalnex.discretiser.discretiser_strategy import ( DecisionTreeSupervisedDiscretiserMethod, MDLPSupervisedDiscretiserMethod
) discretiser = DecisionTreeSupervisedDiscretiserMethod( mode="single", tree_params={"max_depth": 2, "random_state": 2022},
)
discretiser.fit( feat_names=features, dataframe=df, target_continuous=True, target=target,
)
Efter strukturen er gennemgået, kan den betingede sandsynlighedsfordeling af hver variabel givet dens forældre læres fra data, i et trin kaldet sandsynlighedsvurdering:
from causalnex.network import BayesianNetwork bn = BayesianNetwork(g)
bn = bn.fit_node_states(discretised_data)
bn = bn.fit_cpds( train, method="BayesianEstimator", bayes_prior="K2",
)
Endelig bruges strukturen og sandsynligheden til at udføre observationsinferens i farten, efter en deterministisk Junction Tree algoritme (JTA), og foretage indgreb ved hjælp af lave beregning. SageMaker Asynkron Inference tillader at stille indgående anmodninger i kø og behandler dem asynkront. Denne mulighed er ideel til både observationelle og kontrafaktiske slutningsscenarier, hvor processen ikke kan paralleliseres, og derved tager det betydelig tid at opdatere sandsynligheden i hele netværket, selvom flere forespørgsler kan køres parallelt. Se følgende kode:
"""
Query the marginal likelihood of states in the graph given some observations. These observations can be made anywhere in the network, and their impact will be propagated through to the node of interest. """
from causalnex.inference import InferenceEngine ie = InferenceEngine(bn) pseudo_observation = [{"day_sow":0}, {"day_sow":1}, {"day_sow":2}]
marginals_multi = ie.query( pseudo_observation, parallel=True, num_cores=multiprocessing.cpu_count(),
)
# distribution before intervention
marginals_before = ie.query()["Y_corn"] # updating a node distribution
ie.do_intervention("N_fert", 0) # effect of do on marginals
marginals_after = ie.query()["Y_corn"] # Resetting the node distribution
ie.reset_do("N_fert")
For yderligere detaljer henvises til slutningsskrift.
Årsagsmodellen notesbog er en trin-for-trin guide til at køre de foregående trin.
Geospatial databehandling
Jordobservation job (EOJ'er) er kædet sammen for at erhverve og transformere satellitbilleder, hvorimod specialbyggede operationer og fortrænede modeller bruges til fjernelse af skyer, mosaik, båndmatematiske operationer og resampling. I dette afsnit diskuterer vi mere detaljeret de geospatiale behandlingstrin.
Interesseområde
I den følgende figur er grønne polygoner de udvalgte amter, det orange gitter er databasekortet (et gitter på 10 x 10 km celler, hvor der udføres forsøg i regionen), og gitteret af gråskala firkanter er 100 km x 100 km Sentinel-2 UTM flisegitter.
Rumlige filer bruges til at kortlægge den simulerede database med tilsvarende satellitbilleder, overlejrende polygoner på 10 km x 10 km celler, der deler staten Illinois (hvor forsøg udføres i regionen), amter polygoner og 100 km x 100 km Sentinel- 2 UTM fliser. For at optimere den geospatiale databehandlingspipeline vælges først nogle få nærliggende Sentinel-2-fliser. Dernæst overlejres de aggregerede geometrier af fliser og celler for at opnå området af interesse (RoI). Amterne og celle-id'erne, der er fuldt observeret inden for RoI, er udvalgt til at danne polygongeometrien, der overføres til EOJ'erne.
Tidsinterval
Til denne øvelse er majsfænologicyklussen opdelt i tre stadier: de vegetative stadier v5 til R1 (fremkomst, bladkraver og kvaster), de reproduktive stadier R1 til R4 (silke, blister, mælk og dej) og de reproduktive stadier R5 (bulet) og R6 (fysiologisk modenhed). Konsekutive satellitbesøg erhverves for hvert fænologistadie inden for et tidsinterval på 2 uger og et foruddefineret interesseområde (udvalgte amter), hvilket muliggør rumlig og tidsmæssig analyse af satellitbilleder. Følgende figur illustrerer disse målinger.
Fjernelse af skyer
Skyfjernelse for Sentinel-2-data bruger en ML-baseret semantisk segmenteringsmodel til at identificere skyer i billedet, hvor overskyede pixels erstattes af med værdien -9999 (nodata-værdi):
request_polygon_coordinates = [[(-90.571754, 39.839326), (-90.893651, 39.84092), (-90.916609, 39.845075), (-90.916071, 39.757168), (-91.147678, 39.75707), (-91.265848, 39.757258), (-91.365125, 39.758723), (-91.367962, 39.759124), (-91.365396, 39.777266), (-91.432919, 39.840554), (-91.446385, 39.870394), (-91.455887, 39.945538), (-91.460287, 39.980333), (-91.494865, 40.037421), (-91.510322, 40.127994), (-91.512974, 40.181062), (-91.510332, 40.201142), (-91.258828, 40.197299), (-90.911969, 40.193088), (-90.909756, 40.284394), (-90.450227, 40.276335), (-90.451502, 40.188892), (-90.199556, 40.183945), (-90.118966, 40.235263), (-90.033026, 40.377806), (-89.92468, 40.435921), (-89.717104, 40.435655), (-89.714927, 40.319218), (-89.602979, 40.320129), (-89.601604, 40.122432), (-89.578289, 39.976127), (-89.698259, 39.975309), (-89.701864, 39.916787), (-89.994506, 39.901925), (-89.994405, 39.87286), (-90.583534, 39.87675), (-90.582435, 39.854574), (-90.571754, 39.839326)]]
start_time = '2018-08-15T00:00:00Z'
end_time = '2018-09-15T00:00:00Z' eoj_input_config = { "RasterDataCollectionQuery": { "RasterDataCollectionArn": 'arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8', "AreaOfInterest": { "AreaOfInterestGeometry": { "PolygonGeometry": {"Coordinates": request_polygon_coordinates} } }, "TimeRangeFilter": {"StartTime": start_time, "EndTime": end_time}, "PropertyFilters": { "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 10}}}], "LogicalOperator": "AND", }, }
} eoj_config = { "JobConfig": { "CloudRemovalConfig": { "AlgorithmName": "INTERPOLATION", "InterpolationValue": "-9999", "TargetBands": ["red", "green", "blue", "nir", "swir16"], }, }
} eojParams = { "Name": "cloudremoval", "InputConfig": eoj_input_config, **eoj_config, "ExecutionRoleArn": role_arn,
} eoj_response = sg_client.start_earth_observation_job(**eojParams)
Efter at EOJ er oprettet, returneres ARN og bruges til at udføre den efterfølgende geomosaiske operation.
For at få status for et job kan du køre sg_client.get_earth_observation_job(Arn = response['Arn']).
Geomosaisk
Geomosaic EOJ bruges til at flette billeder fra flere satellitbesøg til en stor mosaik ved at overskrive nodata eller gennemsigtige pixels (inklusive de overskyede pixels) med pixels fra andre tidsstempler:
eoj_config = {"JobConfig": {"GeoMosaicConfig": {"AlgorithmName": "NEAR"}}} eojParams = { "Name": "geomosaic", "InputConfig": {"PreviousEarthObservationJobArn": eoj_arn}, **eoj_config, "ExecutionRoleArn": role_arn,
} eoj_response = sg_client.start_earth_observation_job(**eojParams)
Efter at EOJ er oprettet, returneres ARN og bruges til at udføre den efterfølgende resampling.
Resampling
Resampling bruges til at nedskalere opløsningen af det geospatiale billede for at matche opløsningen af beskæringsmaskerne (10-30 m opløsningsreskalering):
eoj_config = { "JobConfig": { "ResamplingConfig": { "OutputResolution": {"UserDefined": {"Value": 30, "Unit": "METERS"}}, "AlgorithmName": "NEAR", }, }
} eojParams = { "Name": "resample", "InputConfig": {"PreviousEarthObservationJobArn": eoj_arn}, **eoj_config, "ExecutionRoleArn": role_arn,
} eoj_response = sg_client.start_earth_observation_job(**eojParams)
Efter at EOJ er oprettet, returneres ARN og bruges til at udføre den efterfølgende båndmatematikoperation.
Band matematik
Båndmatematiske operationer bruges til at transformere observationerne fra flere spektralbånd til et enkelt bånd. Det inkluderer følgende spektrale indekser:
- EVI2 – To-Band Enhanced Vegetation Index
- DGVI – Generaliseret Difference Vegetation Index
- NDMI – Normaliseret Difference Moisture Index
- NDVI – Normaliseret Difference Vegetation Index
- NDWI – Normaliseret Difference Vandindeks
Se følgende kode:
spectral_indices = [['EVI2', ' 2.5 * ( nir - red ) / ( nir + 2.4 * red + 1.0 ) '], ['GDVI', ' ( ( nir * * 2.0 ) - ( red * * 2.0 ) ) / ( ( nir * * 2.0 ) + ( red * * 2.0 ) ) '], ['NDMI', ' ( nir - swir16 ) / ( nir + swir16 ) '], ['NDVI', ' ( nir - red ) / ( nir + red ) '], ['NDWI', ' ( green - nir ) / ( green + nir ) ']] eoj_config = { "JobConfig": { "BandMathConfig": {"CustomIndices": {"Operations": []}}, }
} for indices in spectral_indices: eoj_config["JobConfig"]["BandMathConfig"]["CustomIndices"]["Operations"].append( {"Name": indices[0], "Equation": indices[1][1:-1]} ) eojParams = { "Name": "bandmath", "InputConfig": {"PreviousEarthObservationJobArn": eoj_arn}, **eoj_config, "ExecutionRoleArn": role_arn,
} eoj_response = sg_client.start_earth_observation_job(**eojParams)
Zonestatistik
De spektrale indekser beriges yderligere vha Amazon SageMaker-behandling, hvor GDAL-baseret brugerdefineret logik bruges til at gøre følgende:
- Flette spektrale indekser til en enkelt flerkanalmosaik
- Omprojekter mosaikken til afgrøde maske's projektion
- Påfør afgrødemasken og reprojicér mosaikken til cellepolygonernes CRC
- Beregn zonestatistik for udvalgte polygoner (10 km x 10 km celler)
Med paralleliseret datadistribution fordeles manifestfiler (for hvert afgrødefæologiske stadie) på tværs af flere forekomster ved hjælp af ShardedByS3Key
S3 datadistributionstype. For yderligere detaljer henvises til funktionsekstraktionsscript.
Den geospatiale bearbejdning notesbog er en trin-for-trin guide til at køre de foregående trin.
Den følgende figur viser RGB-kanaler for på hinanden følgende satellitbesøg, der repræsenterer de vegetative og reproduktive stadier af majsfænologicyklussen, med (højre) og uden (venstre) afgrødemasker (CW 20, 26 og 33, 2018 Central Illinois).
I den følgende figur er spektrale indekser (NDVI, EVI2, NDMI) af på hinanden følgende satellitbesøg repræsenterer de vegetative og reproduktive stadier af majsfænologicyklussen (CW 20, 26 og 33, 2018 Central Illinois).
Ryd op
Hvis du ikke længere ønsker at bruge denne løsning, kan du slette de ressourcer, den har oprettet. Når løsningen er implementeret i Studio, skal du vælge Slet alle ressourcer for automatisk at slette alle standardressourcer, der blev oprettet ved lanceringen af løsningen, inklusive S3-bøtten.
Konklusion
Denne løsning giver en blueprint for brugstilfælde, hvor kausal inferens med Bayesianske netværk er den foretrukne metode til at besvare årsagsspørgsmål fra en kombination af data og menneskelige input. Arbejdsflowet inkluderer en effektiv implementering af inferensmotoren, som sætter indgående forespørgsler og interventioner i kø og behandler dem asynkront. Det modulære aspekt muliggør genbrug af forskellige komponenter, herunder geospatial behandling med specialbyggede operationer og forudtrænede modeller, berigelse af satellitbilleder med specialbyggede GDAL-operationer og multimodal feature engineering (spektrale indekser og tabeldata).
Derudover kan du bruge denne løsning som skabelon til opbygning af gridded afgrødemodeller, hvor kvælstofgødningshåndtering og miljøpolitiske analyser udføres.
For mere information henvises til Løsningsskabeloner og følg vejlede at lancere Crop Yield Counterfactuals-løsningen i den amerikanske vestlige region (Oregon). Koden er tilgængelig i GitHub repo.
Citater
German Mandrini, Sotirios V. Archontoulis, Cameron M. Pittelkow, Taro Mieno, Nicolas F. Martin,
Simuleret datasæt af majsrespons på nitrogen over tusindvis af marker og flere år i Illinois,
Data i korte træk, bind 40, 2022, 107753, ISSN 2352-3409
Nyttige ressourcer
Om forfatterne
Paul Barna er Senior Data Scientist hos Machine Learning Prototyping Labs hos AWS.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/generate-a-counterfactual-analysis-of-corn-response-to-nitrogen-with-amazon-sagemaker-jumpstart-solutions/
- :er
- 1
- 10
- 100
- 2018
- 2021
- 2022
- 39
- 7
- a
- Om
- resultater
- Konto
- erhverve
- erhvervede
- tværs
- aktiv
- tilføjet
- Desuden
- Yderligere
- adresser
- fortalere
- Efter
- AGI
- målsætninger
- algoritme
- Alle
- tillader
- Skønt
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- blandt
- beløb
- analyse
- ,
- svar
- overalt
- Anvendelse
- arkitektur
- ER
- OMRÅDE
- omkring
- AS
- udseende
- hævde
- Association
- At
- automatisk
- til rådighed
- undgå
- AWS
- BAND
- baseret
- Bayesiansk
- BE
- før
- mellem
- Blå
- bog
- Pause
- bred
- bygge
- Bygning
- by
- kaldet
- CAN
- kapaciteter
- fange
- fanger
- tilfælde
- kategorier
- Årsag
- Celler
- central
- lænket
- lave om
- Ændringer
- kanaler
- barn
- Vælg
- hævder
- fordringer
- Cloud
- kode
- Kraver
- kombination
- Fælles
- komponenter
- koncentration
- betingelser
- gennemført
- Tilslut
- træk
- begrænsninger
- kontinuerlig
- kontrol
- kontrolleret
- Tilsvarende
- kunne
- skabe
- oprettet
- afgrøde
- For øjeblikket
- skøger
- skik
- Specialbyggede
- cyklus
- data
- databehandling
- dataforsker
- datastyret
- Database
- dag
- dyb
- dyb læring
- demonstrere
- indsat
- Afledt
- detail
- detaljer
- forskel
- direkte
- diskutere
- distribueret
- fordeling
- Distributioner
- Divided
- domæne
- drastisk
- tegne
- dynamik
- hver
- effekt
- fremkomsten
- muliggør
- muliggør
- ende til ende
- Engine (Motor)
- Engineering
- forbedret
- beriget
- miljømæssige
- Miljøpolitik
- væsentlige
- Dyrke motion
- udvidelse
- ekspert
- ekspertise
- Forklar
- udforske
- udtryk
- udvidelse
- ekstrakt
- faktorer
- landbrug
- Feature
- Funktionalitet
- få
- Fields
- Figur
- følger
- efter
- Til
- formular
- Framework
- fra
- fuldt ud
- yderligere
- generere
- geografier
- få
- GitHub
- given
- Global
- graf
- Gråskala
- Grøn
- Grid
- Vækst
- vejlede
- håndtere
- ske
- Have
- Skjult
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- menneskelig
- ideal
- identificere
- identificere
- Illinois
- billede
- billeder
- KIMOs Succeshistorier
- implementering
- underforstået
- importere
- betydning
- pålagt
- imponerende
- in
- omfatter
- Herunder
- Indgående
- inkorporering
- stigende
- Indikatorer
- Indeks
- oplysninger
- Infrastruktur
- initial
- i første omgang
- indsigt
- instans
- anvisninger
- Intelligens
- interaktioner
- interesse
- indgriben
- introduceret
- IT
- ITS
- Job
- Kend
- viden
- Labs
- stor
- lancere
- lancering
- føre
- LÆR
- lærte
- læring
- begrænsning
- Limited
- litteratur
- længere
- maskine
- machine learning
- Maskiner
- lavet
- Making
- ledelse
- kort
- Martin
- maske
- Masker
- Match
- matematik
- Matter
- modenhed
- Flet
- Metode
- Metrics
- måske
- Mælk
- ML
- model
- modeller
- modulær
- mere
- flere
- navn
- Nasa
- I nærheden af
- nødvendigvis
- Behov
- netværk
- net
- næste
- Nicolas
- node
- Node distribution
- noder
- nummer
- opnå
- of
- on
- drift
- Produktion
- optimering
- Optimer
- Option
- Orange
- ordrer
- Oregon
- Andet
- Parallel
- parametre
- forældre
- særlig
- Bestået
- Udfør
- Fotosyntese
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- stik
- politik
- Polygon
- mulig
- Indlæg
- foretrækkes
- principper
- Forud
- Problem
- behandle
- Behandlet
- Processer
- forarbejdning
- egenskaber
- ejendom
- foreslog
- foreslår
- prototyping
- give
- giver
- rent
- Spørgsmål
- tilfældig
- Tilfældigt
- rækkevidde
- priser
- klar
- rimelige
- Rød
- reducere
- reducere
- region
- forhold
- Relationer
- fjernelse
- udskiftes
- repræsentere
- repræsenterer
- anmodninger
- påkrævet
- Løsning
- Ressourcer
- svar
- ansvarlige
- revideret
- RGB
- ROI
- Kør
- kører
- sagemaker
- satellit
- scenarier
- Videnskabsmand
- Sektion
- segmentering
- valgt
- senior
- forstand
- Series
- sæt
- flere
- Shows
- Tilsvarende
- enkelt
- løsninger
- Løsninger
- nogle
- rumlige
- Spektral
- firkanter
- Stage
- etaper
- standard
- Tilstand
- Stater
- statistik
- Status
- Trin
- Steps
- stress
- struktur
- undersøgelser
- Studio
- Studere
- emne
- efterfølgende
- support
- Systemer
- tager
- taro
- Undervisning
- skabelon
- Test
- at
- Grafen
- Staten
- verdenen
- deres
- Them
- derved
- Disse
- ting
- tusinder
- tre
- Gennem
- hele
- tid
- til
- sammen
- Tog
- Transform
- omdanne
- gennemsigtig
- behandle
- retssag
- forsøg
- betroet
- UCLA
- afdække
- under
- forståelse
- enhed
- Forenet
- Forenede Stater
- Opdatering
- opdatering
- us
- brug
- valideret
- værdi
- forskellige
- Besøg
- bind
- Vand
- måder
- Vejr
- uger
- GODT
- Vest
- Hvad
- som
- mens
- vilje
- med
- inden for
- uden
- world
- skrivning
- X
- år
- Udbytte
- udbytter
- Du
- Din
- zephyrnet