Turi Create  4.0
turi::sdk_model::feature_engineering::transformer_base Class Referenceabstract

#include <toolkits/feature_engineering/transformer_base.hpp>

Public Member Functions

virtual size_t get_version () const =0
 
virtual void save_impl (oarchive &oarc) const =0
 
virtual void load_version (iarchive &iarc, size_t version)=0
 
virtual void init_options (const std::map< std::string, flexible_type > &_options)=0
 
virtual void init_transformer (const std::map< std::string, flexible_type > &_options)=0
 
virtual void fit (gl_sframe data)=0
 
virtual gl_sframe transform (gl_sframe data)=0
 
gl_sframe fit_transform (gl_sframe data)
 
std::vector< std::string > list_fields ()
 
const variant_typeget_value_from_state (std::string key)
 
const std::map< std::string, flexible_type > & get_current_options () const
 
std::map< std::string, flexible_typeget_default_options () const
 
const flexible_typeget_option_value (const std::string &name) const
 
const std::map< std::string, variant_type > & get_state () const
 
bool is_trained () const
 
void set_options (const std::map< std::string, flexible_type > &_options)
 
void add_or_update_state (const std::map< std::string, variant_type > &dict)
 
const std::vector< option_handling::option_info > & get_option_info () const
 
virtual const char * name ()=0
 
virtual const std::string & uid ()=0
 
void save_to_url (const std::string &url, const variant_map_type &side_data={})
 
void save_model_to_data (std::ostream &out)
 
const std::map< std::string, std::vector< std::string > > & list_functions ()
 
const std::vector< std::string > & list_get_properties ()
 
const std::vector< std::string > & list_set_properties ()
 
variant_type call_function (const std::string &function, variant_map_type argument)
 
variant_type get_property (const std::string &property)
 
variant_type set_property (const std::string &property, variant_map_type argument)
 
const std::string & get_docstring (const std::string &symbol)
 
virtual void perform_registration ()
 

Protected Member Functions

void register_function (std::string fnname, const std::vector< std::string > &arguments, impl_fn fn)
 
void register_defaults (const std::string &fnname, const variant_map_type &arguments)
 
void register_setter (const std::string &propname, impl_fn setfn)
 
void register_getter (const std::string &propname, impl_fn getfn)
 
void register_docstring (const std::pair< std::string, std::string > &fnname_docstring)
 

Protected Attributes

std::map< std::string, variant_typestate
 

Detailed Description

transformer_base model interface.

Base class for handling feature engineering transformers. This class is meant to be a guide to aid model writing for feature engineering modules.

Each C++ toolkit contains the following:

*) state: This is the key-value map that stores the "model" attributes. The value is of type "variant_type" which is fully interfaced with python. You can add basic types, vectors, SFrames etc.

*) options: Option manager which keeps track of default options, current options, option ranges, type etc. This must be initialized only once in the set_options() function.

Functions that should always be implemented. Here are some notes about each of these functions that may help guide you in writing your model.

*) init_transformer : Initializer the transformer i.e this is the same as init from the python side.

*) fit : Fit the transformer with the data (SFrame)

*) transform : Transform the data (SFrame) to another SFrame after the model has been fit.

*) init_options : Initialize the options manager.

*) save: Save the model with the turicreate iarc. Turi is a server-client module. DO NOT SAVE ANYTHING in the client side. Make sure that everything is in the server side. For example: You might be tempted do keep options that the user provides into the server side but DO NOT do that because save and load will break things for you!

*) load: Load the model with the turicreate oarc.

*) version: A get version for this model

Definition at line 59 of file transformer_base.hpp.

Member Function Documentation

◆ add_or_update_state()

void turi::ml_model_base::add_or_update_state ( const std::map< std::string, variant_type > &  dict)
inherited

Append the key value store of the model.

Parameters
[in]dictOptions (Key-Value pairs) to set

◆ call_function()

variant_type turi::model_base::call_function ( const std::string &  function,
variant_map_type  argument 
)
inherited

Calls a user defined function.

◆ fit()

virtual void turi::sdk_model::feature_engineering::transformer_base::fit ( gl_sframe  data)
pure virtual

Fit the transformer and make it ready for transformations.

Parameters
[in]data(SFrame of data)

Python side interface

This function directly interfaces with "fit" in python.

Implemented in turi::sdk_model::feature_engineering::random_projection, turi::sdk_model::feature_engineering::feature_binner, turi::sdk_model::feature_engineering::sample_transformer, and turi::sdk_model::feature_engineering::count_featurizer.

◆ fit_transform()

gl_sframe turi::sdk_model::feature_engineering::transformer_base::fit_transform ( gl_sframe  data)
inline

Fit and transform the given data. Intended as an optimization because fit and transform are usually always called together. The default implementaiton calls fit and then transform.

Parameters
[in]data(SFrame of data)

Python side interface

This function directly interfaces with "fit_transform" in python.

Definition at line 144 of file transformer_base.hpp.

◆ get_current_options()

const std::map<std::string, flexible_type>& turi::ml_model_base::get_current_options ( ) const
inherited

Get current options.

Returns
Dictionary containing current options.

Python side interface

Interfaces with the get_current_options function in the Python side.

◆ get_default_options()

std::map<std::string, flexible_type> turi::ml_model_base::get_default_options ( ) const
inherited

Get default options.

Returns
Dictionary with default options.

Python side interface

Interfaces with the get_default_options function in the Python side.

◆ get_docstring()

const std::string& turi::model_base::get_docstring ( const std::string &  symbol)
inherited

Returns the toolkit documentation for a function or property.

◆ get_option_info()

const std::vector<option_handling::option_info>& turi::ml_model_base::get_option_info ( ) const
inherited

Returns the option information struct for each of the set parameters.

◆ get_option_value()

const flexible_type& turi::ml_model_base::get_option_value ( const std::string &  name) const
inherited

Returns the value of an option. Throws an error if the option does not exist.

Parameters
[in]nameName of the option to get.

◆ get_property()

variant_type turi::model_base::get_property ( const std::string &  property)
inherited

Reads a property.

◆ get_state()

const std::map<std::string, variant_type>& turi::ml_model_base::get_state ( ) const
inherited

Get model.

Returns
Model map.

◆ get_value_from_state()

const variant_type& turi::ml_model_base::get_value_from_state ( std::string  key)
inherited

Returns the value of a particular key from the state.

Returns
Value of a key model_base for details.

Python side interface

From the python side, this is interfaced with the get() function or the [] operator in python.

◆ get_version()

virtual size_t turi::sdk_model::feature_engineering::transformer_base::get_version ( ) const
pure virtual

◆ init_options()

virtual void turi::sdk_model::feature_engineering::transformer_base::init_options ( const std::map< std::string, flexible_type > &  _options)
pure virtual

Set one of the options in the algorithm. Use the option manager to set these options. If the option does not satisfy the conditions that the option manager has imposed on it. Errors will be thrown.

Parameters
[in]optionsOptions to set

Reimplemented from turi::ml_model_base.

Implemented in turi::sdk_model::feature_engineering::random_projection, turi::sdk_model::feature_engineering::feature_binner, turi::sdk_model::feature_engineering::count_featurizer, and turi::sdk_model::feature_engineering::sample_transformer.

◆ init_transformer()

virtual void turi::sdk_model::feature_engineering::transformer_base::init_transformer ( const std::map< std::string, flexible_type > &  _options)
pure virtual

Init the transformer and return an instantiated object.

Parameters
[in]options(**kwargs from python)

Python side interface

This function directly interfaces with "__init__" in python.

Implemented in turi::sdk_model::feature_engineering::random_projection, turi::sdk_model::feature_engineering::feature_binner, turi::sdk_model::feature_engineering::sample_transformer, and turi::sdk_model::feature_engineering::count_featurizer.

◆ is_trained()

bool turi::ml_model_base::is_trained ( ) const
inherited

Is this model trained.

Returns
True if already trained.

◆ list_fields()

std::vector<std::string> turi::ml_model_base::list_fields ( )
inherited

Methods with already meaningful default implementations.

Lists all the keys accessible in the "model" map.

Returns
List of keys in the model map. model_base for details.

Python side interface

This is the function that the list_fields should call in python.

◆ list_functions()

const std::map<std::string, std::vector<std::string> >& turi::model_base::list_functions ( )
inherited

Lists all the registered functions. Returns a map of function name to array of argument names for the function.

◆ list_get_properties()

const std::vector<std::string>& turi::model_base::list_get_properties ( )
inherited

Lists all the get-table properties of the class.

◆ list_set_properties()

const std::vector<std::string>& turi::model_base::list_set_properties ( )
inherited

Lists all the set-table properties of the class.

◆ load_version()

virtual void turi::sdk_model::feature_engineering::transformer_base::load_version ( iarchive iarc,
size_t  version 
)
pure virtual

◆ name()

virtual const char* turi::model_base::name ( )
pure virtualinherited

Returns the name of the toolkit class, as exposed to client code. For example, the Python proxy for this instance will have a type with this name.

Note: this function is typically overridden using the BEGIN_CLASS_MEMBER_REGISTRATION macro.

◆ perform_registration()

virtual void turi::model_base::perform_registration ( )
virtualinherited

Declare the base registration function. This class has to be handled specially; the macros don't work here due to the override declarations.

Reimplemented in turi::model_proxy.

◆ register_defaults()

void turi::model_base::register_defaults ( const std::string &  fnname,
const variant_map_type &  arguments 
)
protectedinherited

Registers default argument values

◆ register_docstring()

void turi::model_base::register_docstring ( const std::pair< std::string, std::string > &  fnname_docstring)
protectedinherited

Adds a docstring for the specified function or property name.

◆ register_function()

void turi::model_base::register_function ( std::string  fnname,
const std::vector< std::string > &  arguments,
impl_fn  fn 
)
protectedinherited

Adds a function with the specified name, and argument list.

◆ register_getter()

void turi::model_base::register_getter ( const std::string &  propname,
impl_fn  getfn 
)
protectedinherited

Adds a property getter with the specified name.

◆ register_setter()

void turi::model_base::register_setter ( const std::string &  propname,
impl_fn  setfn 
)
protectedinherited

Adds a property setter with the specified name.

◆ save_impl()

virtual void turi::sdk_model::feature_engineering::transformer_base::save_impl ( oarchive oarc) const
pure virtual

◆ save_model_to_data()

void turi::model_base::save_model_to_data ( std::ostream &  out)
inherited

Save a toolkit class to a data stream.

◆ save_to_url()

void turi::model_base::save_to_url ( const std::string &  url,
const variant_map_type &  side_data = {} 
)
inherited

Save a toolkit class to disk.

Parameters
urlThe destination url to store the class.
sidedataAny additional side information

◆ set_options()

void turi::ml_model_base::set_options ( const std::map< std::string, flexible_type > &  _options)
inherited

Set one of the options in the algorithm.

The value are checked with the requirements given by the option instance.

Parameters
[in]nameName of the option.
[in]valueValue for the option.

◆ set_property()

variant_type turi::model_base::set_property ( const std::string &  property,
variant_map_type  argument 
)
inherited

Sets a property. The new value of the property should appear in the argument map under the key "value".

◆ transform()

virtual gl_sframe turi::sdk_model::feature_engineering::transformer_base::transform ( gl_sframe  data)
pure virtual

Transform the given data.

Parameters
[in]data(SFrame of data)

Python side interface

This function directly interfaces with "transform" in python.

Implemented in turi::sdk_model::feature_engineering::random_projection, turi::sdk_model::feature_engineering::feature_binner, turi::sdk_model::feature_engineering::sample_transformer, and turi::sdk_model::feature_engineering::count_featurizer.

◆ uid()

virtual const std::string& turi::model_base::uid ( )
pure virtualinherited

Returns a unique identifier for the toolkit class. It can be any unique ID. The UID is only used at runtime (to determine the concrete type of an arbitrary model_base instance) and is never stored.

Note: this function is typically overridden using the BEGIN_CLASS_MEMBER_REGISTRATION macro.

Implemented in turi::model_proxy.

Member Data Documentation

◆ state

std::map<std::string, variant_type> turi::ml_model_base::state
protectedinherited

All things python

Definition at line 206 of file ml_model.hpp.


The documentation for this class was generated from the following file: