Package org.elasticsearch.index.rankeval
Class PrecisionAtK
java.lang.Object
org.elasticsearch.index.rankeval.PrecisionAtK
- All Implemented Interfaces:
org.elasticsearch.common.io.stream.NamedWriteable,org.elasticsearch.common.io.stream.Writeable,org.elasticsearch.common.xcontent.ToXContent,org.elasticsearch.common.xcontent.ToXContentObject,EvaluationMetric
Metric implementing Precision@K
(https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Precision).
By default documents with a rating equal or bigger than 1 are considered to be "relevant" for this calculation. This value can be changed using the `relevant_rating_threshold` parameter.
The `ignore_unlabeled` parameter (default to false) controls if unrated documents should be ignored. The `k` parameter (defaults to 10) controls the search window size.
By default documents with a rating equal or bigger than 1 are considered to be "relevant" for this calculation. This value can be changed using the `relevant_rating_threshold` parameter.
The `ignore_unlabeled` parameter (default to false) controls if unrated documents should be ignored. The `k` parameter (defaults to 10) controls the search window size.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.Params -
Field Summary
FieldsFields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS -
Constructor Summary
ConstructorsConstructorDescriptionPrecisionAtK(boolean ignoreUnlabeled)PrecisionAtK(int relevantRatingThreshold, boolean ignoreUnlabeled, int k)Metric implementing Precision@K. -
Method Summary
Modifier and TypeMethodDescriptionbooleanevaluate(String taskId, org.elasticsearch.search.SearchHit[] hits, List<RatedDocument> ratedDocs)Compute precision at k based on provided relevant document IDs.Metrics can define a size of the search hits windows they want to retrieve by overwriting this method.static PrecisionAtKfromXContent(org.elasticsearch.common.xcontent.XContentParser parser)booleanGets the 'ignore_unlabeled' parameter.intgetK()intReturn the rating threshold above which ratings are considered to be "relevant" for this metric.inthashCode()org.elasticsearch.common.xcontent.XContentBuildertoXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)voidwriteTo(org.elasticsearch.common.io.stream.StreamOutput out)Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.elasticsearch.index.rankeval.EvaluationMetric
combineMethods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject
isFragment
-
Field Details
-
NAME
- See Also:
- Constant Field Values
-
-
Constructor Details
-
PrecisionAtK
public PrecisionAtK(int relevantRatingThreshold, boolean ignoreUnlabeled, int k)Metric implementing Precision@K.- Parameters:
relevantRatingThreshold- ratings equal or above this value will be considered relevant.ignoreUnlabeled- Controls how unlabeled documents in the search hits are treated. Set to 'true', unlabeled documents are ignored and neither count as true or false positives. Set to 'false', they are treated as false positives.k- controls the window size for the search results the metric takes into account
-
PrecisionAtK
public PrecisionAtK(boolean ignoreUnlabeled) -
PrecisionAtK
public PrecisionAtK()
-
-
Method Details
-
fromXContent
-
writeTo
- Specified by:
writeToin interfaceorg.elasticsearch.common.io.stream.Writeable- Throws:
IOException
-
toXContent
public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws IOException- Specified by:
toXContentin interfaceorg.elasticsearch.common.xcontent.ToXContent- Throws:
IOException
-
getWriteableName
- Specified by:
getWriteableNamein interfaceorg.elasticsearch.common.io.stream.NamedWriteable
-
getRelevantRatingThreshold
public int getRelevantRatingThreshold()Return the rating threshold above which ratings are considered to be "relevant" for this metric. Defaults to 1. -
getIgnoreUnlabeled
public boolean getIgnoreUnlabeled()Gets the 'ignore_unlabeled' parameter. -
getK
public int getK() -
forcedSearchSize
Description copied from interface:EvaluationMetricMetrics can define a size of the search hits windows they want to retrieve by overwriting this method. The default implementation returns an empty optional.- Specified by:
forcedSearchSizein interfaceEvaluationMetric- Returns:
- the number of search hits this metrics requests
-
evaluate
public EvalQueryQuality evaluate(String taskId, org.elasticsearch.search.SearchHit[] hits, List<RatedDocument> ratedDocs)Compute precision at k based on provided relevant document IDs.- Specified by:
evaluatein interfaceEvaluationMetric- Parameters:
taskId- an identifier of the query for which the search ranking is evaluatedhits- the search result hitsratedDocs- the documents that contain the document rating for this query case- Returns:
- precision at k for above
SearchResultlist.
-
equals
-
hashCode
public final int hashCode()
-