Cross validation
Summary: this tutorial demonstrates how to perform several types of cross validation with FSharp.Stats.
Leave-one-out cross validation (LOOCV)
When fitting a data set it often comes down to the selection of the optimal fitting parameter(s). A method to determine these is given by the leave-one-out cross validation (LOOCV). Thereby, the data set is fitted with a given parameter range (smoothing strength, polynomial order etc.) in order to select the best.
Procedure
In each iteration, one data point is excluded from the fitting procedure. The coefficients are determined based on the remaining (n-1) data points. The difference of the excluded point with its corresponding fitted point is measured. In a two-dimensional problem it is the y-intercept of f(xi) and the y_orig at xi.
After every data point was excluded once, the average (squared) distance is calculated and assigned to the corresponding fitting parameter (polynomial order or smoothing strength). The parameter of the model that shows the minimal average error is the best under the given assumptions. It shows the best compromise between over- and underfitting respectively.
Polynomial loocv
let's first create some polynomial fits to cross validate:
open Plotly.NET
open FSharp.Stats
open FSharp.Stats.Fitting
open LinearRegression.OLS
let xV = vector [1. .. 10.]
let yV = vector [1.;20.;51.;40.;37.;6.;-10.;-5.;0.;10.]
// the fitting function fits a polynomial of order 'order' to the training data set (xTrain and yTrain) and applies it to xTest
let getFitFuncPolynomial (xTrain:Matrix<float>) yTrain (xTest:Vector<float>) order =
let xDat = xTrain.Data // |> Matrix.toVector
let coeffs = Polynomial.fit order xDat yTrain
let predictFunction = Polynomial.predict coeffs (xTest.[0])
predictFunction
open Plotly.NET
let rawchart() =
Chart.Point (xV,yV)
|> Chart.withTraceInfo "raw data"
let chartOrderOpt =
[1 .. 2 .. 10]
|> List.map (fun order ->
let coeffs = Polynomial.fit order xV yV
let predictFunction = Polynomial.predict coeffs
[1. .. 0.2 .. 10.]
|> List.map (fun x -> x,predictFunction x)
|> Chart.Line
|> Chart.withTraceInfo (sprintf "order=%i" order)
)
|> fun x -> Chart.combine (rawchart()::x)
|> Chart.withTitle "polynomial fits"
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "x"
|> Chart.withYAxisStyle "y"
And then crossvalidate across the polynomial orders:
// the error is calculated as the squared difference of fitted and original y value
let error (f1:float) f2 = pown (f1 - f2) 2
/// Leave-one-out cross validation. Returns the mean squared error of each leave-out at the
/// specific polynomial order. Minimize for model selection.
let loocvPolynomial (xData:Vector<float>) (yData:Vector<float>) order =
let xDataMat = Matrix.ofCols [|xData|]
let getFitFuncPol xTrain yTrain (xTest:Vector<float>) =
getFitFuncPolynomial xTrain yTrain xTest order
let meanSquaredError = CrossValidation.loocv xDataMat yData getFitFuncPol error
meanSquaredError
// polynomial orders that should be checked
let ordersToCheck = [|1 .. 10|]
let errorPol =
ordersToCheck
|> Array.map (fun order ->
let error = loocvPolynomial xV yV order
order,error)
let chartPol =
errorPol
|> Chart.Line
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "polynomial order"
|> Chart.withYAxisStyle "mean error"
|> Chart.withTitle "leave one out cross validation (polynomial)"
let result = sprintf "The minimal error is obtained by order=%i" (errorPol |> Seq.minBy snd |> fst)
|
Smoothing spline loocv
A smoothing spline is a non-parametric fitting procedure, fitting cubic polynomials in each interval given by the basis points.
let's first create some smoothing splines to cross validate:
// the fitting function fits a smoothing spline with smoothing factor lambda to the training data set (xTrain and yTrain) and applies it to xTest
let getFitFuncSpline (xDat:Matrix<float>) (yDat:Vector<float>) (xDatTrain: Vector<float>) lambda =
let xDatVec = xDat.Data // |> Matrix.toVector
let zippedData = Seq.zip xDatVec yDat |> Array.ofSeq
let xValTest = xDatTrain.[0]
Spline.smoothingSpline zippedData (xDat.Data) lambda xValTest
/// in loocv the border points are chosen so that the support range of the training data set does not cover the test point.
/// if splines are used, that are not defined outside the border points use the following:
//let xDatSupport = Intervals.create (xDatVec |> Seq.min) (xDatVec |> Seq.max)
//if Intervals.liesInInterval xValTest xDatSupport then
//Spline.smoothingSpline zippedData (xDat |> Array.ofSeq) lambda xValTest
//else nan
let chartSpline =
[0.0002;0.002;0.0216;0.2;2.;20.]
|> List.map (fun lambda ->
let fit = Spline.smoothingSpline (Seq.zip xV yV |> Array.ofSeq) (Array.ofSeq xV) lambda
[1. .. 0.2 .. 10.]
|> List.map (fun x -> x,fit x)
|> Chart.Line
|> Chart.withTraceInfo (sprintf "l=%.4f" lambda)
)
|> fun x ->
Chart.combine (rawchart()::x)
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "x"
|> Chart.withYAxisStyle "y"
|> Chart.withTitle "smoothing splines"
And then crossvalidate across different lambda values:
// the error is calculated as the squared difference of fitted and original y value
let errorSpl (f1:float) f2 =
// if xValue is outside of support area of the fitted model (some smoothing spline algorithms), the error should report 0.
//if nan.Equals f1 then 0.
//else pown (f1 - f2) 2
pown (f1 - f2) 2
/// Leave-one-out cross validation. Returns the mean squared error of each leave-out at the
/// specific regularization parameter (lambda). Minimize the (MSE) for model selection.
let loocvSmoothingSpline (xData:Vector<float>) (yData:Vector<float>) lambda =
let xDataMat = Matrix.ofCols [|xData|]
let getFitFuncSpl xDat yDat (xDatTrain: Vector<float>) =
getFitFuncSpline xDat yDat xDatTrain lambda
CrossValidation.loocv xDataMat yData getFitFuncSpl errorSpl
// smoothing parameter = lambda = regularization parameter
let lambdasToCheck = [|1. .. 15.|] |> Array.map (fun i -> 0.0001 * i**3.)
let errorSpline =
lambdasToCheck
|> Array.map (fun lambda ->
//basisPoints define, where the knots of the spline are located
let error = loocvSmoothingSpline xV yV lambda
lambda,error)
let chartSplineError =
errorSpline
|> Chart.Line
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "lambda"
|> Chart.withYAxisStyle "mean error"
|> Chart.withTitle "leave one out cross validation (smoothing spline)"
let resultSpline = sprintf "The minimal error is obtained by lambda=%f" (errorSpline |> Seq.minBy snd |> fst)
|
k fold cross validation
The k fold cross validation (kfcv) is a generalized form of the loocv. Rather than excluding every data point separately, kfcv allows the exclusion of data chunks with a defined fraction of the data points. When using k=10, the data is split up into 10 chunks of sub data sets each containing 10% of the data set.
In each loop one chunk is excluded (test data), while the other 9 chunks serve as training data. After 10 (k) loops every single point was evaluated as test data set once and k-1 times as training data. The selection of the subset chunks is random and can be repeated in several iterations. The output contains the average error together with the standardDeviation computed by the given function.
//repeated k fold cross validation for polynomials
let repeatedKFoldPolynomial k (xData: Vector<float>) (yData: Vector<float>) order =
let xDataMat = [|xData|] |> Matrix.ofCols
let getFitFuncPol xTrain yTrain (xTest:Vector<float>) =
getFitFuncPolynomial xTrain yTrain xTest order
CrossValidation.repeatedKFold k 10 xDataMat yData getFitFuncPol error Seq.stDev
//creates an output for 10 iterations where defined 20 % of the data set are taken as testing data set
let kfPolynomial order = repeatedKFoldPolynomial 5 xV yV order
//repeated k fold cross validation for smoothing splines
let repeatedKFoldSpline k (xData: Vector<float>) (yData: Vector<float>) lambda =
let xDataMat = [|xData|] |> Matrix.ofCols
let getFitFuncSpl xDat yDat (xDatTrain: Vector<float>) =
getFitFuncSpline xDat yDat xDatTrain lambda
CrossValidation.repeatedKFold k 10 xDataMat yData getFitFuncSpl errorSpl Seq.stDev
//creates an output for 10 iterations where defined 20 % of the data set are taken as testing data set
let kfSpline lambda = repeatedKFoldSpline 5 xV yV lambda
The given data set is small and therefore the mean errors show a high variability
let kfp =
let errorSplinekf =
ordersToCheck
|> Array.map (fun order ->
//basisPoints define, where the knots of the spline are located
let error = kfPolynomial order
(order,error.Error),error.ErrorStDev)
|> Array.unzip
fst errorSplinekf
|> Chart.Line
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "order"
|> Chart.withYAxisStyle "mean error"
|> Chart.withYAxis(LayoutObjects.LinearAxis.init(AxisType=StyleParam.AxisType.Log))
|> Chart.withYErrorStyle (Array= snd errorSplinekf)
|> Chart.withTitle "kfoldPolynomial error"
let kfs =
let errorSplinekf =
lambdasToCheck
|> Array.map (fun lambda ->
//basisPoints define, where the knots of the spline are located
let error = kfSpline lambda
(lambda,error.Error),error.ErrorStDev)
|> Array.unzip
fst errorSplinekf
|> Chart.Line
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "lambda"
|> Chart.withYAxisStyle "mean error"
|> Chart.withYErrorStyle (Array= snd errorSplinekf)
|> Chart.withTitle "kfoldSpline error"
Shuffle and split cross validation
The shuffle and split cross validation (sap) is a modified kfcv version. As in kfcv, sap allows the exclusion of data chunks with a defined fraction of the data points. When using p=0.3, 30% of the data are taken as testing data set while 70% serve as training data set. In sap by default only one testing set is evaluated (unlike to kfcv where every data point is once part of a training data set and k-1 times part of testing data set).
Sap can be performed multiple times. Each time the training data fraction is taken randomly from the original data set. Unlike in kfcv overlaps may occur. The output contains the average error together with the standardDeviation computed by the given function.
let shuffleAndSplitPolynomial p iterations (xData: Vector<float>) (yData: Vector<float>) order =
let xDataMat = [|xData|] |> Matrix.ofCols
let getFitFuncPol xTrain yTrain (xTest:Vector<float>) =
getFitFuncPolynomial xTrain yTrain xTest order
CrossValidation.shuffleAndSplit p iterations xDataMat yData getFitFuncPol error Seq.stDev
//creates an output for 5 iterations where random 20 % of the data set are taken as testing data set
let sasPolynomial order = shuffleAndSplitPolynomial 0.2 5 xV yV order
let shuffleAndSplitSpline p iterations (xData: Vector<float>) (yData: Vector<float>) lambda =
let xDataMat = [|xData|] |> Matrix.ofCols
let getFitFuncSpl xDat yDat (xDatTrain: Vector<float>) =
getFitFuncSpline xDat yDat xDatTrain lambda
CrossValidation.shuffleAndSplit p iterations xDataMat yData getFitFuncSpl errorSpl Seq.stDev
//creates an output for 5 iterations where random 20 % of the data set are taken as testing data set
let sasSpline lambda = shuffleAndSplitSpline 0.2 5 xV yV lambda
The given data set is small and therefore the mean errors show a high variability.
let sasp =
let errorSplinekf =
ordersToCheck
|> Array.map (fun order ->
//basisPoints define, where the knots of the spline are located
let error = sasPolynomial order
(order,error.Error),error.ErrorStDev)
|> Array.unzip
fst errorSplinekf
|> Chart.Line
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "order"
|> Chart.withYAxisStyle "mean error"
|> Chart.withYAxis(LayoutObjects.LinearAxis.init(AxisType=StyleParam.AxisType.Log))
|> Chart.withYErrorStyle (Array= snd errorSplinekf)
|> Chart.withTitle "shuffle_and_split polynomial error"
let sass =
let errorSplinekf =
lambdasToCheck
|> Array.map (fun lambda ->
//basisPoints define, where the knots of the spline are located
let error = sasSpline lambda
(lambda,error.Error),error.ErrorStDev)
|> Array.unzip
fst errorSplinekf
|> Chart.Line
|> Chart.withTemplate ChartTemplates.lightMirrored
|> Chart.withXAxisStyle "lambda"
|> Chart.withYAxisStyle "mean error"
|> Chart.withYErrorStyle (Array= snd errorSplinekf)
|> Chart.withTitle "shuffle_and_split spline error"
<summary> Contains mutable global default values. Changing these values will apply the default values to all consecutive Chart generations. </summary>
type DisplayOptions = inherit DynamicObj new: unit -> DisplayOptions static member addAdditionalHeadTags: additionalHeadTags: XmlNode list -> (DisplayOptions -> DisplayOptions) static member addDescription: description: XmlNode list -> (DisplayOptions -> DisplayOptions) static member combine: first: DisplayOptions -> second: DisplayOptions -> DisplayOptions static member getAdditionalHeadTags: displayOpts: DisplayOptions -> XmlNode list static member getDescription: displayOpts: DisplayOptions -> XmlNode list static member getPlotlyReference: displayOpts: DisplayOptions -> PlotlyJSReference static member init: [<Optional; DefaultParameterValue ((null :> obj))>] ?AdditionalHeadTags: XmlNode list * [<Optional; DefaultParameterValue ((null :> obj))>] ?Description: XmlNode list * [<Optional; DefaultParameterValue ((null :> obj))>] ?PlotlyJSReference: PlotlyJSReference -> DisplayOptions static member initCDNOnly: unit -> DisplayOptions ...
--------------------
new: unit -> Plotly.NET.DisplayOptions
<summary> Sets how plotly is referenced in the head of html docs. </summary>
namespace FSharp
--------------------
namespace Microsoft.FSharp
module LinearRegression from FSharp.Stats.Fitting
<summary> Linear regression is used to estimate the relationship of one variable (y) with another (x) by expressing y in terms of a linear function of x. </summary>
--------------------
type LinearRegression = new: unit -> LinearRegression static member fit: xData: Vector<float> * yData: Vector<float> * ?FittingMethod: Method * ?Constraint: Constraint<float * float> * ?Weighting: Vector<float> -> Coefficients + 1 overload static member predict: coeff: Coefficients -> xValue: float -> float static member predictMultivariate: coeff: Coefficients -> xVector: Vector<float> -> float
<summary> This LinearRegression type summarized the most common fitting procedures. </summary>
<returns>Either linear regression coefficients or a prediction function to map x values/vectors to its corresponding y value.</returns>
<example><code> // e.g. days since experiment start let xData = vector [|1. .. 100.|] // e.g. plant size in cm let yData = vector [|4.;7.;8.;9.;7.;11.; ...|] // Estimate the intercept and slope of a line, that fits the data. let coefficientsSimpleLinear = LinearRegression.fit(xData,yData,FittingMethod=Fitting.Method.SimpleLinear,Constraint=Fitting.Constraint.RegressionThroughOrigin) // Predict the size on day 10.5 LinearRegression.predict(coefficientsSimpleLinear) 10.5 </code></example>
--------------------
new: unit -> LinearRegression
<summary> Ordinary Least Squares (OLS) regression aims to minimise the sum of squared y intercepts between the original and predicted points at each x value. </summary>
module Matrix from FsMath
--------------------
type Matrix<'T (requires 'T :> INumber<'T> and default constructor and value type and comparison and 'T :> ValueType)> = interface IEquatable<Matrix<'T>> new: rows: int * cols: int * data: Vector<'T> -> Matrix<'T> override Equals: obj: obj -> bool override GetHashCode: unit -> int member GetSlice: rowStart: int option * rowEnd: int option * colStart: int option * colEnd: int option -> Matrix<'T> + 1 overload member SetCol: j: int * colData: 'T array -> unit member SetRow: i: int * rowData: 'T array -> unit override ToString: unit -> string member Transpose: unit -> Matrix<'T> member toArray2D: unit -> 'T array2d ...
<summary> Matrix type to hold values of a matrix in a 1D Arrays (Flattened Representation) </summary>
--------------------
new: rows: int * cols: int * data: Vector<'T> -> Matrix<'T>
val float: value: 'T -> float (requires member op_Explicit)
--------------------
type float = System.Double
--------------------
type float<'Measure> = float
module Vector from FSharp.Stats
--------------------
module Vector from FsMath
--------------------
type Vector = static member add: v1: Vector<'T> -> v2: Vector<'T> -> Vector<'T> (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) static member addScalar: scalar: 'T -> v: Vector<'T> -> Vector<'T> (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) static member divide: v1: Vector<'T> -> v2: Vector<'T> -> Vector<'T> (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) static member divideScalar: scalar: 'T -> v: Vector<'T> -> Vector<'T> (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) static member dot: v1: Vector<'T> -> v2: Vector<'T> -> 'T (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) static member max: v: Vector<'T> -> 'T (requires 'T :> INumber<'T> and default constructor and value type and comparison and 'T :> ValueType) static member mean: v: Vector<'T> -> 'T (requires 'T :> INumber<'T> and member DivideByInt and default constructor and value type and 'T :> ValueType) static member min: v: Vector<'T> -> 'T (requires 'T :> INumber<'T> and default constructor and value type and comparison and 'T :> ValueType) static member multiply: v1: Vector<'T> -> v2: Vector<'T> -> Vector<'T> (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) static member multiplyScalar: scalar: 'T -> v: Vector<'T> -> Vector<'T> (requires 'T :> INumber<'T> and value type and default constructor and 'T :> ValueType) ...
--------------------
type Vector<'T (requires 'T :> INumber<'T>)> = 'T array
<summary> Vector as a Array type alias </summary>
<summary> Exposes the raw underlying data array (row-major flattened). </summary>
union case Method.Polynomial: int -> Method
<summary>Fits a polynomial of the specified order (degree) to twodimensional data (OLS).</summary>
--------------------
module Polynomial from FSharp.Stats.Fitting.LinearRegressionModule.OLS
<summary> Linear regression using polynomials as regression function: f(x) = a + bx + cx^2 + .... </summary>
<summary> Calculates the polynomial coefficients for polynomial regression. </summary>
<param name="order">order of the polynomial (1 = linear, 2 = quadratic, ... )</param>
<param name="xData">vector of x values</param>
<param name="yData">vector of y values</param>
<returns>vector of polynomial coefficients sorted as [intercept;constant;quadratic;...]</returns>
<example><code> // e.g. days since a certain event let xData = vector [|1.;2.;3.;4.;5.;6.|] // e.g. temperature measured at noon of the days specified in xData let yData = vector [|4.;7.;9.;8.;7.;9.;|] // Estimate the three coefficients of a quadratic polynomial. let coefficients = LinearRegression.OLS.Polynomial.fit 2 xData yData </code></example>
<summary> Takes polynomial coefficients and x value to predict the corresponding y value. </summary>
<param name="coef">vector of polynomial coefficients (e.g. determined by Polynomial.coefficients), sorted as [intercept;constant;quadratic;...]</param>
<param name="x">x value of which the corresponding y value should be predicted</param>
<returns>predicted y value with given polynomial coefficients at X=x</returns>
<example><code> // e.g. days since a certain event let xData = vector [|1.;2.;3.;4.;5.;6.|] // e.g. temperature measured at noon of the days specified in xData let yData = vector [|4.;7.;9.;8.;7.;9.;|] // Define the polynomial coefficients. let coefficients = LinearRegression.OLS.Polynomial.fit xData yData // Predict the temperature value at midnight between day 1 and 2. LinearRegression.OLS.Polynomial.predict coefficients 1.5 </code></example>
<remarks>If all coefficients are nonzero, the order is equal to the length of the coefficient vector!</remarks>
static member Chart.Point: x: #System.IConvertible seq * y: #System.IConvertible seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'c * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'c seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart.GenericChart (requires 'c :> System.IConvertible)
module List from FSharp.Stats
<summary> Module to compute common statistical measure on list </summary>
--------------------
module List from Microsoft.FSharp.Collections
--------------------
type List = new: unit -> List static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float list static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float list
--------------------
type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ...
--------------------
new: unit -> List
static member Chart.Line: x: #System.IConvertible seq * y: #System.IConvertible seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColorScale: StyleParam.Colorscale * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineDash: StyleParam.DrawingStyle * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Line: Line * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Fill: StyleParam.Fill * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillPattern: TraceObjects.Pattern * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart.GenericChart (requires 'a2 :> System.IConvertible)
static member Chart.withTitle: title: string * [<System.Runtime.InteropServices.Optional; System.Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TitleFont: Font -> (GenericChart.GenericChart -> GenericChart.GenericChart)
<summary> Module to represent a GenericChart </summary>
Leave-one-out cross validation. Returns the mean squared error of each leave-out at the
specific polynomial order. Minimize for model selection.
<summary>Computes a leave one out cross-validation<br />xData: rowwise x-coordinate matrix,<br />yData: yData vector<br />fit: x and y data lead to function that maps an xData row vector to a y-coordinate,<br />error: defines the error of the fitted y-coordinate and the actual y-coordinate</summary>
<remarks></remarks>
<param name="xData"></param>
<param name="yData"></param>
<param name="fitFunc"></param>
<param name="error"></param>
<returns></returns>
<example><code></code></example>
module Array from FSharp.Stats
<summary> Module to compute common statistical measure on array </summary>
--------------------
module Array from Microsoft.FSharp.Collections
--------------------
type Array = new: unit -> Array static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float array static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float array
--------------------
new: unit -> Array
module Seq from FSharp.Stats
<summary> Module to compute common statistical measures. </summary>
--------------------
module Seq from Microsoft.FSharp.Collections
--------------------
type Seq = new: unit -> Seq static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float seq static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float seq
--------------------
new: unit -> Seq
<summary>Creates a smoothing spline through some data. Takes as spline points the x-values given by basispts.<br />The resulting function takes lambda (regularization parameter) and a x_Value as input. </summary>
<remarks></remarks>
<param name="data"></param>
<param name="basispts"></param>
<returns></returns>
<example><code></code></example>
in loocv the border points are chosen so that the support range of the training data set does not cover the test point.
if splines are used, that are not defined outside the border points use the following:
Leave-one-out cross validation. Returns the mean squared error of each leave-out at the
specific regularization parameter (lambda). Minimize the (MSE) for model selection.
<summary>Computes a repeated k fold cross-validation,<br />k: training set size (and number of iterations),<br />iterations: number of random subset creation,<br />xData: rowwise x-coordinate matrix,<br />yData: yData vector<br />fit: x and y data lead to function that maps a xData row vector to a y-coordinate,<br />error: defines the error of the fitted y-coordinate and the actual y-coordinate,<br />getStDev: function that calculates the standard deviation from a seq<^T>. (Seq.stDev)</summary>
<remarks></remarks>
<param name="k"></param>
<param name="iterations"></param>
<param name="xData"></param>
<param name="yData"></param>
<param name="fit"></param>
<param name="error"></param>
<param name="getStDev"></param>
<returns></returns>
<example><code></code></example>
<summary> Computes the sample standard deviation. </summary>
<param name="items">The input sequence.</param>
<remarks>Returns NaN if data is empty or if any entry is NaN.</remarks>
<returns>The sample standard deviation (Bessel's correction by N-1) of the input sequence.</returns>
<example><code> let values = [1.0; 2.0; 3.0; 4.0; 5.0] let sd = Seq.stDev values // returns approximately 1.58114 </code></example>
type LinearAxis = inherit DynamicObj new: unit -> LinearAxis static member init: [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AxisType: AxisType * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoShift: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleAnchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleRatio: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Constrain: AxisConstraint * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConstrainToward: AxisConstraintDirection * [<Optional; DefaultParameterValue ((null :> obj))>] ?Matches: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Rangebreaks: Rangebreak seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TicksOn: CategoryTickAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelMode: TickLabelMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelPosition: TickLabelPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelStep: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelOverflow: TickLabelOverflow * [<Optional; DefaultParameterValue ((null :> obj))>] ?Mirror: Mirror * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoMargin: TickAutoMargin * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeMode: SpikeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeSnap: SpikeSnap * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Minor: Minor * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?HoverFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Shift: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowDividers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Anchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Side: Side * [<Optional; DefaultParameterValue ((null :> obj))>] ?Overlaying: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Layer: Layer * [<Optional; DefaultParameterValue ((null :> obj))>] ?Domain: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?Position: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?UIRevision: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSlider: RangeSlider * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSelector: RangeSelector * [<Optional; DefaultParameterValue ((null :> obj))>] ?Calendar: Calendar * [<Optional; DefaultParameterValue ((null :> obj))>] ?BackgroundColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowBackground: bool -> LinearAxis static member initCarpet: [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AxisType: AxisType * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayDTick: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayTick0: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?CheaterType: CheaterType * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPadding: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridCount: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Smoothing: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineWidth: int -> LinearAxis static member initCategorical: categoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoShift: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleAnchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleRatio: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Constrain: AxisConstraint * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConstrainToward: AxisConstraintDirection * [<Optional; DefaultParameterValue ((null :> obj))>] ?Matches: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Rangebreaks: Rangebreak seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TicksOn: CategoryTickAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelMode: TickLabelMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelPosition: TickLabelPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelOverflow: TickLabelOverflow * [<Optional; DefaultParameterValue ((null :> obj))>] ?Mirror: Mirror * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoMargin: TickAutoMargin * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeMode: SpikeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeSnap: SpikeSnap * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Minor: Minor * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?HoverFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Shift: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowDividers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Anchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Side: Side * [<Optional; DefaultParameterValue ((null :> obj))>] ?Overlaying: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Layer: Layer * [<Optional; DefaultParameterValue ((null :> obj))>] ?Domain: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?Position: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?UIRevision: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSlider: RangeSlider * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSelector: RangeSelector * [<Optional; DefaultParameterValue ((null :> obj))>] ?Calendar: Calendar -> LinearAxis static member initIndicatorGauge: [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool -> LinearAxis static member style: [<Optional; DefaultParameterValue ((null :> obj))>] ?Visible: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Optional; DefaultParameterValue ((null :> obj))>] ?AxisType: AxisType * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoTypeNumbers: AutoTypeNumbers * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoRange: AutoRange * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoShift: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeMode: RangeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?Range: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?FixedRange: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleAnchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?ScaleRatio: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Constrain: AxisConstraint * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConstrainToward: AxisConstraintDirection * [<Optional; DefaultParameterValue ((null :> obj))>] ?Matches: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Rangebreaks: Rangebreak seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickMode: TickMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?NTicks: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Tick0: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?DTick: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickVals: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickText: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Ticks: TickOptions * [<Optional; DefaultParameterValue ((null :> obj))>] ?TicksOn: CategoryTickAnchor * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelMode: TickLabelMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelPosition: TickLabelPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelStep: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLabelOverflow: TickLabelOverflow * [<Optional; DefaultParameterValue ((null :> obj))>] ?Mirror: Mirror * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickLen: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?AutoMargin: TickAutoMargin * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeMode: SpikeMode * [<Optional; DefaultParameterValue ((null :> obj))>] ?SpikeSnap: SpikeSnap * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickAngle: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickPrefix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowTickSuffix: ShowTickOption * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowExponent: ShowExponent * [<Optional; DefaultParameterValue ((null :> obj))>] ?ExponentFormat: ExponentFormat * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinExponent: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Minor: Minor * [<Optional; DefaultParameterValue ((null :> obj))>] ?SeparateThousands: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?TickFormatStops: TickFormatStop seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?HoverFormat: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?GridWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZeroLineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Shift: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowDividers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?DividerWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Anchor: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Side: Side * [<Optional; DefaultParameterValue ((null :> obj))>] ?Overlaying: LinearAxisId * [<Optional; DefaultParameterValue ((null :> obj))>] ?Layer: Layer * [<Optional; DefaultParameterValue ((null :> obj))>] ?Domain: Range * [<Optional; DefaultParameterValue ((null :> obj))>] ?Position: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryOrder: CategoryOrder * [<Optional; DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?UIRevision: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSlider: RangeSlider * [<Optional; DefaultParameterValue ((null :> obj))>] ?RangeSelector: RangeSelector * [<Optional; DefaultParameterValue ((null :> obj))>] ?Calendar: Calendar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayDTick: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?ArrayTick0: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?CheaterType: CheaterType * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?EndLineWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPadding: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelPrefix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?LabelSuffix: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridCount: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?MinorGridWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Smoothing: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLine: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?StartLineWidth: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?BackgroundColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowBackground: bool -> (LinearAxis -> LinearAxis)
<summary>Linear axes can be used as x and y scales on 2D plots, and as x,y, and z scales on 3D plots.</summary>
--------------------
new: unit -> LayoutObjects.LinearAxis
<summary> Sets the axis type. By default (Auto), plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question. </summary>
<summary>Computes a repeated shuffel-and-split cross validation<br />p: percentage of training set size from original size,<br />iterations: number of random subset creation,<br />xData: rowwise x-coordinate matrix,<br />yData: yData vector<br />fit: x and y data lead to function that maps a xData row vector to a y-coordinate,<br />error: defines the error of the fitted y-coordinate and the actual y-coordinate,<br />getStDev: function that calculates the standard deviation from a seq<^T>. (Seq.stDev)</summary>
<remarks></remarks>
<param name="p"></param>
<param name="iterations"></param>
<param name="xData"></param>
<param name="yData"></param>
<param name="fit"></param>
<param name="error"></param>
<param name="getStDev"></param>
<returns></returns>
<example><code></code></example>
FSharp.Stats