Weka_interfaces            package:RWeka            R Documentation

_R/_W_e_k_a _i_n_t_e_r_f_a_c_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     Create an R interface to an existing Weka learner/filter, or show
     the available interfaces.

_U_s_a_g_e:

     make_Weka_associator(name, class = NULL)
     make_Weka_classifier(name, class = NULL, handlers = list())
     make_Weka_clusterer(name, class = NULL)
     make_Weka_filter(name, class = NULL)
     list_Weka_interfaces()

_A_r_g_u_m_e_n_t_s:

    name: a character string giving the fully qualified name of a Weka
          learner/filter class in JNI notation.

   class: 'NULL' (default), or a character vector giving the names of R
          classes the objects returned by the interface function should
          inherit from in addition to the default ones (for
          representing associators, classifiers, and clusterers).

handlers: a named list of special handler functions, see *Details*.

_D_e_t_a_i_l_s:

     'make_Weka_associator' and 'make_Weka_clusterer' create an R
     function providing an interface to a Weka association learner or a
     Weka clusterer, respectively.  This interface function has formals
     'x' and 'control = NULL', representing the training instances and
     control options to be employed.  Objects created by these
     interface functions always inherit from classes 'Weka_associator'
     and 'Weka_clusterer', respectively, and have at least suitable
     'print' methods.  Fitted clusterers also have a 'predict' method.

     'make_Weka_classifier' creates an interface function for a Weka
     classifier, with formals 'formula', 'data', 'subset', 'na.action',
     and 'control' (default: none), where the first four have the
     usual meanings for statistical modeling functions in R, and the
     last again specifies the control options to be employed by the
     Weka learner.  Objects created by these interfaces always inherit
     from class 'Weka_classifier', and have at least suitable 'print'
     and 'predict' methods.

     'make_Weka_filter' creates an interface function for a Weka
     filter, with formals 'formula', 'data', 'subset', 'na.action', and
     'control = NULL', where the first four have the usual meanings
     for statistical modeling functions in R, and the last again
     specifies the control options to be employed by the Weka filter. 
     Note that the response variable can be omitted from  'formula' if
     the filter is unsupervised.  Objects created by these interface
     functions are (currently) always of class 'data.frame'.

     Certain aspects of the interface function can be customized by
     providing handlers.  Currently, only _control_ handlers (functions
     given as the 'control' component of the list of handlers) are used
     for processing the given control arguments before passing them to
     the Weka classifier.  This is used, e.g., by the meta learners to
     allow the specification of registered base learners by their base
     names (rather their full Weka/Java class names).

     In addition to creating interface functions, the interfaces are
     registered (under the name of the Weka class interfaced), which in
     particular allows the Weka Option Wizard ('WOW') to conveniently
     give on-line information about available control options for the
     interfaces.

     'list_Weka_interfaces' lists the _available_ interfaces.

     It is straightforward to register new interfaces in addition to
     the ones package 'RWeka' provides by default.

_R_e_f_e_r_e_n_c_e_s:

     K. Hornik, C. Buchta, and A. Zeileis (2009). Open-source machine
     learning: R meets Weka. _Computational Statistics_, *24*/2,
     225-232,

_E_x_a_m_p_l_e_s:

     ## Create an interface to Weka's Naive Bayes classifier.
     NB <- make_Weka_classifier("weka/classifiers/bayes/NaiveBayes")
     ## Note that this has a very useful print method:
     NB
     ## And we can use the Weka Option Wizard for finding out more:
     WOW(NB)
     ## And actually use the interface ...
     if(require("e1071", quietly = TRUE) &&
        require("mlbench", quietly = TRUE)) {
         data("HouseVotes84", package = "mlbench")
         model <- NB(Class ~ ., data = HouseVotes84)
         predict(model, HouseVotes84[1:10, -1])
         predict(model, HouseVotes84[1:10, -1], type = "prob")
     }
     ## (Compare this to David Meyer's naiveBayes() in package 'e1071'.)

