chromium/third_party/coremltools/mlmodel/format/Imputer.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;

/*
 * A transformer that replaces missing values with a default value,
 * such as a statistically-derived value.
 *
 * If ``ReplaceValue`` is set, then missing values of that type are
 * replaced with the corresponding value.
 *
 * For example: if ``replaceDoubleValue`` is set to ``NaN``
 * and a single ``NaN`` double value is provided as input,
 * then it is replaced by ``imputedDoubleValue``. However
 * if the input is an array of doubles, then any instances
 * of ``NaN`` in the array is replaced with the corresponding
 * value in ``imputedDoubleArray``.
 */
message Imputer {
  oneof ImputedValue {
    double imputedDoubleValue = 1;
    int64 imputedInt64Value = 2;
    string imputedStringValue = 3;
    DoubleVector imputedDoubleArray = 4;
    Int64Vector imputedInt64Array = 5;
    StringToDoubleMap imputedStringDictionary = 6;
    Int64ToDoubleMap imputedInt64Dictionary = 7;
  }

  oneof ReplaceValue {
    double replaceDoubleValue = 11;
    int64 replaceInt64Value = 12;
    string replaceStringValue = 13;
  }
}