This is an automated email from the ASF dual-hosted git repository.
mboehm7 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git
The following commit(s) were added to refs/heads/main by this push:
new 4073206a1a [MINOR] Fix misleading documentation naiveBayes and
naiveBayesPredict
4073206a1a is described below
commit 4073206a1a46cfc6e03628ae699f36f9174c664f
Author: Matthias Boehm <[email protected]>
AuthorDate: Thu Apr 11 20:37:32 2024 +0200
[MINOR] Fix misleading documentation naiveBayes and naiveBayesPredict
---
scripts/builtin/naiveBayes.dml | 33 +++++++++++++++++----------------
scripts/builtin/naiveBayesPredict.dml | 19 ++++++++++---------
2 files changed, 27 insertions(+), 25 deletions(-)
diff --git a/scripts/builtin/naiveBayes.dml b/scripts/builtin/naiveBayes.dml
index d6e2028a5d..7f01fe9378 100644
--- a/scripts/builtin/naiveBayes.dml
+++ b/scripts/builtin/naiveBayes.dml
@@ -19,21 +19,21 @@
#
#-------------------------------------------------------------
-# The naiveBayes-function computes the class conditional probabilities and
class priors.
+# This builtin function implements a NaiveBayes classification.
#
# INPUT:
-#
----------------------------------------------------------------------------------------
-# D One dimensional column matrix with N rows.
-# C One dimensional column matrix with N rows.
-# laplace Any Double value.
-# verbose Boolean value.
-#
----------------------------------------------------------------------------------------
+#
------------------------------------------------------------------------------
+# D Input feature matrix of shape N x M
+# C Class label vector (positive integers) of shape N x 1.
+# laplace Laplace smoothing correction (prevent zero probabilities)
+# verbose Flag for verbose debug output
+#
------------------------------------------------------------------------------
#
# OUTPUT:
-#
--------------------------------------------------------------------------------------------------
-# prior Class priors, One dimensional column matrix with N rows.
-# classConditionals Class conditional probabilities, One dimensional column
matrix with N rows.
-#
--------------------------------------------------------------------------------------------------
+#
------------------------------------------------------------------------------
+# prior Class prior probabilities
+# classConditionals Class conditional feature distributions
+#
------------------------------------------------------------------------------
m_naiveBayes = function(Matrix[Double] D,
Matrix[Double] C, Double laplace = 1, Boolean verbose = TRUE)
@@ -49,18 +49,18 @@ m_naiveBayes = function(Matrix[Double] D,
# sanity checks of data and arguments
if(minFeatureVal < 0)
stop("naiveBayes: Stopping due to invalid argument: Multinomial naive
Bayes "
- + " is meant for count-based feature values, minimum value in X is
negative")
+ + " is meant for count-based feature values, minimum value in D is
negative")
if(numRows < 2)
stop("naiveBayes: Stopping due to invalid inputs: "
+ "Not possible to learn a classifier without at least 2 rows")
if(minLabelVal < 1)
- stop("naiveBayes: Stopping due to invalid argument: Label vector (Y) must
be recoded")
+ stop("naiveBayes: Stopping due to invalid argument: Label vector (C) must
be recoded")
if(numClasses == 1)
stop("naiveBayes: Stopping due to invalid argument: "
- + "Maximum label value is 1, need more than one class to learn a
multi-class classifier")
+ + "Maximum label value is 1, need more than one class to learn a
multi-class classifier")
if(sum(abs(C%%1 == 0)) != numRows)
- stop("naiveBayes: Stopping due to invalid argument: "
- + "Please ensure that Y contains (positive) integral labels")
+ stop("naiveBayes: Stopping due to invalid argument: "
+ + "Please ensure that C contains (positive) integral labels")
if(laplaceCorrection < 0)
stop("naiveBayes: Stopping due to invalid argument: "
+ "Laplacian correction (laplace) must be non-negative")
@@ -88,3 +88,4 @@ m_naiveBayes = function(Matrix[Double] D,
print("Training Accuracy (%): " + acc);
}
}
+
diff --git a/scripts/builtin/naiveBayesPredict.dml
b/scripts/builtin/naiveBayesPredict.dml
index 2d3615eff4..65c6b04d50 100644
--- a/scripts/builtin/naiveBayesPredict.dml
+++ b/scripts/builtin/naiveBayesPredict.dml
@@ -19,20 +19,20 @@
#
#-------------------------------------------------------------
-# The naiveBaysePredict-function predicts the scoring with a naive Bayes model.
+# This builtin function implements the prediction for NaiveBayes
classification.
#
# INPUT:
-#
---------------------------------------------------------------------------------------
+#
------------------------------------------------------------------------------
# X Matrix of test data with N rows.
-# P Class priors, One dimensional column matrix with N rows.
-# C Class conditional probabilities, matrix with N rows
-#
---------------------------------------------------------------------------------------
+# P Class prior probabilities
+# C Class conditional feature distributions
+#
------------------------------------------------------------------------------
#
# OUTPUT:
-#
---------------------------------------------------------------------------------------
-# Y A matrix containing the top-K item-ids with highest predicted ratings.
-# YRaw A matrix containing predicted ratings.
-#
---------------------------------------------------------------------------------------
+#
------------------------------------------------------------------------------
+# Y A matrix containing the top-K item-ids with highest predicted class.
+# YRaw A matrix containing predicted class.
+#
------------------------------------------------------------------------------
m_naiveBayesPredict = function(Matrix[Double] X, Matrix[Double] P,
Matrix[Double] C)
return (Matrix[Double] YRaw, Matrix[Double] Y)
@@ -45,3 +45,4 @@ m_naiveBayesPredict = function(Matrix[Double] X,
Matrix[Double] P, Matrix[Double
YRaw = X_w_ones %*% t(log(model));
Y = rowIndexMax(YRaw);
}
+