You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ra...@apache.org on 2023/02/02 21:27:18 UTC
[mahout] 01/01: Add docs
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 <tr...@gmail.com>
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
+}