Prapemrosesan data untuk algoritma bawaan berbentuk tabel

Halaman ini memberikan ringkasan umum tentang cara AI Platform Training melakukan prapemrosesan data Anda untuk pelatihan dengan algoritma bawaan berbentuk tabel. Selain itu, dokumen ini menjelaskan persyaratan dan batasan untuk data input Anda.

Algoritma bawaan berbentuk tabel

Algoritma bawaan yang menerima data tabular (data numerik dan kategoris) memiliki beberapa fitur pra-pemrosesan.

Untuk detail spesifik tentang cara kerja pra-pemrosesan untuk setiap algoritma bawaan berbentuk tabel, lihat panduan terkait:

Versi algoritma XGBoost terdistribusi tidak mendukung pra-pemrosesan otomatis.

Memformat data input

Data input harus berupa file CSV dengan encoding UTF-8.

Anda harus menyiapkan file CSV input untuk memenuhi persyaratan berikut:

  • Hapus baris header. Baris header berisi label untuk setiap kolom. Hapus baris header agar tidak mengirimkannya bersama instance data lainnya sebagai bagian dari data pelatihan.
  • Pastikan kolom target adalah kolom pertama. Kolom target berisi nilai yang Anda coba prediksi. Untuk algoritma klasifikasi, semua nilai dalam kolom target adalah class atau kategori. Untuk algoritma regresi, semua nilai dalam kolom target adalah nilai numerik.

Cara kerja pra-pemrosesan

Prapemrosesan otomatis bekerja untuk data kategoris dan numerik. Rutinitas pra-pemrosesan menganalisis terlebih dahulu, lalu mengubah data Anda.

Analisis

Pertama, AI Platform Training menganalisis set data pada kolom demi kolom. Untuk setiap kolom, AI Platform Training otomatis mendeteksi jenis datanya, mengidentifikasi cara kolom harus diperlakukan untuk transformasi data, dan menghitung beberapa statistik untuk data dalam kolom tersebut. Tugas pelatihan menangkap hasil analisis ini dalam file metadata.json, yang disertakan dengan artefak pelatihan lainnya di bucket Cloud Storage Anda.

  • Jenis: Kolom dapat berupa numerik atau kategori.
  • Perlakuan: Algoritme mengidentifikasi cara memperlakukan setiap kolom. Kolom dapat diperlakukan sebagai constants atau constants. Kolom kategoris juga dapat diberi tag untuk identitas atau kosakata, berdasarkan apakah nilai kategorinya berupa bilangan bulat atau string. Kolom dengan jumlah kategori yang besar akan mendapatkan perlakuan hashing untuk menghitung jumlah kategori yang lebih kecil dan lebih mudah dikelola.
  • Statistik: Statistik dihitung untuk membantu mengubah fitur di setiap kolom, berdasarkan jenis dan perlakuan kolom.

Transformasi

Setelah analisis awal set data selesai, AI Platform Training akan mentransformasi data Anda berdasarkan jenis, perlakuan, dan statistik yang diterapkan ke set data Anda. AI Platform Training melakukan transformasi dalam urutan berikut:

  1. Memisahkan set data pelatihan menjadi set data validasi dan pengujian jika Anda menentukan persentase pemisahan.
  2. Menghapus baris yang memiliki lebih dari 10% fitur yang hilang.
  3. Mengisi nilai yang tidak ada. Nilai {i>mean<i} digunakan untuk kolom numerik. Untuk XGBoost, angka nol digunakan untuk kolom kategori.

Contoh transformasi

Baris berisi 10% nilai yang tidak ada akan dihapus. Pada contoh berikut, anggaplah baris memiliki 10 nilai. Setiap contoh baris dipotong agar lebih praktis.

Masalah baris Nilai asli Nilai yang diubah Penjelasan
Contoh baris yang tidak memiliki nilai [3, 0,45, ...,
'fruits', 0, 1]
[3, 0,45, ...,
1, 0, 0, 0, 1]
String 'values' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Untuk algoritma berbasis TensorFlow, hal ini terjadi pada grafik TensorFlow. Untuk XGBoost, AI Platform Training melakukan transformasi ini.
Terlalu banyak nilai yang hilang [3, 0,45, ...,
'buah', __, __]
Baris dihapus Lebih dari 10% nilai dalam baris tidak ada.
Nilai numerik tidak ada [3, 0,45, ...,
'fruits', 0, __]
[3, 0,45, ...,
1, 0, 0, 0, 0,54]
  • Nilai rata-rata untuk kolom menggantikan nilai numerik yang tidak ada. Dalam contoh ini, {i>mean<i} adalah 0,54.
  • String 'values' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Untuk algoritma berbasis TensorFlow, hal ini terjadi dalam grafik TensorFlow. Untuk XGBoost, AI Platform Training melakukan transformasi ini.
Nilai kategori tidak ada [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • Nilai kategoris yang hilang diubah menjadi nilai "0, 0, 0" dalam encoding one-hot. Untuk algoritma berbasis TensorFlow, hal ini terjadi pada grafik TensorFlow. Untuk XGBoost, AI Platform Training melakukan transformasi ini.

Ada perbedaan lebih lanjut dalam proses transformasi, bergantung pada framework ML yang menjadi dasar algoritma bawaan. Untuk algoritma bawaan berbasis TensorFlow (linear learner, wide dan deep), perlakuan kolom berhubungan langsung dengan kolom fitur mana yang dibuat di model TensorFlow. AI Platform Training hanya menetapkan kolom fitur untuk model Estimator TensorFlow, lalu transformasi data menjadi bagian dari pra-pemrosesan yang terjadi dalam model Estimator TensorFlow.

Jika tidak, seperti pada XGBoost, AI Platform Training menerapkan perlakuan kolom dan melakukan transformasi data secara langsung.

Langkah selanjutnya

  • Mulai dengan salah satu algoritma bawaan.