blob: 7b8450c33b15a21acd3c400db233015d7ca00ea6 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_121) on Fri Apr 14 22:11:35 PDT 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RecommenderEvaluator (Mahout Map-Reduce 0.13.0 API)</title>
<meta name="date" content="2017-04-14">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RecommenderEvaluator (Mahout Map-Reduce 0.13.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":38,"i2":38,"i3":38,"i4":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RecommenderEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderBuilder.html" title="interface in org.apache.mahout.cf.taste.eval"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.html" title="interface in org.apache.mahout.cf.taste.eval"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html" target="_top">Frames</a></li>
<li><a href="RecommenderEvaluator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.mahout.cf.taste.eval</div>
<h2 title="Interface RecommenderEvaluator" class="title">Interface RecommenderEvaluator</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.html" title="class in org.apache.mahout.cf.taste.impl.eval">AbstractDifferenceRecommenderEvaluator</a>, <a href="../../../../../../org/apache/mahout/cf/taste/impl/eval/AverageAbsoluteDifferenceRecommenderEvaluator.html" title="class in org.apache.mahout.cf.taste.impl.eval">AverageAbsoluteDifferenceRecommenderEvaluator</a>, <a href="../../../../../../org/apache/mahout/cf/taste/impl/eval/RMSRecommenderEvaluator.html" title="class in org.apache.mahout.cf.taste.impl.eval">RMSRecommenderEvaluator</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">RecommenderEvaluator</span></pre>
<div class="block"><p>
Implementations of this interface evaluate the quality of a
<a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a>'s recommendations.
</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html#evaluate-org.apache.mahout.cf.taste.eval.RecommenderBuilder-org.apache.mahout.cf.taste.eval.DataModelBuilder-org.apache.mahout.cf.taste.model.DataModel-double-double-">evaluate</a></span>(<a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderBuilder.html" title="interface in org.apache.mahout.cf.taste.eval">RecommenderBuilder</a>&nbsp;recommenderBuilder,
<a href="../../../../../../org/apache/mahout/cf/taste/eval/DataModelBuilder.html" title="interface in org.apache.mahout.cf.taste.eval">DataModelBuilder</a>&nbsp;dataModelBuilder,
<a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model">DataModel</a>&nbsp;dataModel,
double&nbsp;trainingPercentage,
double&nbsp;evaluationPercentage)</code>
<div class="block">
Evaluates the quality of a <a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a>'s recommendations.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html#getMaxPreference--">getMaxPreference</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">see <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html#getMaxPreference--"><code>DataModel.getMaxPreference()</code></a></span></div>
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html#getMinPreference--">getMinPreference</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">see <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html#getMinPreference--"><code>DataModel.getMinPreference()</code></a></span></div>
</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html#setMaxPreference-float-">setMaxPreference</a></span>(float&nbsp;maxPreference)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html#setMinPreference-float-">setMinPreference</a></span>(float&nbsp;minPreference)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="evaluate-org.apache.mahout.cf.taste.eval.RecommenderBuilder-org.apache.mahout.cf.taste.eval.DataModelBuilder-org.apache.mahout.cf.taste.model.DataModel-double-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evaluate</h4>
<pre>double&nbsp;evaluate(<a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderBuilder.html" title="interface in org.apache.mahout.cf.taste.eval">RecommenderBuilder</a>&nbsp;recommenderBuilder,
<a href="../../../../../../org/apache/mahout/cf/taste/eval/DataModelBuilder.html" title="interface in org.apache.mahout.cf.taste.eval">DataModelBuilder</a>&nbsp;dataModelBuilder,
<a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model">DataModel</a>&nbsp;dataModel,
double&nbsp;trainingPercentage,
double&nbsp;evaluationPercentage)
throws <a href="../../../../../../org/apache/mahout/cf/taste/common/TasteException.html" title="class in org.apache.mahout.cf.taste.common">TasteException</a></pre>
<div class="block"><p>
Evaluates the quality of a <a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a>'s recommendations.
The range of values that may be returned depends on the implementation, but <em>lower</em> values must
mean better recommendations, with 0 being the lowest / best possible evaluation, meaning a perfect match.
This method does not accept a <a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a> directly, but
rather a <a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderBuilder.html" title="interface in org.apache.mahout.cf.taste.eval"><code>RecommenderBuilder</code></a> which can build the
<a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a> to test on top of a given <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model"><code>DataModel</code></a>.
</p>
<p>
Implementations will take a certain percentage of the preferences supplied by the given <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model"><code>DataModel</code></a>
as "training data". This is typically most of the data, like 90%. This data is used to produce
recommendations, and the rest of the data is compared against estimated preference values to see how much
the <a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a>'s predicted preferences match the user's
real preferences. Specifically, for each user, this percentage of the user's ratings are used to produce
recommendations, and for each user, the remaining preferences are compared against the user's real
preferences.
</p>
<p>
For large datasets, it may be desirable to only evaluate based on a small percentage of the data.
<code>evaluationPercentage</code> controls how many of the <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model"><code>DataModel</code></a>'s users are used in
evaluation.
</p>
<p>
To be clear, <code>trainingPercentage</code> and <code>evaluationPercentage</code> are not related. They
do not need to add up to 1.0, for example.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recommenderBuilder</code> - object that can build a <a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a> to test</dd>
<dd><code>dataModelBuilder</code> - <a href="../../../../../../org/apache/mahout/cf/taste/eval/DataModelBuilder.html" title="interface in org.apache.mahout.cf.taste.eval"><code>DataModelBuilder</code></a> to use, or if null, a default <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model"><code>DataModel</code></a>
implementation will be used</dd>
<dd><code>dataModel</code> - dataset to test on</dd>
<dd><code>trainingPercentage</code> - percentage of each user's preferences to use to produce recommendations; the rest are compared
to estimated preference values to evaluate
<a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a> performance</dd>
<dd><code>evaluationPercentage</code> - percentage of users to use in evaluation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a "score" representing how well the <a href="../../../../../../org/apache/mahout/cf/taste/recommender/Recommender.html" title="interface in org.apache.mahout.cf.taste.recommender"><code>Recommender</code></a>'s
estimated preferences match real values; <em>lower</em> scores mean a better match and 0 is a
perfect match</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/mahout/cf/taste/common/TasteException.html" title="class in org.apache.mahout.cf.taste.common">TasteException</a></code> - if an error occurs while accessing the <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html" title="interface in org.apache.mahout.cf.taste.model"><code>DataModel</code></a></dd>
</dl>
</li>
</ul>
<a name="getMaxPreference--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxPreference</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
float&nbsp;getMaxPreference()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">see <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html#getMaxPreference--"><code>DataModel.getMaxPreference()</code></a></span></div>
</li>
</ul>
<a name="setMaxPreference-float-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxPreference</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;setMaxPreference(float&nbsp;maxPreference)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</li>
</ul>
<a name="getMinPreference--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinPreference</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
float&nbsp;getMinPreference()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">see <a href="../../../../../../org/apache/mahout/cf/taste/model/DataModel.html#getMinPreference--"><code>DataModel.getMinPreference()</code></a></span></div>
</li>
</ul>
<a name="setMinPreference-float-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setMinPreference</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;setMinPreference(float&nbsp;minPreference)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RecommenderEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderBuilder.html" title="interface in org.apache.mahout.cf.taste.eval"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.html" title="interface in org.apache.mahout.cf.taste.eval"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/mahout/cf/taste/eval/RecommenderEvaluator.html" target="_top">Frames</a></li>
<li><a href="RecommenderEvaluator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>