Repository: spark Updated Branches: refs/heads/branch-2.0 86a35a229 -> e38ff70e6
[SPARK-14900][ML][PYSPARK] Add accuracy and deprecate precison,recall,f1 ## What changes were proposed in this pull request? 1, add accuracy for MulticlassMetrics 2, deprecate overall precision,recall,f1 and recommend accuracy usage ## How was this patch tested? manual tests in pyspark shell Author: Zheng RuiFeng <[email protected]> Closes #13511 from zhengruifeng/deprecate_py_precisonrecall. (cherry picked from commit 00ad4f054cd044e17d29b7c2c62efd8616462619) Signed-off-by: Sean Owen <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/e38ff70e Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/e38ff70e Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/e38ff70e Branch: refs/heads/branch-2.0 Commit: e38ff70e6bacf1c85edc390d28f8a8d5ecc6cbc3 Parents: 86a35a2 Author: Zheng RuiFeng <[email protected]> Authored: Mon Jun 6 15:19:22 2016 +0100 Committer: Sean Owen <[email protected]> Committed: Mon Jun 6 15:19:38 2016 +0100 ---------------------------------------------------------------------- python/pyspark/mllib/evaluation.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/spark/blob/e38ff70e/python/pyspark/mllib/evaluation.py ---------------------------------------------------------------------- diff --git a/python/pyspark/mllib/evaluation.py b/python/pyspark/mllib/evaluation.py index 5f32f09..2eaac87 100644 --- a/python/pyspark/mllib/evaluation.py +++ b/python/pyspark/mllib/evaluation.py @@ -15,6 +15,8 @@ # limitations under the License. # +import warnings + from pyspark import since from pyspark.mllib.common import JavaModelWrapper, callMLlibFunc from pyspark.sql import SQLContext @@ -181,6 +183,8 @@ class MulticlassMetrics(JavaModelWrapper): 0.66... >>> metrics.recall() 0.66... + >>> metrics.accuracy() + 0.66... >>> metrics.weightedFalsePositiveRate 0.19... >>> metrics.weightedPrecision @@ -233,6 +237,8 @@ class MulticlassMetrics(JavaModelWrapper): Returns precision or precision for a given label (category) if specified. """ if label is None: + # note:: Deprecated in 2.0.0. Use accuracy. + warnings.warn("Deprecated in 2.0.0. Use accuracy.") return self.call("precision") else: return self.call("precision", float(label)) @@ -243,6 +249,8 @@ class MulticlassMetrics(JavaModelWrapper): Returns recall or recall for a given label (category) if specified. """ if label is None: + # note:: Deprecated in 2.0.0. Use accuracy. + warnings.warn("Deprecated in 2.0.0. Use accuracy.") return self.call("recall") else: return self.call("recall", float(label)) @@ -254,6 +262,8 @@ class MulticlassMetrics(JavaModelWrapper): """ if beta is None: if label is None: + # note:: Deprecated in 2.0.0. Use accuracy. + warnings.warn("Deprecated in 2.0.0. Use accuracy.") return self.call("fMeasure") else: return self.call("fMeasure", label) @@ -263,6 +273,14 @@ class MulticlassMetrics(JavaModelWrapper): else: return self.call("fMeasure", label, beta) + @since('2.0.0') + def accuracy(self): + """ + Returns accuracy (equals to the total number of correctly classified instances + out of the total number of instances). + """ + return self.call("accuracy") + @property @since('1.4.0') def weightedTruePositiveRate(self): --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
