Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Hiermee past u een polynomiale regressie van een onafhankelijke variabele (x_series) toe op een afhankelijke variabele (y_series). Deze functie gebruikt een tabel met meerdere reeksen (dynamische numerieke matrices) en genereert de best passende polynomiale volgorde voor elke reeks met polynomiale regressie.
Aanbeveling
- Gebruik de eenvoudigere functie series_fit_line()voor lineaire regressie van een gelijkmatige reeks, zoals gemaakt door een operator voor make-series. Zie voorbeeld 2.
- Als x_series wordt opgegeven en de regressie voor een hoge graad wordt uitgevoerd, kunt u overwegen om te normaliseren naar het bereik [0-1].. Zie voorbeeld 3.
- Als x_series van het type datum/tijd is, moet deze worden geconverteerd naar dubbel en genormaliseerd. Zie voorbeeld 3.
- Zie series_fit_poly_fl()voor referentie-implementatie van polynomiale regressie met behulp van inline Python.
Syntaxis
T | extend series_fit_poly(
y_series [,x_series,graden ])
Meer informatie over syntaxisconventies.
Parameterwaarden
| Naam | Typologie | Verplicht | Description |
|---|---|---|---|
| y_series | dynamic |
✔️ | Een matrix met numerieke waarden die de afhankelijke variabele bevatten. |
| x_series | dynamic |
Een matrix met numerieke waarden die de onafhankelijke variabele bevatten. Alleen vereist voor ongelijk verdeelde reeksen. Als dit niet is opgegeven, wordt deze ingesteld op een standaardwaarde van [1, 2, ..., lengte(y_series)]. | |
| Mate | De vereiste volgorde van de polynomiaal passend. Bijvoorbeeld 1 voor lineaire regressie, 2 voor kwadratische regressie, enzovoort. De standaardwaarde is 1, wat lineaire regressie aangeeft. |
Retouren
De series_fit_poly() functie retourneert de volgende kolommen:
-
rsquare: r-square is een standaardmeting van de pasvormskwaliteit. De waarde is een getal in het bereik [0-1], waarbij 1 - de best mogelijke pasvorm is en 0 betekent dat de gegevens ongeordeerd zijn en niet op een lijn passen. -
coefficients: Numerieke matrix die de coëfficiënten van de best passende polynomiaal met de opgegeven graad vasthoudt, geordend van de hoogste machtscoëfficiënt tot de laagste. -
variance: Afwijking van de afhankelijke variabele (y_series). -
rvariance: Restvariantie die de variantie is tussen de invoergegevenswaarden de geschatte waarden. -
poly_fit: Numerieke matrix met een reeks waarden van de best passende polynomiaal. De reekslengte is gelijk aan de lengte van de afhankelijke variabele (y_series). De waarde die wordt gebruikt voor grafieken.
Voorbeelden
Voorbeeld 1
Een vijfde orde polynomiaal met ruis op x & y assen:
range x from 1 to 200 step 1
| project x = rand()*5 - 2.3
| extend y = pow(x, 5)-8*pow(x, 3)+10*x+6
| extend y = y + (rand() - 0.5)*0.5*y
| summarize x=make_list(x), y=make_list(y)
| extend series_fit_poly(y, x, 5)
| project-rename fy=series_fit_poly_y_poly_fit, coeff=series_fit_poly_y_coefficients
|fork (project x, y, fy) (project-away x, y, fy)
| render linechart
Voorbeeld 2
series_fit_poly Controleer of met degree=1 overeenkomstenseries_fit_line:
demo_series1
| extend series_fit_line(y)
| extend series_fit_poly(y)
| project-rename y_line = series_fit_line_y_line_fit, y_poly = series_fit_poly_y_poly_fit
| fork (project x, y, y_line, y_poly) (project-away id, x, y, y_line, y_poly)
| render linechart with(xcolumn=x, ycolumns=y, y_line, y_poly)
Voorbeeld 3
Onregelmatige (ongelijk verdeelde) tijdreeks:
//
// x-axis must be normalized to the range [0-1] if either degree is relatively big (>= 5) or original x range is big.
// so if x is a time axis it must be normalized as conversion of timestamp to long generate huge numbers (number of 100 nano-sec ticks from 1/1/1970)
//
// Normalization: x_norm = (x - min(x))/(max(x) - min(x))
//
irregular_ts
| extend series_stats(series_add(TimeStamp, 0)) // extract min/max of time axis as doubles
| extend x = series_divide(series_subtract(TimeStamp, series_stats__min), series_stats__max-series_stats__min) // normalize time axis to [0-1] range
| extend series_fit_poly(num, x, 8)
| project-rename fnum=series_fit_poly_num_poly_fit
| render timechart with(ycolumns=num, fnum)