--- /dev/null
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.automl.v1beta1;
+
+import "google/api/annotations.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl";
+option java_outer_classname = "ClassificationProto";
+option java_package = "com.google.cloud.automl.v1beta1";
+option php_namespace = "Google\\Cloud\\AutoMl\\V1beta1";
+
+// Contains annotation details specific to classification.
+message ClassificationAnnotation {
+ // Output only. A confidence estimate between 0.0 and 1.0. A higher value
+ // means greater confidence that the annotation is positive. If a user
+ // approves an annotation as negative or positive, the score value remains
+ // unchanged. If a user creates an annotation, the score is 0 for negative or
+ // 1 for positive.
+ float score = 1;
+}
+
+// Model evaluation metrics for classification problems.
+// Visible only to v1beta1
+message ClassificationEvaluationMetrics {
+ // Metrics for a single confidence threshold.
+ message ConfidenceMetricsEntry {
+ // Output only. The confidence threshold value used to compute the metrics.
+ float confidence_threshold = 1;
+
+ // Output only. Recall under the given confidence threshold.
+ float recall = 2;
+
+ // Output only. Precision under the given confidence threshold.
+ float precision = 3;
+
+ // Output only. The harmonic mean of recall and precision.
+ float f1_score = 4;
+
+ // Output only. The recall when only considering the label that has the
+ // highest prediction score and not below the confidence threshold for each
+ // example.
+ float recall_at1 = 5;
+
+ // Output only. The precision when only considering the label that has the
+ // highest predictionscore and not below the confidence threshold for each
+ // example.
+ float precision_at1 = 6;
+
+ // Output only. The harmonic mean of
+ // [recall_at1][google.cloud.automl.v1beta1.ClassificationEvaluationMetrics.ConfidenceMetricsEntry.recall_at1]
+ // and
+ // [precision_at1][google.cloud.automl.v1beta1.ClassificationEvaluationMetrics.ConfidenceMetricsEntry.precision_at1].
+ float f1_score_at1 = 7;
+ }
+
+ // Confusion matrix of the model running the classification.
+ message ConfusionMatrix {
+ // Output only. A row in the confusion matrix.
+ message Row {
+ // Output only. Value of the specific cell in the confusion matrix.
+ // The number of values each row is equal to the size of
+ // annotatin_spec_id.
+ repeated int32 example_count = 1;
+ }
+
+ // Output only. IDs of the annotation specs used in the confusion matrix.
+ repeated string annotation_spec_id = 1;
+
+ // Output only. Rows in the confusion matrix. The number of rows is equal to
+ // the size of `annotation_spec_id`.
+ // `row[i].value[j]` is the number of examples that have ground truth of the
+ // `annotation_spec_id[i]` and are predicted as `annotation_spec_id[j]` by
+ // the model being evaluated.
+ repeated Row row = 2;
+ }
+
+ // Output only. The Area under precision recall curve metric.
+ float au_prc = 1;
+
+ // Output only. The Area under precision recall curve metric based on priors.
+ float base_au_prc = 2;
+
+ // Output only. Metrics that have confidence thresholds.
+ // Precision-recall curve can be derived from it.
+ repeated ConfidenceMetricsEntry confidence_metrics_entry = 3;
+
+ // Output only. Confusion matrix of the evaluation.
+ // Only set for MULTICLASS classification problems where number
+ // of labels is no more than 10.
+ // Only set for model level evaluation, not for evaluation per label.
+ ConfusionMatrix confusion_matrix = 4;
+
+ // Output only. The annotation spec ids used for this evaluation.
+ repeated string annotation_spec_id = 5;
+}
+
+// Type of the classification problem.
+enum ClassificationType {
+ // Should not be used, an un-set enum has this value by default.
+ CLASSIFICATION_TYPE_UNSPECIFIED = 0;
+
+ // At most one label is allowed per example.
+ MULTICLASS = 1;
+
+ // Multiple labels are allowed for one example.
+ MULTILABEL = 2;
+}