/// <summary> /// Fit the model according to the given training data. /// </summary> /// <param name="regressor">A <see cref="IRegressor"/> instance.</param> /// <param name="x"> /// Matrix with dimensions [nSamples, nFeatures]. /// Training vectors, where nSamples is the number of samples /// and nFeatures is the number of features.</param> /// <param name="y">Vector with dimensions [nSamples]. Target values.</param> /// <param name="sampleWeight">Individual weights for each sample. Vector with dimensions [nSamples].</param> public static void Fit( this IRegressor regressor, Matrix <double> x, Vector <double> y, Vector <double> sampleWeight = null) { regressor.Fit(x, y.ToColumnMatrix(), sampleWeight); }
/// <summary> /// Fit the model according to the given training data. /// </summary> /// <param name="regressor">A <see cref="IRegressor"/> instance.</param> /// <param name="x"> /// Array with dimensions [nSamples, nFeatures]. /// Training vectors, where nSamples is the number of samples /// and nFeatures is the number of features.</param> /// <param name="y">Array with dimensions [nSamples, nTargets]. Target values.</param> /// <param name="sampleWeight">Individual weights for each sample. Array with dimensions [nSamples].</param> public static void Fit(this IRegressor regressor, double[,] x, double[,] y, double[] sampleWeight = null) { regressor.Fit(x.ToDenseMatrix(), y.ToDenseMatrix(), sampleWeight.ToDenseVector()); }
/// <summary> /// Predict target values for samples in x. /// </summary> /// <param name="regressor">A <see cref="IRegressor"/> instance.</param> /// <param name="x">Array with dimensions [nSamples, nFeatures].</param> /// <returns>Returns predicted values. Array with dimensions [nSamples].</returns> public static double[] PredictSingle(this IRegressor regressor, double[,] x) { return(regressor.Predict(DenseMatrix.OfArray(x)).Column(0).ToArray()); }
/// <summary> /// Predict target values for sample x. /// </summary> /// <param name="regressor">A <see cref="IRegressor"/> instance.</param> /// <param name="x">Array of length [nFeatures].</param> /// <returns>Returns predicted values. Array of length [nTargets].</returns> public static double[] Predict(this IRegressor regressor, double[] x) { return(regressor.Predict(x.ToDenseVector().ToRowMatrix()).Row(0).ToArray()); }
/// <summary> /// <para> /// Returns the coefficient of determination R^2 of the prediction. /// </para> /// <para> /// The coefficient R^2 is defined as (1 - u/v), where u is the regression /// sum of squares ((y_true - y_pred) ** 2).sum() and v is the residual /// sum of squares ((y_true - y_true.mean()) ** 2).sum(). /// Best possible score is 1.0, lower values are worse. /// </para> /// </summary> /// <param name="regressor">A <see cref="IRegressor"/> instance.</param> /// <param name="x">Feature matrix. Matrix with dimensions [nSamples, nFeatures].</param> /// <param name="y">True values for <paramref name="x"/>. Vector with dimensions [nSamples].</param> /// <returns> R^2 of Predict(X) wrt. y.</returns> public static double Score(this IRegressor regressor, Matrix <double> x, Vector <double> y) { return(Metrics.Metrics.R2Score(y.ToColumnMatrix(), regressor.Predict(x))); }
/// <summary> /// <para> /// Returns the coefficient of determination R^2 of the prediction. /// </para> /// <para> /// The coefficient R^2 is defined as (1 - u/v), where u is the regression /// sum of squares ((y_true - y_pred) ** 2).sum() and v is the residual /// sum of squares ((y_true - y_true.mean()) ** 2).sum(). /// Best possible score is 1.0, lower values are worse. /// </para> /// </summary> /// <param name="regressor">A <see cref="IRegressor"/> instance.</param> /// <param name="x">Feature matrix. Matrix with dimensions [nSamples, nFeatures].</param> /// <param name="y">True values for <paramref name="x"/>. Matrix with dimensions [nSamples, nTargets].</param> /// <returns> R^2 of Predict(x) wrt. y.</returns> public static double Score(this IRegressor regressor, Matrix <double> x, Matrix <double> y) { return(Metrics.Metrics.R2Score(y, regressor.Predict(x))); }