Pra-pemrosesan data untuk algoritma bawaan tabular

Halaman ini memberikan ringkasan umum tentang cara AI Platform Training memproses data Anda untuk pelatihan dengan algoritma bawaan tabular. Selain itu, halaman ini menjelaskan persyaratan dan batasan untuk data input Anda.

Algoritma bawaan tabular

Algoritma bawaan yang menerima data tabel (data numerik dan kategoris) memiliki beberapa fitur prapemrosesan.

Untuk mengetahui detail spesifik tentang cara kerja prapemrosesan untuk setiap algoritma bawaan tabuler, lihat panduan yang sesuai:

Algoritma XGBoost versi terdistribusi tidak mendukung prapemrosesan otomatis.

Memformat data input

Data input Anda 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 untuk menghindari pengirimannya bersama dengan 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 di kolom target adalah class atau kategori. Untuk algoritma regresi, semua nilai dalam kolom target adalah nilai numerik.

Cara kerja prapemrosesan

Pra-pemrosesan otomatis berfungsi untuk data kategoris dan numerik. Rutinitas prapemrosesan terlebih dahulu menganalisis, lalu mengubah data Anda.

Analisis

Pertama, AI Platform Training menganalisis set data kolom demi kolom. Untuk setiap kolom, AI Platform Training akan otomatis mendeteksi jenis datanya, mengidentifikasi cara kolom harus diperlakukan untuk transformasi data, dan menghitung beberapa statistik untuk data dalam kolom. 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 kategoris.
  • Perlakuan: Algoritma mengidentifikasi cara memperlakukan setiap kolom. Kolom dapat diperlakukan sebagai konstanta atau ID baris. Kolom kategoris juga dapat diberi tag untuk identitas atau kosakata, berdasarkan apakah nilai kategoris adalah bilangan bulat atau string. Kolom dengan kategori dalam jumlah 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 mengubah data Anda berdasarkan jenis, perlakuan, dan statistik yang diterapkan ke set data Anda. AI Platform Training melakukan transformasi dalam urutan berikut:

  1. Membagi set data pelatihan menjadi set data validasi dan pengujian jika Anda menentukan persentase pemisahan.
  2. Menghapus baris yang memiliki lebih dari 10% fitur yang tidak ada.
  3. Mengisi nilai yang tidak ada. Rata-rata digunakan untuk kolom numerik. Untuk XGBoost, nol digunakan untuk kolom kategoris.

Contoh transformasi

Baris dengan 10% nilai yang hilang akan dihapus. Dalam contoh berikut, asumsikan baris memiliki 10 nilai. Setiap contoh baris dipotong untuk memudahkan.

Masalah baris Nilai asli Nilai yang diubah Penjelasan
Contoh baris tanpa nilai yang hilang [3, 0,45, ...,
'buah', 0, 1]
[3, 0,45, ...,
1, 0, 0, 0, 1]
String 'buah' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Untuk algoritma berbasis TensorFlow, hal ini terjadi di grafik TensorFlow. Untuk XGBoost, Pelatihan AI Platform melakukan transformasi ini.
Terlalu banyak nilai yang tidak ada [3, 0,45, ...,
'buah', __, __]
Baris dihapus Lebih dari 10% nilai dalam baris tidak ada.
Nilai numerik tidak ada [3, 0,45, ...,
'buah', 0, __]
[3, 0,45, ...,
1, 0, 0, 0, 0,54]
  • Nilai rata-rata untuk kolom akan menggantikan nilai numerik yang tidak ada. Dalam contoh ini, nilai rata-ratanya adalah 0,54.
  • String 'buah' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Untuk algoritma berbasis TensorFlow, hal ini terjadi di grafik TensorFlow. Untuk XGBoost, Pelatihan AI Platform melakukan transformasi ini.
Nilai kategoris tidak ada [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • Nilai kategoris yang tidak ada diubah menjadi nilai "0, 0, 0" dalam encoding one-hot. Untuk algoritma berbasis TensorFlow, hal ini terjadi di grafik TensorFlow. Untuk XGBoost, Pelatihan AI Platform melakukan transformasi ini.

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

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

Langkah selanjutnya

  • Mulai dengan salah satu algoritma bawaan.