

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Antarmuka input dan output untuk CatBoost algoritma
<a name="InputOutput-CatBoost"></a>

Peningkatan gradien beroperasi pada data tabular, dengan baris mewakili pengamatan, satu kolom mewakili variabel atau label target, dan kolom yang tersisa mewakili fitur. 

Im SageMaker plementasi AI CatBoost mendukung CSV untuk pelatihan dan inferensi:
+ Untuk ** Pelatihan ContentType**, input yang valid harus ada * text/csv*.
+ Untuk ** Inferensi ContentType**, input yang valid harus * text/csv * ada.

**catatan**  
Untuk pelatihan CSV, algoritma mengasumsikan bahwa variabel target ada di kolom pertama dan CSV tidak memiliki catatan header.   
Untuk inferensi CSV, algoritma mengasumsikan bahwa input CSV tidak memiliki kolom label. 

**Format input untuk data pelatihan, data validasi, dan fitur kategoris **

Perhatikan cara memformat data pelatihan Anda untuk masukan ke CatBoost model. Anda harus menyediakan jalur ke bucket Amazon S3 yang berisi data pelatihan dan validasi Anda. Anda juga dapat menyertakan daftar fitur kategoris. Gunakan `validation` saluran `training` dan untuk memberikan data input Anda. Atau, Anda hanya dapat menggunakan `training` saluran.

**Gunakan `validation` saluran `training` dan **

Anda dapat memberikan data input Anda melalui dua jalur S3, satu untuk `training` saluran dan satu untuk `validation` saluran. Setiap jalur S3 dapat berupa awalan S3 yang menunjuk ke satu atau lebih file CSV atau jalur S3 lengkap yang menunjuk ke satu file CSV tertentu. Variabel target harus berada di kolom pertama file CSV Anda. Variabel prediktor (fitur) harus berada di kolom yang tersisa. Jika beberapa file CSV disediakan untuk `validation` saluran `training` atau, CatBoost algoritma menggabungkan file. Data validasi digunakan untuk menghitung skor validasi di akhir setiap iterasi penguatan. Penghentian awal diterapkan ketika skor validasi berhenti membaik.

Jika prediktor Anda menyertakan fitur kategoris, Anda dapat memberikan file JSON bernama `categorical_index.json` di lokasi yang sama dengan file atau file data pelatihan Anda. Jika Anda menyediakan file JSON untuk fitur kategoris, `training` saluran Anda harus menunjuk ke awalan S3 dan bukan file CSV tertentu. File ini harus berisi kamus Python di mana kuncinya adalah string `"cat_index_list"` dan nilainya adalah daftar bilangan bulat unik. Setiap bilangan bulat dalam daftar nilai harus menunjukkan indeks kolom dari fitur kategoris yang sesuai dalam file CSV data pelatihan Anda. Setiap nilai harus berupa bilangan bulat positif (lebih besar dari nol karena nol mewakili nilai target), kurang dari `Int32.MaxValue` (2147483647), dan kurang dari jumlah total kolom. Seharusnya hanya ada satu file JSON indeks kategoris.

**Gunakan hanya `training` saluran**:

Sebagai alternatif, Anda dapat memberikan data input Anda melalui jalur S3 tunggal untuk `training` saluran. Jalur S3 ini harus menunjuk ke direktori dengan subdirektori bernama `training/` yang berisi satu atau lebih file CSV. Anda dapat secara opsional menyertakan subdirektori lain di lokasi yang sama yang disebut `validation/` yang juga memiliki satu atau lebih file CSV. Jika data validasi tidak disediakan, maka 20% dari data pelatihan Anda diambil sampelnya secara acak untuk berfungsi sebagai data validasi. Jika prediktor Anda menyertakan fitur kategoris, Anda dapat menyediakan file JSON bernama `categorical_index.json` di lokasi yang sama dengan subdirektori data Anda.

**catatan**  
Untuk mode input pelatihan CSV, total memori yang tersedia untuk algoritma (jumlah instance dikalikan dengan memori yang tersedia di`InstanceType`) harus dapat menampung kumpulan data pelatihan.

SageMaker AI CatBoost menggunakan `catboost.CatBoostRegressor` modul `catboost.CatBoostClassifier` dan untuk membuat serial atau deserialisasi model, yang dapat digunakan untuk menyimpan atau memuat model.

**Untuk menggunakan model yang dilatih dengan SageMaker AI CatBoost dengan `catboost`**
+ Gunakan kode Python berikut:

  ```
  import tarfile
  from catboost import CatBoostClassifier
  
  t = tarfile.open('model.tar.gz', 'r:gz')
  t.extractall()
  
  file_path = os.path.join(model_file_path, "model")
  model = CatBoostClassifier()
  model.load_model(file_path)
  
  # prediction with test data
  # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d
  pred = model.predict({{dtest}})
  ```