PolynomialRegression Class |
Namespace: Accord.Statistics.Models.Regression.Linear
[SerializableAttribute] public class PolynomialRegression : TransformBase<double, double>, ILinearRegression, IFormattable
The PolynomialRegression type exposes the following members.
Name | Description | |
---|---|---|
PolynomialRegression |
Creates a new Polynomial Linear Regression.
| |
PolynomialRegression(Int32) |
Creates a new Polynomial Linear Regression.
| |
PolynomialRegression(MultipleLinearRegression) |
Creates a new Polynomial Linear Regression.
|
Name | Description | |
---|---|---|
Coefficients | Obsolete.
Gets the coefficients of the polynomial regression,
with the first being the higher-order term and the last
the intercept term.
| |
Degree |
Gets the degree of the polynomial used by the regression.
| |
Intercept |
Gets or sets the intercept value for the regression.
| |
NumberOfInputs |
Gets the number of inputs accepted by the model.
(Inherited from TransformBaseTInput, TOutput.) | |
NumberOfOutputs |
Gets the number of outputs generated by the model.
(Inherited from TransformBaseTInput, TOutput.) | |
Weights |
Gets or sets the linear weights of the regression model. The
intercept term is not stored in this vector, but is instead
available through the Intercept property.
|
Name | Description | |
---|---|---|
CoefficientOfDetermination(Double, Double, Double) |
Gets the coefficient of determination, as known as R² (r-squared).
| |
CoefficientOfDetermination(Double, Double, Boolean, Double) |
Gets the coefficient of determination, as known as R² (r-squared).
| |
Compute(Double) | Obsolete.
Computes the regressed model output for the given input.
| |
Compute(Double) | Obsolete.
Computes the regressed model output for the given inputs.
| |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
FromData |
Creates a new polynomial regression directly from data points.
| |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Regress | Obsolete.
Performs the regression using the input and output
data, returning the sum of squared errors of the fit.
| |
ToString |
Returns a System.String representing the regression.
(Overrides ObjectToString.) | |
ToString(IFormatProvider) |
Returns a System.String representing the regression.
| |
ToString(String) |
Returns a System.String representing the regression.
| |
ToString(String, IFormatProvider) |
Returns a System.String representing the regression.
| |
Transform(TInput) |
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from TransformBaseTInput, TOutput.) | |
Transform(Double) |
Applies the transformation to an input, producing an associated output.
(Overrides TransformBaseTInput, TOutputTransform(TInput).) | |
Transform(Double, Double) |
Applies the transformation to an input, producing an associated output.
(Overrides TransformBaseTInput, TOutputTransform(TInput, TOutput).) |
Name | Description | |
---|---|---|
HasMethod |
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.) | |
IsEqual |
Compares two objects for equality, performing an elementwise
comparison if the elements are vectors or matrices.
(Defined by Matrix.) | |
To(Type) | Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) | |
ToT | Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) |
// Let's say we would like to learn 2nd degree polynomial that // can map the first column X into its second column Y. We have // 5 examples of those (x,y) pairs that we can use to learn this // function: double[,] data = { // X Y { 12, 144 }, // example #1 { 15, 225 }, // example #2 { 20, 400 }, // example #3 { 25, 625 }, // example #4 { 35, 1225 }, // example #5 }; // Let's retrieve the input and output data: double[] inputs = data.GetColumn(0); // X double[] outputs = data.GetColumn(1); // Y // We can create a learning algorithm var ls = new PolynomialLeastSquares() { Degree = 2 }; // Now, we can use the algorithm to learn a polynomial PolynomialRegression poly = ls.Learn(inputs, outputs); // The learned polynomial will be given by string str = poly.ToString("N1"); // "y(x) = 1.0x^2 + 0.0x^1 + 0.0" // Where its weights can be accessed using double[] weights = poly.Weights; // { 1.0000000000000024, -1.2407665029287351E-13 } double intercept = poly.Intercept; // 1.5652369518855253E-12 // Finally, we can use this polynomial // to predict values for the input data double[] pred = poly.Transform(inputs); // Where the mean-squared-error (MSE) should be double error = new SquareLoss(outputs).Loss(pred); // 0.0