%iKnow.Classification.IKnowBuilder

class %iKnow.Classification.IKnowBuilder extends %iKnow.Classification.Builder

Parent class for any iKnow-based %iKnow.Classification.Builder implementations, providing common infrastructure abstracting a few iKnow API calls. IKnowBuilder implementations assume category specs are %iKnow.Filters.Filter instances in their string representation.

Property Inventory

Method Inventory

Properties

property DomainId as %Integer;
The iKnow domain this categorization model is built from
Property methods: DomainIdDisplayToLogical(), DomainIdGet(), DomainIdIsValid(), DomainIdLogicalToDisplay(), DomainIdNormalize(), DomainIdSet()
property MetadataField as %String;
If set, this metadata field contains the actual category value for each source
Property methods: MetadataFieldDisplayToLogical(), MetadataFieldGet(), MetadataFieldIsValid(), MetadataFieldLogicalToDisplay(), MetadataFieldLogicalToOdbc(), MetadataFieldNormalize(), MetadataFieldSet()
property TestSet as %iKnow.Filters.Filter;
Property methods: TestSetGet(), TestSetGetSwizzled(), TestSetIsValid(), TestSetNewObject(), TestSetSet()
property TrainingSet as %iKnow.Filters.Filter;
The sample set of the domain to be used for training this model
Property methods: TrainingSetGet(), TrainingSetGetSwizzled(), TrainingSetIsValid(), TrainingSetNewObject(), TrainingSetSet()

Methods

method %GetCategoryInfo(Output pCategories) as %Status [ Language = objectscript ]
Returns all categories added so far: pCategories(n) = $lb([name], [record count])
method %GetRecordCount(Output pSC As %Status) as %Integer [ Language = objectscript ]
method %LoadMetadataCategories(pFieldName As %String) as %Status [ Language = objectscript ]

Creates (appends) categories for each of the available values of a given metadata field pFieldName in the full domain (thus ignoring TrainingSet).

Note: as category names are case sensitive, it is highly recommended to use a case-sensitive metadata field.

method %PopulateTerms(pCount As %Integer = 100, pType As %String = "entity", pMetric As %String = "BM25", pPerCategory As %Boolean = 0) as %Status [ Language = objectscript ]

This %PopulateTerms implementation accepts "BM25" and "TFIDF" as acceptable values for pMetric. See also the class reference for this method in %iKnow.Classification.Builder.

method %TestClassifier(pTestSet As %RawString = "", Output pResult, Output pAccuracy As %Double, pCategorySpec As %String = "", pVerbose As %Boolean = 0) as %Status [ Language = objectscript ]

Utility method to batch-test the classifier against a test set pTestSet, which can be supplied as an %iKnow.Filters.Filter object or its serialized form. Per-record results are returned through pResult:
pResult(n) = $lb([record ID], [actual category], [predicted category])

pAccuracy will contain the raw accuracy (# of records predicted correctly) of the current model. Use %iKnow.Classificaton.Utils for more advanced model testing.

If the current model's category options were added through %AddCategory() without providing an appropriate category filter specification, rather than through a call to %LoadMetadataCategories (which sets MetadataField), supply a metadata field through pCategorySpec where the actual category values to test against can be found.

Inherited Members

Inherited Properties

Inherited Methods

Feedback