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
HTML
<!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> <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 = require('qminer').analytics;
// true and predicted lables
var true_lables = [0, 1, 0, 0, 1];
var pred_prob = [0.3, 0.5, 0.2, 0.5, 0.8];
// compute ROC curve
var roc = 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 = require('qminer').analytics;
// true and predicted lables
var true_lables = [0, 1, 0, 0, 1];
var pred_prob = [0.3, 0.5, 0.2, 0.5, 0.8];
// create predictionCurve instance
var predictionCurve = 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 = predictionCurve.roc(); // get ROC</code></pre>
</div>
<div>
<p>Batch regression example</p>
<pre class="prettyprint"><code>// import analytics module
var analytics = require('qminer').analytics;
// true and predicted data
var true_vals = [1, 2, 3, 4, 5];
var pred_vals = [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 = require('qminer').analytics;
// true and predicted data
var true_vals = [1, 2, 3, 4, 5];
var pred_vals = [3, 4, 5, 6, 7];
// create online MAE metric instance
var mae = 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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </p>
</td>
<td>
<p>Estimated probabilities.</p>
</td>
</tr>
<tr>
<td>
<p>desiredPrecision</p>
</td>
<td>
<p>number</p>
</td>
<td>
<p> </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> → <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> </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> </p>
</td>
<td>
<p>Estimated probabilities.</p>
</td>
</tr>
<tr>
<td>
<p>desiredRecall</p>
</td>
<td>
<p>number</p>
</td>
<td>
<p> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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> </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> </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> → <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 = require('qminer').analytics.metrics;
// true and predicted lables
var true_lables = [0, 1, 0, 0, 1];
var pred_prob = [0.3, 0.5, 0.2, 0.5, 0.8];
// compute ROC curve
var auc = 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> </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> </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> → <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 = require('qminer').analytics.metrics;
// true and predicted lables
var true_lables = [0, 1, 0, 0, 1];
var pred_prob = [0.3, 0.5, 0.2, 0.5, 0.8];
// compute ROC curve
var roc = 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> </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> </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> → <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