Evaluasi model

Halaman ini menjelaskan cara menggunakan metrik evaluasi untuk model Anda setelah dilatih, dan memberikan beberapa saran dasar tentang cara untuk meningkatkan performa model.

Pengantar

Setelah melatih model, AutoML Tables menggunakan set data pengujian untuk mengevaluasi kualitas dan akurasi model baru, serta memberikan kumpulan metrik evaluasi gabungan yang menunjukkan seberapa baik performa model pada set data pengujian.

Penggunaan metrik evaluasi untuk menentukan kualitas model bergantung pada kebutuhan bisnis Anda dan masalah yang dilatih untuk dipecahkan oleh model Anda. Misalnya, mungkin ada biaya yang lebih tinggi untuk positif palsu daripada negatif palsu, atau sebaliknya. Untuk model regresi, apakah delta antara prediksi dan jawaban yang benar penting atau tidak? Pertanyaan-pertanyaan semacam ini memengaruhi cara Anda melihat metrik evaluasi model.

Jika Anda menyertakan kolom bobot dalam data pelatihan, kolom tersebut tidak akan memengaruhi metrik evaluasi. Bobot hanya dipertimbangkan selama fase pelatihan.

Metrik evaluasi untuk model klasifikasi

Model klasifikasi menyediakan metrik berikut:

  • AUC PR: Area di bawah kurva presisi-recall (PR). Nilai ini berkisar dari nol hingga satu, dengan nilai yang lebih tinggi menunjukkan model yang berkualitas lebih tinggi.

  • AUC ROC: Area di bawah kurva karakteristik operasi penerima (ROC). Ini berkisar dari nol hingga satu, dengan nilai yang lebih tinggi menunjukkan model yang berkualitas lebih tinggi.

  • Akurasi: Bagian prediksi klasifikasi yang dihasilkan oleh model yang benar.

  • Kerugian log: Entropi silang antara prediksi model dan nilai target. Rentangnya dari nol hingga tak terbatas, dengan nilai yang lebih rendah menunjukkan model yang berkualitas lebih tinggi.

  • Skor F1: Rata-rata harmonis dari presisi dan perolehan. F1 adalah metrik yang berguna jika Anda mencari keseimbangan antara presisi dan perolehan serta terdapat distribusi class yang tidak merata.

  • Presisi: Fraksi prediksi positif yang dihasilkan oleh model yang benar. (Prediksi positif adalah positif palsu (PP) dan positif benar yang digabungkan).

  • Perolehan: Bagian baris dengan label ini yang diprediksi oleh model dengan benar. Juga disebut dengan "Rasio positif benar".

  • Rasio positif palsu: Pecahan baris yang diprediksi oleh model untuk menjadi label target, tetapi tidak menjadi label target (positif palsu).

Metrik ini ditampilkan untuk setiap nilai yang berbeda pada kolom target. Untuk model klasifikasi kelas multi, metrik ini dirata-rata mikro dan ditampilkan sebagai metrik ringkasan. Untuk model klasifikasi biner, metrik untuk class minoritas digunakan sebagai metrik ringkasan. Metrik rata-rata mikro adalah nilai yang diharapkan dari setiap metrik pada sampel acak dari set data Anda.

Selain metrik di atas, AutoML Tables menyediakan dua cara lain untuk memahami model klasifikasi Anda, yaitu matriks konfusi dan grafik nilai penting fitur.

  • Matriks konfusi: Matriks konfusi membantu Anda memahami tempat terjadinya kesalahan klasifikasi (kelas mana yang "tercampur" satu sama lain). Setiap baris mewakili kebenaran dasar untuk label tertentu, dan setiap kolom menampilkan label yang diprediksi oleh model.

    Matriks konfusi hanya disediakan untuk model klasifikasi dengan nilai 10 atau lebih sedikit untuk kolom target.

    Halaman evaluasi AutoML Tables

  • Tingkat kepentingan fitur: AutoML Tables memberi tahu Anda seberapa besar dampak setiap fitur terhadap model ini. Hal ini ditampilkan pada grafik Tingkat kepentingan fitur. Nilai ini diberikan sebagai persentase untuk setiap fitur: semakin tinggi persentasenya, semakin kuat fitur tersebut memengaruhi pelatihan model.

    Anda harus meninjau informasi ini untuk memastikan bahwa semua fitur terpenting sesuai untuk masalah data dan bisnis Anda. Pelajari lebih lanjut penjelasan.

    Halaman evaluasi AutoML Tables

Cara penghitungan presisi rata-rata mikro

Presisi rata-rata mikro dihitung dengan menjumlahkan jumlah positif benar (TP) untuk setiap nilai potensial kolom target dan membaginya dengan jumlah positif benar (TP) dan negatif benar (TN) untuk setiap nilai potensial.

\[ presisi_{mikro} = \dfrac{TP_1 + \ldots + TP_n} {TP_1 + \ldots + TP_n + FP_1 + \ldots + FP_n} \]

dengan

  • \(TP_1 + \ldots + TP_n\) adalah jumlah positif benar untuk setiap dari n class
  • \(FP_1 + \ldots + FP_n\) adalah jumlah positif palsu untuk setiap n class

Nilai minimum skor

Nilai minimum skor adalah angka yang berkisar antara 0 hingga 1. Ini menyediakan cara untuk menentukan tingkat keyakinan minimum di mana nilai prediksi yang diberikan harus dianggap benar. Misalnya, jika Anda memiliki class yang sangat kecil kemungkinannya menjadi nilai sebenarnya, Anda dapat menurunkan nilai minimum untuk class tersebut .Menggunakan nilai minimum 0,5 atau lebih tinggi akan menyebabkan class tersebut sangat jarang diprediksi (atau tidak pernah).

Ambang batas yang lebih tinggi akan mengurangi positif palsu, dengan mengorbankan lebih banyak negatif palsu. Ambang batas yang lebih rendah akan mengurangi negatif palsu dengan mengorbankan lebih banyak positif palsu.

Dengan kata lain, nilai minimum skor memengaruhi presisi dan perolehan. Ambang batas yang lebih tinggi menghasilkan peningkatan presisi (karena model tidak pernah membuat prediksi kecuali jika benar-benar yakin), tetapi recall (persentase contoh positif yang dipahami model dengan benar) akan menurun.

Metrik evaluasi untuk model regresi

Model regresi menyediakan metrik berikut:

  • MAE: Rataan mutlak galat (MAE) adalah selisih mutlak rata-rata antara nilai target dan nilai yang diprediksi. Metrik ini berkisar dari nol hingga tak terbatas; nilai yang lebih rendah menunjukkan model yang berkualitas lebih tinggi.

  • RMSE: Metrik error akar rata-rata kuadrat adalah ukuran perbedaan yang sering digunakan antara nilai yang diprediksi oleh model atau estimator dan nilai yang diamati. Metrik ini berkisar dari nol hingga tak terbatas; nilai yang lebih rendah menunjukkan model yang berkualitas lebih tinggi.

  • RMSLE: Metrik galat logaritmik akar rataan kuadrat mirip dengan RMSE, tetapi metrik ini menggunakan logaritma natural dari nilai yang diprediksi dan nilai sebenarnya ditambah 1. RMSLE menghukum di bawah prediksi lebih berat daripada prediksi yang berlebihan. Ini juga bisa menjadi metrik yang baik jika Anda tidak ingin mengganjarkan perbedaan untuk nilai prediksi besar secara lebih besar daripada nilai prediksi kecil. Metrik ini berkisar dari nol hingga tak terbatas; nilai yang lebih rendah menunjukkan model yang berkualitas lebih tinggi. Metrik evaluasi RMSLE hanya ditampilkan jika semua label dan nilai yang diprediksi tidak negatif.

  • r^2: r kuadrat (r^2) adalah kuadrat dari koefisien korelasi Pearson antara label dan nilai yang diprediksi. Metrik ini memiliki rentang antara nol dan satu; nilai yang lebih tinggi menunjukkan model yang berkualitas lebih tinggi.

  • MAPE: Rataan galat persentase mutlak (MAPE) adalah selisih rata-rata persentase mutlak antara label dan nilai yang diprediksi. Metrik ini berkisar antara nol dan tidak terbatas; nilai yang lebih rendah menunjukkan model yang berkualitas lebih tinggi.

    MAPE tidak ditampilkan jika kolom target berisi nilai 0. Dalam hal ini, MAPE tidak terdefinisi.

  • Tingkat kepentingan fitur: AutoML Tables memberi tahu Anda seberapa besar dampak setiap fitur terhadap model ini. Hal ini ditampilkan pada grafik Tingkat kepentingan fitur. Nilai ini diberikan sebagai persentase untuk setiap fitur: semakin tinggi persentasenya, semakin kuat fitur tersebut memengaruhi pelatihan model.

    Anda harus meninjau informasi ini untuk memastikan bahwa semua fitur terpenting sesuai untuk masalah data dan bisnis Anda. Pelajari lebih lanjut penjelasan.

    Halaman evaluasi AutoML Tables

Mendapatkan metrik evaluasi untuk model Anda

Untuk mengevaluasi seberapa baik performa model Anda pada set data pengujian, periksa metrik evaluasi untuk model Anda.

Konsol

Untuk melihat metrik evaluasi model Anda menggunakan Konsol Google Cloud:

  1. Buka halaman AutoML Tables di Konsol Google Cloud.

    Buka halaman AutoML Tables

  2. Pilih tab Models di panel navigasi sebelah kiri, lalu pilih model yang metrik evaluasinya ingin Anda dapatkan.

  3. Buka tab Evaluate.

    Metrik evaluasi ringkasan ditampilkan di bagian atas layar. Untuk model klasifikasi biner, metrik ringkasan adalah metrik kelas minoritas. Untuk model klasifikasi multi-kelas, metrik ringkasan adalah metrik rata-rata mikro.

    Untuk metrik klasifikasi, Anda dapat mengklik nilai target individual guna melihat metrik untuk nilai tersebut.

    Metrik evaluasi untuk model terlatih

REST

Guna mendapatkan metrik evaluasi untuk model Anda menggunakan Cloud AutoML API, gunakan metode modelEvaluations.list.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • endpoint: automl.googleapis.com untuk lokasi global, dan eu-automl.googleapis.com untuk region Uni Eropa.
  • project-id: Project ID Google Cloud Anda.
  • location: lokasi untuk resource: us-central1 untuk Global atau eu untuk Uni Eropa.
  • model-id: ID model yang ingin Anda evaluasi. Contoh, TBL543.

Metode HTTP dan URL:

GET https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id/modelEvaluations/

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id/modelEvaluations/"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id/modelEvaluations/" | Select-Object -Expand Content

Java

Jika resource Anda berada di region Uni Eropa, Anda harus menetapkan endpoint secara eksplisit. Pelajari lebih lanjut.

import com.google.cloud.automl.v1beta1.AutoMlClient;
import com.google.cloud.automl.v1beta1.ListModelEvaluationsRequest;
import com.google.cloud.automl.v1beta1.ModelEvaluation;
import com.google.cloud.automl.v1beta1.ModelName;
import java.io.IOException;

class ListModelEvaluations {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    listModelEvaluations(projectId, modelId);
  }

  // List model evaluations
  static void listModelEvaluations(String projectId, String modelId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model.
      ModelName modelFullId = ModelName.of(projectId, "us-central1", modelId);
      ListModelEvaluationsRequest modelEvaluationsrequest =
          ListModelEvaluationsRequest.newBuilder().setParent(modelFullId.toString()).build();

      // List all the model evaluations in the model by applying filter.
      System.out.println("List of model evaluations:");
      for (ModelEvaluation modelEvaluation :
          client.listModelEvaluations(modelEvaluationsrequest).iterateAll()) {

        System.out.format("Model Evaluation Name: %s%n", modelEvaluation.getName());
        System.out.format("Model Annotation Spec Id: %s", modelEvaluation.getAnnotationSpecId());
        System.out.println("Create Time:");
        System.out.format("\tseconds: %s%n", modelEvaluation.getCreateTime().getSeconds());
        System.out.format("\tnanos: %s", modelEvaluation.getCreateTime().getNanos() / 1e9);
        System.out.format(
            "Evalution Example Count: %d%n", modelEvaluation.getEvaluatedExampleCount());

        System.out.format(
            "Tables Model Evaluation Metrics: %s%n",
            modelEvaluation.getClassificationEvaluationMetrics());
      }
    }
  }
}

Node.js

Jika resource Anda berada di region Uni Eropa, Anda harus menetapkan endpoint secara eksplisit. Pelajari lebih lanjut.

const automl = require('@google-cloud/automl');
const math = require('mathjs');
const client = new automl.v1beta1.AutoMlClient();

/**
 * Demonstrates using the AutoML client to list model evaluations.
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = '[PROJECT_ID]' e.g., "my-gcloud-project";
// const computeRegion = '[REGION_NAME]' e.g., "us-central1";
// const modelId = '[MODEL_ID]' e.g., "TBL4704590352927948800";
// const filter = '[FILTER_EXPRESSIONS]' e.g., "tablesModelMetadata:*";

// Get the full path of the model.
const modelFullId = client.modelPath(projectId, computeRegion, modelId);

// List all the model evaluations in the model by applying filter.
client
  .listModelEvaluations({parent: modelFullId, filter: filter})
  .then(responses => {
    const element = responses[0];
    console.log('List of model evaluations:');
    for (let i = 0; i < element.length; i++) {
      const classMetrics = element[i].classificationEvaluationMetrics;
      const regressionMetrics = element[i].regressionEvaluationMetrics;
      const evaluationId = element[i].name.split('/')[7].split('`')[0];

      console.log(`Model evaluation name: ${element[i].name}`);
      console.log(`Model evaluation Id: ${evaluationId}`);
      console.log(
        `Model evaluation annotation spec Id: ${element[i].annotationSpecId}`
      );
      console.log(`Model evaluation display name: ${element[i].displayName}`);
      console.log(
        `Model evaluation example count: ${element[i].evaluatedExampleCount}`
      );

      if (classMetrics) {
        const confidenceMetricsEntries = classMetrics.confidenceMetricsEntry;

        console.log('Table classification evaluation metrics:');
        console.log(`\tModel auPrc: ${math.round(classMetrics.auPrc, 6)}`);
        console.log(`\tModel auRoc: ${math.round(classMetrics.auRoc, 6)}`);
        console.log(
          `\tModel log loss: ${math.round(classMetrics.logLoss, 6)}`
        );

        if (confidenceMetricsEntries.length > 0) {
          console.log('\tConfidence metrics entries:');

          for (const confidenceMetricsEntry of confidenceMetricsEntries) {
            console.log(
              `\t\tModel confidence threshold: ${math.round(
                confidenceMetricsEntry.confidenceThreshold,
                6
              )}`
            );
            console.log(
              `\t\tModel position threshold: ${math.round(
                confidenceMetricsEntry.positionThreshold,
                4
              )}`
            );
            console.log(
              `\t\tModel recall: ${math.round(
                confidenceMetricsEntry.recall * 100,
                2
              )} %`
            );
            console.log(
              `\t\tModel precision: ${math.round(
                confidenceMetricsEntry.precision * 100,
                2
              )} %`
            );
            console.log(
              `\t\tModel false positive rate: ${confidenceMetricsEntry.falsePositiveRate}`
            );
            console.log(
              `\t\tModel f1 score: ${math.round(
                confidenceMetricsEntry.f1Score * 100,
                2
              )} %`
            );
            console.log(
              `\t\tModel recall@1: ${math.round(
                confidenceMetricsEntry.recallAt1 * 100,
                2
              )} %`
            );
            console.log(
              `\t\tModel precision@1: ${math.round(
                confidenceMetricsEntry.precisionAt1 * 100,
                2
              )} %`
            );
            console.log(
              `\t\tModel false positive rate@1: ${confidenceMetricsEntry.falsePositiveRateAt1}`
            );
            console.log(
              `\t\tModel f1 score@1: ${math.round(
                confidenceMetricsEntry.f1ScoreAt1 * 100,
                2
              )} %`
            );
            console.log(
              `\t\tModel true positive count: ${confidenceMetricsEntry.truePositiveCount}`
            );
            console.log(
              `\t\tModel false positive count: ${confidenceMetricsEntry.falsePositiveCount}`
            );
            console.log(
              `\t\tModel false negative count: ${confidenceMetricsEntry.falseNegativeCount}`
            );
            console.log(
              `\t\tModel true negative count: ${confidenceMetricsEntry.trueNegativeCount}`
            );
            console.log('\n');
          }
        }
        console.log(
          `\tModel annotation spec Id: ${classMetrics.annotationSpecId}`
        );
      } else if (regressionMetrics) {
        console.log('Table regression evaluation metrics:');
        console.log(
          `\tModel root mean squared error: ${regressionMetrics.rootMeanSquaredError}`
        );
        console.log(
          `\tModel mean absolute error: ${regressionMetrics.meanAbsoluteError}`
        );
        console.log(
          `\tModel mean absolute percentage error: ${regressionMetrics.meanAbsolutePercentageError}`
        );
        console.log(`\tModel rSquared: ${regressionMetrics.rSquared}`);
      }
      console.log('\n');
    }
  })
  .catch(err => {
    console.error(err);
  });

Python

Library klien untuk AutoML Tables menyertakan metode Python tambahan yang menyederhanakan penggunaan AutoML Tables API. Metode ini merujuk pada set data dan model berdasarkan nama, bukan ID. Nama set data dan model Anda harus unik. Untuk mengetahui informasi selengkapnya, lihat Referensi klien.

Jika resource Anda berada di region Uni Eropa, Anda harus menetapkan endpoint secara eksplisit. Pelajari lebih lanjut.

# TODO(developer): Uncomment and set the following variables
# project_id = 'PROJECT_ID_HERE'
# compute_region = 'COMPUTE_REGION_HERE'
# model_display_name = 'MODEL_DISPLAY_NAME_HERE'
# filter = 'filter expression here'

from google.cloud import automl_v1beta1 as automl

client = automl.TablesClient(project=project_id, region=compute_region)

# List all the model evaluations in the model by applying filter.
response = client.list_model_evaluations(
    model_display_name=model_display_name, filter=filter
)

print("List of model evaluations:")
for evaluation in response:
    print(f"Model evaluation name: {evaluation.name}")
    print("Model evaluation id: {}".format(evaluation.name.split("/")[-1]))
    print(
        "Model evaluation example count: {}".format(
            evaluation.evaluated_example_count
        )
    )
    print(f"Model evaluation time: {evaluation.create_time}")
    print("\n")

Memahami hasil evaluasi menggunakan API

Saat Anda menggunakan Cloud AutoML API untuk mendapatkan metrik evaluasi model, sejumlah besar informasi akan ditampilkan. Memahami cara penyusunan hasil metrik dapat membantu Anda menafsirkan hasilnya dan menggunakannya untuk mengevaluasi model Anda.

Hasil klasifikasi

Untuk model klasifikasi, hasilnya mencakup beberapa objek ModelEvaluation, yang masing-masing berisi beberapa objek ConfidenceMetricsEntry. Memahami cara penyusunan hasil akan membantu Anda memilih objek yang tepat untuk digunakan saat mengevaluasi model.

Dua objek ModelEvaluation ditampilkan untuk setiap nilai kolom target yang berbeda yang ada dalam data pelatihan. Selain itu, ada dua objek ModelEvaluation ringkasan, dan satu objek ModelEvaluation kosong yang dapat diabaikan.

Dua objek ModelEvaluation yang ditampilkan untuk nilai label tertentu menunjukkan nilai label di kolom displayName. Masing-masing menggunakan nilai batas posisi yang berbeda: satu dan MAX_INT (angka tertinggi yang memungkinkan). Ambang batas posisi menentukan jumlah hasil yang dipertimbangkan untuk prediksi. Untuk masalah klasifikasi, menggunakan batas posisi satu sering kali paling masuk akal, karena hanya ada satu label yang dipilih untuk setiap input. Untuk masalah multi-label, lebih dari satu label dapat dipilih per input, sehingga metrik evaluasi yang ditampilkan untuk batas posisi MAX_INT mungkin lebih berguna. Anda harus menentukan metrik yang akan digunakan berdasarkan kasus penggunaan spesifik dari model Anda.

Dua objek ModelEvaluation ringkasan tidak menyertakan kolom displayName, kecuali sebagai bagian dari matriks konfusi. Selain itu, nilainya untuk kolom evaluatedExampleCount adalah jumlah total baris dalam data pelatihan. Untuk model klasifikasi multi-class, objek ringkasan memberikan metrik rata-rata mikro berdasarkan semua metrik per label. Untuk model klasifikasi biner, metrik kelas minoritas digunakan sebagai metrik ringkasan. Gunakan objek ModelEvaluation dengan batas posisi satu untuk metrik ringkasan Anda.

Setiap objek ModelEvaluation berisi hingga 100 objek ConfidenceMetricsEntry, bergantung pada data pelatihan. Setiap objek ConfidenceMetricsEntry memberikan nilai yang berbeda untuk nilai minimum keyakinan (juga disebut ambang batas skor).

Objek ModelEvaluation terlihat mirip dengan contoh berikut. Perhatikan bahwa urutan tampilan kolom bisa berbeda.

model_evaluation {
  name: "projects/8628/locations/us-central1/models/TBL328/modelEvaluations/18011"
  create_time {
    seconds: 1575513478
    nanos: 163446000
  }
  evaluated_example_count: 1013

  classification_evaluation_metrics {

    au_roc: 0.99749845
    log_loss: 0.01784837
    au_prc: 0.99498594

    confidence_metrics_entry {
      recall: 0.99506414
      precision: 0.99506414
      f1_score: 0.99506414
      false_positive_rate: 0.002467917
      true_positive_count: 1008
      false_positive_count: 5
      false_negative_count: 5
      true_negative_count: 2021
      position_threshold: 1
    }
    confidence_metrics_entry {
      confidence_threshold: 0.0149591835
      recall: 0.99506414
      precision: 0.99506414
      f1_score: 0.99506414
      false_positive_rate: 0.002467917
      true_positive_count: 1008
      false_positive_count: 5
      false_negative_count: 5
      true_negative_count: 2021
      position_threshold: 1
    }
   ...
   confusion_matrix {
      row {
        example_count: 519
        example_count: 2
        example_count: 0
      }
      row {
        example_count: 3
        example_count: 75
        example_count: 0
      }
      row {
        example_count: 0
        example_count: 0
        example_count: 414
      }
      display_name: "RED"
      display_name: "BLUE"
      display_name: "GREEN"
    }
  }
}

Objek ModelEvaluation khusus label terlihat mirip dengan contoh berikut. Perhatikan bahwa urutan tampilan kolom dapat berbeda.

model_evaluation {
  name: "projects/8628/locations/us-central1/models/TBL328/modelEvaluations/21860"
  annotation_spec_id: "not available"
  create_time {
    seconds: 1575513478
    nanos: 163446000
  }
  evaluated_example_count: 521

  classification_evaluation_metrics {

    au_prc: 0.99933827
    au_roc: 0.99889404
    log_loss: 0.014250426

    confidence_metrics_entry {
      recall: 1.0
      precision: 0.51431394
      f1_score: 0.6792699
      false_positive_rate: 1.0
      true_positive_count: 521
      false_positive_count: 492
      position_threshold: 2147483647
    }
    confidence_metrics_entry {
      confidence_threshold: 0.10562216
      recall: 0.9980806
      precision: 0.9904762
      f1_score: 0.9942639
      false_positive_rate: 0.010162601
      true_positive_count: 520
      false_positive_count: 5
      false_negative_count: 1
      true_negative_count: 487
      position_threshold: 2147483647
    }
  ...
  }
  display_name: "RED"
}

Hasil regresi

Untuk model regresi, Anda akan melihat output yang mirip dengan contoh berikut:

{
  "modelEvaluation": [
    {
      "name": "projects/1234/locations/us-central1/models/TBL2345/modelEvaluations/68066093",
      "createTime": "2019-05-15T22:33:06.471561Z",
      "evaluatedExampleCount": 418
    },
    {
      "name": "projects/1234/locations/us-central1/models/TBL2345/modelEvaluations/852167724",
      "createTime": "2019-05-15T22:33:06.471561Z",
      "evaluatedExampleCount": 418,
      "regressionEvaluationMetrics": {
        "rootMeanSquaredError": 1.9845301,
        "meanAbsoluteError": 1.48482,
        "meanAbsolutePercentageError": 15.155516,
        "rSquared": 0.6057632,
        "rootMeanSquaredLogError": 0.16848126
      }
    }
  ]
}

Memecahkan masalah model

Metrik evaluasi model seharusnya baik, tetapi tidak sempurna. Performa model yang buruk dan performa model yang sempurna merupakan indikasi bahwa ada yang tidak beres dengan proses pelatihan.

Performa buruk

Jika model Anda tidak berperforma sebaik yang diinginkan, berikut beberapa hal yang bisa dicoba.

  • Tinjau skema Anda.

    Pastikan semua kolom memiliki jenis yang benar, dan Anda mengecualikannya dari melatih kolom yang tidak prediktif, seperti kolom ID.

  • Tinjau data Anda

    Nilai yang tidak ada di kolom non-nullable menyebabkan baris tersebut diabaikan. Pastikan data Anda tidak memiliki terlalu banyak kesalahan.

  • Ekspor set data pengujian dan periksa.

    Dengan memeriksa data dan menganalisis kapan model membuat prediksi yang salah, Anda mungkin menentukan bahwa Anda memerlukan lebih banyak data pelatihan untuk hasil tertentu, atau data pelatihan Anda menyebabkan kebocoran.

  • Meningkatkan jumlah data pelatihan.

    Jika Anda tidak memiliki data pelatihan yang cukup, kualitas model akan menurun. Pastikan data pelatihan Anda tidak bias.

  • Menambah waktu pelatihan

    Jika waktu pelatihan Anda singkat, Anda mungkin akan mendapatkan model berkualitas lebih tinggi dengan memungkinkannya dilatih dalam jangka waktu yang lebih lama.

Performa sempurna

Jika model Anda menampilkan metrik evaluasi yang hampir sempurna, mungkin ada sesuatu yang salah dengan data pelatihan Anda. Berikut adalah beberapa hal yang harus diperhatikan:

  • Kebocoran target

    Kebocoran target terjadi ketika sebuah fitur disertakan dalam data pelatihan yang tidak dapat diketahui saat pelatihan, dan yang didasarkan pada hasilnya. Misalnya, jika Anda menyertakan nomor Frequent Buyer untuk model yang dilatih untuk memutuskan apakah pengguna pertama kali akan melakukan pembelian, model tersebut akan memiliki metrik evaluasi yang sangat tinggi, tetapi akan berperforma buruk pada data sebenarnya, karena jumlah Frequent Buyer tidak dapat disertakan.

    Untuk memeriksa kebocoran target, tinjau grafik Tingkat kepentingan fitur di tab Evaluate untuk model Anda. Pastikan kolom dengan nilai penting yang tinggi benar-benar prediktif dan tidak membocorkan informasi tentang target.

  • Kolom waktu

    Jika waktu data Anda penting, pastikan Anda menggunakan kolom Waktu atau pemisahan manual berdasarkan waktu. Tidak melakukannya dapat mendistorsi metrik evaluasi Anda. Pelajari lebih lanjut.

Mendownload set data pengujian ke BigQuery

Anda dapat mendownload set data pengujian, termasuk kolom target, beserta hasil model untuk setiap baris. Memeriksa baris yang salah pada model dapat memberikan petunjuk tentang cara meningkatkan model.

  1. Buka AutoML Tables di Konsol Google Cloud.

    Buka halaman AutoML Tables

  2. Pilih Models di panel navigasi sebelah kiri dan klik model Anda.

  3. Buka tab Evaluate, lalu klik Export Predictions on test set data to BigQuery.

  4. Setelah ekspor selesai, klik Lihat hasil evaluasi Anda di BigQuery untuk melihat data.

Langkah selanjutnya