Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
XGBoost Versi 0.72
penting
XGBoost 0,72 tidak digunakan lagi oleh Amazon AI. SageMaker Anda masih dapat menggunakan versi lama ini XGBoost (sebagai algoritma bawaan) dengan menarik URI gambarnya seperti yang ditunjukkan pada contoh kode berikut. Untuk XGBoost, URI gambar yang diakhiri dengan :1
adalah untuk versi lama.
Jika Anda ingin menggunakan versi yang lebih baru, Anda harus secara eksplisit menentukan tag URI gambar (lihat). Versi yang didukung
Rilis sebelumnya dari XGBoost algoritma Amazon SageMaker AI didasarkan pada rilis 0.72. XGBoost
Pelanggan harus mempertimbangkan untuk menggunakan rilis baruXGBoost algoritma dengan Amazon SageMaker AI. Mereka dapat menggunakannya sebagai algoritme bawaan SageMaker AI atau sebagai kerangka kerja untuk menjalankan skrip di lingkungan lokal mereka seperti yang biasanya, misalnya, lakukan dengan kerangka pembelajaran mendalam Tensorflow. Implementasi baru memiliki jejak memori yang lebih kecil, logging yang lebih baik, validasi hyperparameter yang ditingkatkan, dan serangkaian metrik yang diperluas. Implementasi sebelumnya XGBoost tetap tersedia untuk pelanggan jika mereka perlu menunda migrasi ke versi baru. Tetapi implementasi sebelumnya ini akan tetap terkait dengan rilis 0.72. XGBoost
Antarmuka Input/Output untuk Rilis 0.72 XGBoost
Peningkatan gradien beroperasi pada data tabular, dengan baris mewakili pengamatan, satu kolom mewakili variabel target atau label, dan kolom yang tersisa mewakili fitur.
Implementasi SageMaker AI XGBoost mendukung format CSV dan libsvm untuk pelatihan dan inferensi:
-
Untuk Pelatihan ContentType, input yang valid adalah text/libsvm (default) atau text/csv.
-
Untuk Inferensi ContentType, input yang valid adalah teks/libsvm atau (default) teks/csv.
catatan
Untuk pelatihan CSV, algoritme mengasumsikan bahwa variabel target ada di kolom pertama dan CSV tidak memiliki catatan header. Untuk inferensi CSV, algoritme mengasumsikan bahwa input CSV tidak memiliki kolom label.
Untuk pelatihan libsvm, algoritme mengasumsikan bahwa label ada di kolom pertama. Kolom berikutnya berisi pasangan nilai indeks berbasis nol untuk fitur. Jadi setiap baris memiliki format: <label><index0>: <value0><index1>:<value1>... Permintaan inferensi untuk libsvm mungkin atau mungkin tidak memiliki label dalam format libsvm.
Ini berbeda dari algoritma SageMaker AI lainnya, yang menggunakan format input pelatihan protobuf untuk menjaga konsistensi yang lebih besar dengan format data standar XGBoost .
Untuk mode input pelatihan CSV, total memori yang tersedia untuk algoritme (Hitungan Instance * memori yang tersedia diInstanceType
) harus dapat menampung kumpulan data pelatihan. Untuk mode input pelatihan libsvm, itu tidak diperlukan, tetapi kami merekomendasikannya.
SageMaker AI XGBoost menggunakan modul acar Python untuk serialize/deserialize the model, which can be used for saving/loading model.
Untuk menggunakan model yang dilatih dengan SageMaker AI XGBoost di open source XGBoost
-
Gunakan kode Python berikut:
import pickle as pkl import tarfile import xgboost t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = pkl.load(open(
model_file_path
, 'rb')) # prediction with test data pred = model.predict(dtest
)
Untuk membedakan pentingnya titik data berlabel, gunakan Instance Weight Supports
-
SageMaker AI XGBoost memungkinkan pelanggan untuk membedakan pentingnya titik data berlabel dengan menetapkan setiap instance nilai bobot. Untuk input teks/libsvm, pelanggan dapat menetapkan nilai bobot ke instance data dengan melampirkannya setelah label. Misalnya,
label:weight idx_0:val_0 idx_1:val_1...
. Untuk input teks/csv, pelanggan harus menyalakancsv_weights
bendera di parameter dan melampirkan nilai bobot di kolom setelah label. Misalnya:label,weight,val_0,val_1,...
).
EC2 Rekomendasi Instance untuk XGBoost Rilis 0.72
SageMaker AI XGBoost saat ini hanya menggunakan CPUs kereta. Ini adalah algoritma yang terikat memori (sebagai lawan dari compute-bound). Jadi, instance komputasi tujuan umum (misalnya, M4) adalah pilihan yang lebih baik daripada instance yang dioptimalkan komputasi (misalnya, C4). Selanjutnya, kami menyarankan Anda memiliki memori total yang cukup dalam instance yang dipilih untuk menyimpan data pelatihan. Meskipun mendukung penggunaan ruang disk untuk menangani data yang tidak sesuai dengan memori utama ( out-of-corefitur yang tersedia dengan modus input libsvm), menulis file cache ke disk memperlambat waktu pemrosesan algoritma.
XGBoost Rilis 0,72 Contoh Notebook
Untuk contoh notebook yang menunjukkan cara menggunakan versi terbaru SageMaker AI XGBoost sebagai algoritma bawaan untuk melatih dan menghosting model regresi, lihat Regresi dengan algoritma Amazon SageMaker
XGBoost Rilis 0,72 Hyperparameters
Tabel berikut berisi hyperparameters untuk XGBoost algoritma. Ini adalah parameter yang ditetapkan oleh pengguna untuk memfasilitasi estimasi parameter model dari data. Hyperparameter yang diperlukan yang harus ditetapkan terdaftar terlebih dahulu, dalam urutan abjad. Hyperparameter opsional yang dapat diatur tercantum berikutnya, juga dalam urutan abjad. XGBoost Algoritma SageMaker AI adalah implementasi dari XGBoost paket open-source. Saat ini SageMaker AI mendukung versi 0.72. Untuk detail selengkapnya tentang konfigurasi hyperparameter untuk versi ini XGBoost, lihat XGBoostParameter
Nama Parameter | Deskripsi |
---|---|
num_class |
Jumlah kelas. Diperlukan jika Nilai yang valid: integer |
num_round |
Jumlah putaran untuk menjalankan pelatihan. Diperlukan Nilai yang valid: integer |
alpha |
Istilah regularisasi L1 pada bobot. Meningkatkan nilai ini membuat model lebih konservatif. Opsional Nilai yang valid: float Nilai default: 0 |
base_score |
Skor prediksi awal dari semua contoh, bias global. Opsional Nilai yang valid: float Nilai default: 0,5 |
booster |
Booster mana yang akan digunakan. Opsional Nilai yang valid: String. Salah satu Nilai default: |
colsample_bylevel |
Rasio subsampel kolom untuk setiap split, di setiap level. Opsional Nilai yang valid: Float. Rentang: [0,1]. Nilai default: 1 |
colsample_bytree |
Rasio subsampel kolom saat membangun setiap pohon. Opsional Nilai yang valid: Float. Rentang: [0,1]. Nilai default: 1 |
csv_weights |
Saat flag ini diaktifkan, XGBoost bedakan pentingnya instance untuk input csv dengan mengambil kolom kedua (kolom setelah label) dalam data pelatihan sebagai bobot instance. Opsional Nilai yang valid: 0 atau 1 Nilai default: 0 |
early_stopping_rounds |
Model berlatih sampai skor validasi berhenti membaik. Kesalahan validasi perlu dikurangi setidaknya setiap Opsional Nilai yang valid: integer Nilai default: - |
eta |
Penyusutan ukuran langkah yang digunakan dalam pembaruan untuk mencegah overfitting. Setelah setiap langkah peningkatan, Anda bisa langsung mendapatkan bobot fitur baru. Opsional Nilai yang valid: Float. Rentang: [0,1]. Nilai default: 0,3 |
eval_metric |
Metrik evaluasi untuk data validasi. Metrik default ditetapkan sesuai dengan tujuan:
Untuk daftar input yang valid, lihat XGBoost Parameter Opsional Nilai yang valid: string Nilai default: Default sesuai dengan tujuan. |
gamma |
Pengurangan kerugian minimum diperlukan untuk membuat partisi lebih lanjut pada simpul daun pohon. Semakin besar, semakin konservatif algoritmanya. Opsional Nilai yang valid: Float. Rentang: [0, ∞). Nilai default: 0 |
grow_policy |
Mengontrol cara node baru ditambahkan ke pohon. Saat ini didukung hanya jika Opsional Nilai yang valid: String. Baik Nilai default: |
lambda |
Istilah regularisasi L2 pada bobot. Meningkatkan nilai ini membuat model lebih konservatif. Opsional Nilai yang valid: float Nilai default: 1 |
lambda_bias |
Istilah regularisasi L2 pada bias. Opsional Nilai yang valid: Float. Rentang: [0.0, 1.0]. Nilai default: 0 |
max_bin |
Jumlah maksimum tempat sampah diskrit ke fitur kontinu ember. Digunakan hanya jika Opsional Nilai yang valid: integer Nilai default: 256 |
max_delta_step |
Langkah delta maksimum diperbolehkan untuk estimasi berat setiap pohon. Ketika bilangan bulat positif digunakan, ini membantu membuat pembaruan lebih konservatif. Pilihan yang lebih disukai adalah menggunakannya dalam regresi logistik. Setel ke 1-10 untuk membantu mengontrol pembaruan. Opsional Nilai yang valid: Integer. Rentang: [0, ∞). Nilai default: 0 |
max_depth |
Kedalaman maksimum pohon. Meningkatkan nilai ini membuat model lebih kompleks dan cenderung overfit. 0 menunjukkan tidak ada batas. Batas diperlukan ketika Opsional Nilai yang valid: Integer. Rentang: [0, ∞) Nilai default: 6 |
max_leaves |
Jumlah maksimum node yang akan ditambahkan. Relevan hanya jika Opsional Nilai yang valid: integer Nilai default: 0 |
min_child_weight |
Jumlah minimum berat badan contoh (hessian) yang dibutuhkan pada anak. Jika langkah partisi pohon menghasilkan simpul daun dengan jumlah bobot instance kurang dari Opsional Nilai yang valid: Float. Rentang: [0, ∞). Nilai default: 1 |
normalize_type |
Jenis algoritma normalisasi. Opsional Nilai yang valid: Baik pohon atau hutan. Nilai default: pohon |
nthread |
Jumlah thread paralel yang digunakan untuk menjalankan xgboost. Opsional Nilai yang valid: integer Nilai default: Jumlah utas maksimum. |
objective |
Menentukan tugas pembelajaran dan tujuan pembelajaran yang sesuai. Contoh: Opsional Nilai yang valid: string Nilai default: |
one_drop |
Saat flag ini diaktifkan, setidaknya satu pohon selalu dijatuhkan selama putus sekolah. Opsional Nilai yang valid: 0 atau 1 Nilai default: 0 |
process_type |
Jenis proses boosting untuk dijalankan. Opsional Nilai yang valid: String. Baik Nilai default: |
rate_drop |
Tingkat putus sekolah yang menentukan fraksi pohon sebelumnya yang akan jatuh selama putus sekolah. Opsional Nilai yang valid: Float. Rentang: [0.0, 1.0]. Nilai default: 0.0 |
refresh_leaf |
Ini adalah parameter dari plug-in updater 'refresh'. Ketika diatur ke Opsional Nilai yang valid: 0/1 Nilai default: 1 |
sample_type |
Jenis algoritma sampling. Opsional Nilai yang valid: Entah Nilai default: |
scale_pos_weight |
Mengontrol keseimbangan bobot positif dan negatif. Ini berguna untuk kelas yang tidak seimbang. Nilai khas untuk dipertimbangkan: Opsional Nilai yang valid: float Nilai default: 1 |
seed |
Benih nomor acak. Opsional Nilai yang valid: integer Nilai default: 0 |
silent |
0 berarti mencetak pesan yang sedang berjalan, 1 berarti mode diam. Nilai yang valid: 0 atau 1 Opsional Nilai default: 0 |
sketch_eps |
Digunakan hanya untuk perkiraan algoritma serakah. Ini diterjemahkan menjadi O (1/ Opsional Nilai yang valid: Float, Range: [0, 1]. Nilai default: 0,03 |
skip_drop |
Probabilitas melewatkan prosedur putus sekolah selama iterasi peningkatan. Opsional Nilai yang valid: Float. Rentang: [0.0, 1.0]. Nilai default: 0.0 |
subsample |
Rasio subsampel dari contoh pelatihan. Mengaturnya ke 0,5 berarti XGBoost secara acak mengumpulkan setengah dari instance data untuk menumbuhkan pohon. Ini mencegah overfitting. Opsional Nilai yang valid: Float. Rentang: [0,1]. Nilai default: 1 |
tree_method |
Algoritma konstruksi pohon yang digunakan dalam XGBoost. Opsional Nilai yang valid: Salah satu Nilai default: |
tweedie_variance_power |
Parameter yang mengontrol varians distribusi Tweedie. Opsional Nilai yang valid: Float. Rentang: (1, 2). Nilai default: 1.5 |
updater |
String dipisahkan koma yang mendefinisikan urutan pembaru pohon untuk dijalankan. Ini menyediakan cara modular untuk membangun dan memodifikasi pohon. Untuk daftar lengkap input yang valid, silakan lihat XGBoost Parameter Opsional Nilai yang valid: string dipisahkan koma. Nilai default: |
Menyetel Model XGBoost Rilis 0.72
Penyetelan model otomatis, juga dikenal sebagai tuning hyperparameter, menemukan versi terbaik dari model dengan menjalankan banyak pekerjaan yang menguji berbagai hiperparameter pada kumpulan data pelatihan dan validasi Anda. Anda memilih tiga jenis hyperparameters:
-
objective
fungsi pembelajaran untuk mengoptimalkan selama pelatihan model -
an
eval_metric
untuk digunakan untuk mengevaluasi kinerja model selama validasi -
satu set hyperparameters dan rentang nilai untuk masing-masing untuk digunakan saat menyetel model secara otomatis
Anda memilih metrik evaluasi dari kumpulan metrik evaluasi yang dihitung oleh algoritme. Penyetelan model otomatis mencari hiperparameter yang dipilih untuk menemukan kombinasi nilai yang menghasilkan model yang mengoptimalkan metrik evaluasi.
Untuk informasi lebih lanjut tentang penyetelan model, lihatPenyetelan model otomatis dengan AI SageMaker .
Metrik Dihitung oleh Algoritma XGBoost Rilis 0.72
XGBoost Algoritma berdasarkan versi 0.72 menghitung sembilan metrik berikut untuk digunakan untuk validasi model. Saat menyetel model, pilih salah satu metrik ini untuk mengevaluasi model. Untuk daftar lengkap eval_metric
nilai yang valid, lihat Parameter Tugas XGBoost Pembelajaran
Nama Metrik | Deskripsi | Arah Optimasi |
---|---|---|
validation:auc |
Area di bawah kurva. |
Maksimalkan |
validation:error |
Tingkat kesalahan klasifikasi biner, dihitung sebagai # (kasus salah) /# (semua kasus). |
Minimalkan |
validation:logloss |
Kemungkinan log negatif. |
Minimalkan |
validation:mae |
Berarti kesalahan absolut. |
Minimalkan |
validation:map |
Rata-rata presisi rata-rata. |
Maksimalkan |
validation:merror |
Tingkat kesalahan klasifikasi multiclass, dihitung sebagai # (kasus salah) /# (semua kasus). |
Minimalkan |
validation:mlogloss |
Kemungkinan log negatif untuk klasifikasi multiclass. |
Minimalkan |
validation:ndcg |
Keuntungan kumulatif diskon yang dinormalisasi. |
Maksimalkan |
validation:rmse |
Root berarti kesalahan kuadrat. |
Minimalkan |
XGBoost Rilis yang Dapat Disetel 0,72 Hyperparameters
Setel XGBoost model dengan hyperparameters berikut. Hiperparameter yang memiliki efek terbesar dalam mengoptimalkan metrik XGBoost evaluasi adalah:alpha
,,, min_child_weight
subsample
, eta
dan. num_round
Nama Parameter | Jenis Parameter | Rentang yang Direkomendasikan |
---|---|---|
alpha |
ContinuousParameterRanges |
MinValue: 0, MaxValue: 1000 |
colsample_bylevel |
ContinuousParameterRanges |
MinValue: 0,1, MaxValue: 1 |
colsample_bytree |
ContinuousParameterRanges |
MinValue: 0,5, MaxValue: 1 |
eta |
ContinuousParameterRanges |
MinValue: 0,1, MaxValue: 0,5 |
gamma |
ContinuousParameterRanges |
MinValue: 0, MaxValue: 5 |
lambda |
ContinuousParameterRanges |
MinValue: 0, MaxValue: 1000 |
max_delta_step |
IntegerParameterRanges |
[0, 10] |
max_depth |
IntegerParameterRanges |
[0, 10] |
min_child_weight |
ContinuousParameterRanges |
MinValue: 0, MaxValue: 120 |
num_round |
IntegerParameterRanges |
[1, 4000] |
subsample |
ContinuousParameterRanges |
MinValue: 0,5, MaxValue: 1 |