This is an automated email from the ASF dual-hosted git repository. rawkintrevo pushed a commit to branch cochrane-orcutt-docs in repository https://gitbox.apache.org/repos/asf/mahout.git
commit d48ffc5f85b2f4919b4224e9755973794eff583c Author: Trevor Grant <[email protected]> AuthorDate: Thu Feb 2 15:27:11 2023 -0600 Add docs --- .../regression/CochraneOrcuttModel.scala | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/core/src/main/scala/org/apache/mahout/math/algorithms/regression/CochraneOrcuttModel.scala b/core/src/main/scala/org/apache/mahout/math/algorithms/regression/CochraneOrcuttModel.scala index 3e5a49660..78932579d 100644 --- a/core/src/main/scala/org/apache/mahout/math/algorithms/regression/CochraneOrcuttModel.scala +++ b/core/src/main/scala/org/apache/mahout/math/algorithms/regression/CochraneOrcuttModel.scala @@ -40,13 +40,39 @@ class CochraneOrcuttModel[K](regressor: LinearRegressorModel[K]) extends LinearR } +/** + * A class for fitting a Cochrane-Orcutt regression model. + * + * @param hyperparameters A sequence of hyperparameters in the form of symbol-value pairs. + * Default values will be used if no hyperparameters are provided. + * @tparam K The key type of the DRM. + * + * @author [Author Name] + * @since [Release Date] + */ class CochraneOrcutt[K](hyperparameters: (Symbol, Any)*) extends LinearRegressorFitter[K] { + /** + * The regressor to use. + */ var regressor: LinearRegressorFitter[K] = _ + + /** + * The number of iterations to use in the model fitting process. + */ var iterations: Int = _ + + /** + * The cache hint to use for larger inputs. + */ var cacheHint: CacheHint.CacheHint = _ // For larger inputs, CacheHint.MEMORY_AND_DISK2 is reccomended. + /** + * Sets the hyperparameters for the model. + * + * @param hyperparameters A map of hyperparameters in the form of symbol-value pairs. + */ def setHyperparameters(hyperparameters: Map[Symbol, Any] = Map('foo -> None)): Unit = { setStandardHyperparameters(hyperparameters.toMap) regressor = hyperparameters.asInstanceOf[Map[Symbol, LinearRegressorFitter[K]]].getOrElse('regressor, new OrdinaryLeastSquares()) @@ -58,6 +84,12 @@ class CochraneOrcutt[K](hyperparameters: (Symbol, Any)*) extends LinearRegresso setHyperparameters(hyperparameters.toMap) + /** + * Calculates the value of rho for a given error matrix. + * + * @param errorDrm The error matrix. + * @return The calculated value of rho. + */ def calculateRho(errorDrm: DrmLike[K]): Double ={ val error = errorDrm.collect.viewColumn(0) val n = error.length - 1 @@ -67,6 +99,14 @@ class CochraneOrcutt[K](hyperparameters: (Symbol, Any)*) extends LinearRegresso e3.times(e2).sum / e3.assign(Functions.SQUARE).sum } + /** + * Fits a Cochrane-Orcutt regression model to the input features and target data. + * + * @param drmFeatures The features matrix. + * @param drmTarget The target matrix. + * @param hyperparameters A sequence of hyperparameters in the form of symbol-value pairs. + * @return A `CochraneOrcuttModel` instance containing the fitted model. + */ def fit(drmFeatures: DrmLike[K], drmTarget: DrmLike[K], hyperparameters: (Symbol, Any)*): CochraneOrcuttModel[K] = { setHyperparameters(hyperparameters.toMap[Symbol, Any]) @@ -148,4 +188,4 @@ class CochraneOrcutt[K](hyperparameters: (Symbol, Any)*) extends LinearRegresso finalModel } -} \ No newline at end of file +}
