Turi Create  4.0
quadratic_features.hpp
1 /* Copyright © 2017 Apple Inc. All rights reserved.
2  *
3  * Use of this source code is governed by a BSD-3-clause license that can
4  * be found in the LICENSE.txt file or at https://opensource.org/licenses/BSD-3-Clause
5  */
6 #ifndef TURI_QUADRATIC_FEATURES_H_
7 #define TURI_QUADRATIC_FEATURES_H_
8 #include <model_server/lib/toolkit_class_macros.hpp>
9 #include <toolkits/feature_engineering/transformer_base.hpp>
10 #include <core/export.hpp>
11 
12 namespace turi{
13 namespace sdk_model{
14 namespace feature_engineering{
15 
16 class EXPORT quadratic_features : public transformer_base {
17 
18  static constexpr size_t QUADRATIC_FEATURES_VERSION = 0;
19  std::vector<std::vector<std::string>> unprocessed_features = {};
20  std::vector<std::vector<std::string>> feature_pairs;
21  std::map<std::string, flex_type_enum> feature_types;
22  bool fitted = false;
23  bool exclude = false;
24 
25  public:
26 
27  void init_transformer(const std::map<std::string, flexible_type>& _options) override;
28  size_t get_version() const override;
29  void save_impl(oarchive& oarc) const override;
30  void load_version(iarchive& iarc, size_t version) override;
31  void init_options(const std::map<std::string, flexible_type>& _options) override;
32  void fit(gl_sframe training_data) override;
33  gl_sframe transform(gl_sframe training_data) override;
34 
35 
36  BEGIN_CLASS_MEMBER_REGISTRATION("_QuadraticFeatures")
37  REGISTER_CLASS_MEMBER_FUNCTION(quadratic_features::init_transformer, "_options")
38  REGISTER_CLASS_MEMBER_FUNCTION(quadratic_features::fit, "training_data")
39  REGISTER_CLASS_MEMBER_FUNCTION(quadratic_features::transform, "training_data")
40  REGISTER_CLASS_MEMBER_FUNCTION(quadratic_features::fit_transform, "training_data")
41  REGISTER_CLASS_MEMBER_FUNCTION(quadratic_features::get_current_options);
42  REGISTER_CLASS_MEMBER_FUNCTION(quadratic_features::list_fields);
43  REGISTER_NAMED_CLASS_MEMBER_FUNCTION("_get_default_options",
44  quadratic_features::get_default_options);
46  quadratic_features::get_value_from_state,
47  "key");
48 
50 
51 };
52 
53 } //namespace feature_engineering
54 } //namespace sdk_model
55 }// namespace turi
56 #endif
#define BEGIN_CLASS_MEMBER_REGISTRATION(python_facing_classname)
#define REGISTER_CLASS_MEMBER_FUNCTION(function,...)
#define END_CLASS_MEMBER_REGISTRATION
#define REGISTER_NAMED_CLASS_MEMBER_FUNCTION(name, function,...)
void transform(S &&input, T &&output, TransformFn transformfn, std::set< size_t > constraint_segments=std::set< size_t >())
Definition: algorithm.hpp:64