chromium/third_party/coremltools/mlmodel/format/OneHotEncoder.proto

// Copyright (c) 2017, Apple Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-3-clause license that can be
// found in LICENSE.txt or at https://opensource.org/licenses/BSD-3-Clause

syntax = "proto3";
option optimize_for = LITE_RUNTIME;

import public "DataStructures.proto";

package CoreML.Specification;

/*
 * Transforms a categorical feature into an array. The array will be all
 * zeros expect a single entry of one.
 *
 * Each categorical value will map to an index, this mapping is given by
 * either the ``stringCategories`` parameter or the ``int64Categories``
 * parameter.
 */
message OneHotEncoder {
  enum HandleUnknown {
    ErrorOnUnknown = 0;
    IgnoreUnknown = 1;  // Output will be all zeros for unknown values.
  }

  /*
   * Mapping to be used for the encoding. The position of the category in
   * the below vector determines where the single one entry will be in the
   * output.
   */
  oneof CategoryType {
    StringVector stringCategories = 1;
    Int64Vector int64Categories = 2;
  }

  // Output can be a dictionary with only one entry, instead of an array.
  bool outputSparse = 10;

  HandleUnknown handleUnknown = 11;
}