UNPKG

qminer

Version:

A C++ based data analytics platform for processing large-scale real-time streams containing structured and unstructured data

1,192 lines (1,178 loc) 51.7 kB
<!doctype html> <html> <head> <meta name="generator" content="JSDoc 3"> <meta charset="utf-8"> <title>Namespace: metrics</title> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css"> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css"> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css"> <link href="css/baseline.css" rel="stylesheet"> </head> <body onload="prettyPrint()"> <nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar"> <div id="jsdoc-navbar-container"> <div id="jsdoc-navbar-content"> <a href="index.html" class="jsdoc-navbar-package-name">QMiner JavaScript API v9.4.0</a> </div> </div> </nav> <div id="jsdoc-body-container"> <div id="jsdoc-content"> <div id="jsdoc-content-container"> <div id="jsdoc-main" role="main"> <header class="page-header"> <div class="symbol-detail-labels"><span class="label label-kind">namespace</span>&nbsp;<span class="label label-inner">inner</span></div> <h1><small><a href="module-analytics.html">analytics</a>~<wbr></small><span class="symbol-name">metrics</span></h1> <p class="source-link">Source: <a href="analyticsdoc.js.html#source-line-3417">analyticsdoc.<wbr>js:3417</a></p> <div class="symbol-description"> <p>Classification and regression metrics.</p> </div> <section> <h2> Examples </h2> <div> <p>Batch classification example</p> <pre class="prettyprint"><code>// import metrics module var analytics &#x3D; require(&#x27;qminer&#x27;).analytics; // true and predicted lables var true_lables &#x3D; [0, 1, 0, 0, 1]; var pred_prob &#x3D; [0.3, 0.5, 0.2, 0.5, 0.8]; // compute ROC curve var roc &#x3D; analytics.metrics.rocCurve(true_lables, pred_prob);</code></pre> </div> <div> <p>Online classification example</p> <pre class="prettyprint"><code>// import analytics module var analytics &#x3D; require(&#x27;qminer&#x27;).analytics; // true and predicted lables var true_lables &#x3D; [0, 1, 0, 0, 1]; var pred_prob &#x3D; [0.3, 0.5, 0.2, 0.5, 0.8]; // create predictionCurve instance var predictionCurve &#x3D; new analytics.metrics.PredictionCurve(); // simulate data flow for (var i in true_lables) { // push new value predictionCurve.push(true_lables[i], pred_prob[i]); } var roc &#x3D; predictionCurve.roc(); // get ROC</code></pre> </div> <div> <p>Batch regression example</p> <pre class="prettyprint"><code>// import analytics module var analytics &#x3D; require(&#x27;qminer&#x27;).analytics; // true and predicted data var true_vals &#x3D; [1, 2, 3, 4, 5]; var pred_vals &#x3D; [3, 4, 5, 6, 7]; // use batch MAE method analytics.metrics.meanAbsoluteError(true_vals, pred_vals);</code></pre> </div> <div> <p>Online regression example</p> <pre class="prettyprint"><code>// import analytics module var analytics &#x3D; require(&#x27;qminer&#x27;).analytics; // true and predicted data var true_vals &#x3D; [1, 2, 3, 4, 5]; var pred_vals &#x3D; [3, 4, 5, 6, 7]; // create online MAE metric instance var mae &#x3D; new analytics.metrics.MeanAbsoluteError(); // simulate data flow for (var i in true_vals) { // push new value mae.push(true_vals[i], pred_vals[i]); } // get updated error mae.getError();</code></pre> </div> </section> <dl class="dl-compact"> </dl> </header> <section id="summary"> <div class="summary-callout"> <h2 class="summary-callout-heading">Child classes</h2> <div class="summary-content"> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-analytics-metrics.ClassificationScore.html">ClassificationScore(yTrue, yPred)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.MeanAbsoluteError.html">MeanAbsoluteError([fin])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.MeanAbsolutePercentageError.html">MeanAbsolutePercentageError([fin])</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-analytics-metrics.MeanError.html">MeanError([fin])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.MeanSquareError.html">MeanSquareError([fin])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.PredictionCurve.html">PredictionCurve(yTrue, yPred)</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-analytics-metrics.R2Score.html">R2Score([fin])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.RootMeanSquareError.html">RootMeanSquareError([fin])</a></dt> <dd> </dd> </dl> </div> </div> </div> <div class="summary-callout"> <h2 class="summary-callout-heading">Methods</h2> <div class="summary-content"> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-analytics-metrics.html#.accuracyScore">accuracyScore(yTrue, yPred)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.bestF1Threshold">bestF1Threshold(yTrue, yPred)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.breakEventPointScore">breakEventPointScore(yTrue, yPred)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.desiredPrecisionThreshold">desiredPrecisionThreshold(yTrue, yPred, desiredPrecision)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.desiredRecallThreshold">desiredRecallThreshold(yTrue, yPred, desiredRecall)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.f1Score">f1Score(yTrue, yPred)</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-analytics-metrics.html#.meanAbsoluteError">meanAbsoluteError(yTrueVec, yPredVec)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.meanAbsolutePercentageError">meanAbsolutePercentageError(yTrueVec, yPredVec)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.meanError">meanError(yTrueVec, yPredVec)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.meanSquareError">meanSquareError(yTrueVec, yPredVec)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.precisionRecallCurve">precisionRecallCurve(yTrue, yPred[, sample])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.precisionScore">precisionScore(yTrue, yPred)</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-analytics-metrics.html#.r2Score">r2Score(yTrueVec, yPredVec)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.recallScore">recallScore(yTrue, yPred)</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.rocAucScore">rocAucScore(yTrue, yPred[, sample])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.rocCurve">rocCurve(yTrue, yPred[, sample])</a></dt> <dd> </dd> <dt><a href="module-analytics-metrics.html#.rootMeanSquareError">rootMeanSquareError(yTrueVec, yPredVec)</a></dt> <dd> </dd> </dl> </div> </div> </div> </section> <section> <h2>Classes</h2> <section id='members-links'> <h3><a href="module-analytics-metrics.ClassificationScore.html">ClassificationScore</a></h3> <h3><a href="module-analytics-metrics.MeanAbsoluteError.html">MeanAbsoluteError</a></h3> <h3><a href="module-analytics-metrics.MeanAbsolutePercentageError.html">MeanAbsolutePercentageError</a></h3> <h3><a href="module-analytics-metrics.MeanError.html">MeanError</a></h3> <h3><a href="module-analytics-metrics.MeanSquareError.html">MeanSquareError</a></h3> <h3><a href="module-analytics-metrics.PredictionCurve.html">PredictionCurve</a></h3> <h3><a href="module-analytics-metrics.R2Score.html">R2Score</a></h3> <h3><a href="module-analytics-metrics.RootMeanSquareError.html">RootMeanSquareError</a></h3> </section> <h2>Methods</h2> <section> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".accuracyScore"><span class="symbol-name">accuracyScore</span><span class="signature"><span class="signature-params">(yTrue, yPred)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Accuracy score is the proportion of true results (both true positives and true negatives) among the total number of cases examined. Formula: <code>(tp + tn) / (tp + fp + fn + tn)</code>.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Predicted (estimated) lables.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Accuracy value.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".bestF1Threshold"><span class="symbol-name">bestF1Threshold</span><span class="signature"><span class="signature-params">(yTrue, yPred)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Gets threshold for prediction score, which results in the highest F1.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Threshold with highest F1 score.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".breakEventPointScore"><span class="symbol-name">breakEventPointScore</span><span class="signature"><span class="signature-params">(yTrue, yPred)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Get break-even point, the value where precision and recall intersect.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Break-even point score.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".desiredPrecisionThreshold"><span class="symbol-name">desiredPrecisionThreshold</span><span class="signature"><span class="signature-params">(yTrue, yPred, desiredPrecision)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Gets threshold for prediction score, nearest to specified precision.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> <tr> <td> <p>desiredPrecision</p> </td> <td> <p>number</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Desired precision score.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Threshold for prediction score, nearest to specified <code>precision</code>.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".desiredRecallThreshold"><span class="symbol-name">desiredRecallThreshold</span><span class="signature"><span class="signature-params">(yTrue, yPred, desiredRecall)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Gets threshold for recall score, nearest to specified recall.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> <tr> <td> <p>desiredRecall</p> </td> <td> <p>number</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Desired recall score.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Threshold for recall score, nearest to specified <code>recall</code>.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".f1Score"><span class="symbol-name">f1Score</span><span class="signature"><span class="signature-params">(yTrue, yPred)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>The F1 score can be interpreted as a weighted average of the precision and recall, where an F1 score reaches its best value at 1 and worst score at 0. The relative contribution of precision and recall to the F1 score are equal. Formula: <code>2 * (precision * recall) / (precision + recall)</code>.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Predicted (estimated) lables.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B F1 score.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".meanAbsoluteError"><span class="symbol-name">meanAbsoluteError</span><span class="signature"><span class="signature-params">(yTrueVec, yPredVec)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Mean absolute error (MAE) regression loss.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrueVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>ground truth values in <code>yTrueVec</code>.</p> </td> </tr> <tr> <td> <p>yPredVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>estimated values in <code>yPredVec</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Error value.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".meanAbsolutePercentageError"><span class="symbol-name">meanAbsolutePercentageError</span><span class="signature"><span class="signature-params">(yTrueVec, yPredVec)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Mean absolute percentage error (MAPE) regression loss.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrueVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>ground truth values in <code>yTrueVec</code>.</p> </td> </tr> <tr> <td> <p>yPredVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>estimated values in <code>yPredVec.</code></p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Error value.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".meanError"><span class="symbol-name">meanError</span><span class="signature"><span class="signature-params">(yTrueVec, yPredVec)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Mean error (ME) regression loss.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrueVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>ground truth values in <code>yTrueVec</code>.</p> </td> </tr> <tr> <td> <p>yPredVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>estimated values in <code>yPredVec</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Error value.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".meanSquareError"><span class="symbol-name">meanSquareError</span><span class="signature"><span class="signature-params">(yTrueVec, yPredVec)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Mean square error (MSE) regression loss.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrueVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>ground truth values in <code>yTrueVec</code>.</p> </td> </tr> <tr> <td> <p>yPredVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>estimated values in <code>yPredVec</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Error value.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".precisionRecallCurve"><span class="symbol-name">precisionRecallCurve</span><span class="signature"><span class="signature-params">(yTrue, yPred[, sample])</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.Matrix.html">module:la.Matrix</a></span></span></h3> <p>Get precision recall curve sampled on <code>sample</code> points.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> <tr> <td> <p>sample</p> </td> <td> <p>number</p> </td> <td> <p>Yes</p> </td> <td> <p>Desired number of samples in output.</p> <p>Defaults to <code>10</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.Matrix.html">module:la.Matrix</a></code>B Precision-recall pairs.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".precisionScore"><span class="symbol-name">precisionScore</span><span class="signature"><span class="signature-params">(yTrue, yPred)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Precision score is defined as the proportion of the true positives against all the positive results (both true positives and false positives). Formula: <code>tp / (tp + fp)</code>.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Predicted (estimated) lables.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Precission score.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".r2Score"><span class="symbol-name">r2Score</span><span class="signature"><span class="signature-params">(yTrueVec, yPredVec)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>R^2 (coefficient of determination) regression score.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrueVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>ground truth values in <code>yTrueVec</code>.</p> </td> </tr> <tr> <td> <p>yPredVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>estimated values in <code>yPredVec</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Error value.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".recallScore"><span class="symbol-name">recallScore</span><span class="signature"><span class="signature-params">(yTrue, yPred)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Recall score is intuitively the ability of the classifier to find all the positive samples. Formula: <code>tp / (tp + fn)</code>.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Predicted (estimated) lables.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Recall score.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".rocAucScore"><span class="symbol-name">rocAucScore</span><span class="signature"><span class="signature-params">(yTrue, yPred[, sample])</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Get AUC of the current curve.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import metrics module var metrics &#x3D; require(&#x27;qminer&#x27;).analytics.metrics; // true and predicted lables var true_lables &#x3D; [0, 1, 0, 0, 1]; var pred_prob &#x3D; [0.3, 0.5, 0.2, 0.5, 0.8]; // compute ROC curve var auc &#x3D; metrics.rocAucScore(true_lables, pred_prob); // output: 0.92</code></pre> </div> </section> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> <tr> <td> <p>sample</p> </td> <td> <p>number</p> </td> <td> <p>Yes</p> </td> <td> <p>Desired number of samples in output.</p> <p>Defaults to <code>10</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Area under ROC curve.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".rocCurve"><span class="symbol-name">rocCurve</span><span class="signature"><span class="signature-params">(yTrue, yPred[, sample])</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.Matrix.html">module:la.Matrix</a></span></span></h3> <p>Get ROC parametrization sampled on <code>sample</code> points.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import metrics module var metrics &#x3D; require(&#x27;qminer&#x27;).analytics.metrics; // true and predicted lables var true_lables &#x3D; [0, 1, 0, 0, 1]; var pred_prob &#x3D; [0.3, 0.5, 0.2, 0.5, 0.8]; // compute ROC curve var roc &#x3D; metrics.rocCurve(true_lables, pred_prob); // output: [ [ 0, 0 ], [0, 0.5], [[ 0.34, 1 ],], [ 0.67, 0 ], [ 1, 1 ] ]</code></pre> </div> </section> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrue</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Ground truth (correct) lables.</p> </td> </tr> <tr> <td> <p>yPred</p> </td> <td> <p>(Array of number or <a href="module-la.Vector.html">module:la.Vector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Estimated probabilities.</p> </td> </tr> <tr> <td> <p>sample</p> </td> <td> <p>number</p> </td> <td> <p>Yes</p> </td> <td> <p>Desired number of samples in output.</p> <p>Defaults to <code>10</code>.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.Matrix.html">module:la.Matrix</a></code>B A matrix with increasing false and true positive rates.</p> </dd> </dl> <div class="symbol-detail-labels"><span class="label label-static">static</span></div> <h3 id=".rootMeanSquareError"><span class="symbol-name">rootMeanSquareError</span><span class="signature"><span class="signature-params">(yTrueVec, yPredVec)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Root mean square (RMSE) error regression loss.</p> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>yTrueVec</p> </td> <td> <p>(Array of number or <a href="module-la.Vector