XGBoost Versi 0.72 - Amazon SageMaker AI

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.

SageMaker Python SDK v1
import boto3 from sagemaker.amazon.amazon_estimator import get_image_uri xgb_image_uri = get_image_uri(boto3.Session().region_name, "xgboost", repo_version="1")
SageMaker Python SDK v2
import boto3 from sagemaker import image_uris xgb_image_uri = image_uris.retrieve("xgboost", boto3.Session().region_name, "1")

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(eXtreme Gradient Boosting) adalah implementasi open-source yang populer dan efisien dari algoritma gradient boosted trees. Peningkatan gradien adalah algoritma pembelajaran yang diawasi yang mencoba memprediksi variabel target secara akurat dengan menggabungkan perkiraan serangkaian model yang lebih sederhana dan lebih lemah. XGBoost telah dilakukan dengan sangat baik dalam kompetisi pembelajaran mesin karena dengan kuat menangani berbagai tipe data, hubungan, dan distribusi, dan karena banyaknya hiperparameter yang dapat diubah dan disetel untuk peningkatan kecocokan. Fleksibilitas ini XGBoost membuat pilihan yang solid untuk masalah dalam regresi, klasifikasi (biner dan multiclass), dan peringkat.

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 menyalakan csv_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 AI. XGBoost Untuk menggunakan versi 0,72 XGBoost, Anda perlu mengubah versi dalam kode sampel menjadi 0,72. Untuk petunjuk cara membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh di SageMaker AI, lihat. Instans SageMaker Notebook Amazon Setelah Anda membuat instance notebook dan membukanya, pilih tab Contoh SageMaker AI untuk melihat daftar semua sampel SageMaker AI. Contoh buku catatan pemodelan topik yang menggunakan XGBoost algoritme terletak di bagian Pengantar Algoritma Amazon. Untuk membuka buku catatan, klik tab Use dan pilih Create copy.

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 objective diatur ke multi:softmax atau multi:softprob.

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. dartNilai gbtree dan menggunakan model berbasis pohon, sementara gblinear menggunakan fungsi linier.

Opsional

Nilai yang valid: String. Salah satugbtree,gblinear, ataudart.

Nilai default: gbtree

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 early_stopping_rounds untuk melanjutkan pelatihan. SageMaker Hosting AI menggunakan model terbaik untuk inferensi.

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. etaParameter sebenarnya mengecilkan bobot fitur untuk membuat proses peningkatan lebih konservatif.

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:

  • rmse: untuk regresi

  • error: untuk klasifikasi

  • map: untuk peringkat

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 tree_method disetel kehist.

Opsional

Nilai yang valid: String. Baik depthwise atau lossguide.

Nilai default: depthwise

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 tree_method diatur kehist.

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 grow_policy =depth-wise.

Opsional

Nilai yang valid: Integer. Rentang: [0, ∞)

Nilai default: 6

max_leaves

Jumlah maksimum node yang akan ditambahkan. Relevan hanya jika grow_policy disetel kelossguide.

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 darimin_child_weight, proses pembangunan melepaskan partisi lebih lanjut. Dalam model regresi linier, ini hanya sesuai dengan jumlah minimum instance yang diperlukan di setiap node. Semakin besar algoritme, semakin konservatif itu.

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:reg:logistic,reg:softmax,multi:squarederror. Untuk daftar lengkap input yang valid, lihat XGBoost Parameter.

Opsional

Nilai yang valid: string

Nilai default: reg:squarederror

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 default atau update.

Nilai default: 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 true (1), daun pohon dan statistik simpul pohon diperbarui. Saat disetel ke false (0), hanya statistik simpul pohon yang diperbarui.

Opsional

Nilai yang valid: 0/1

Nilai default: 1

sample_type

Jenis algoritma sampling.

Opsional

Nilai yang valid: Entah uniform atauweighted.

Nilai default: uniform

scale_pos_weight

Mengontrol keseimbangan bobot positif dan negatif. Ini berguna untuk kelas yang tidak seimbang. Nilai khas untuk dipertimbangkan:sum(negative cases)/sum(positive cases).

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/sketch_eps) jumlah tempat sampah. Dibandingkan dengan jumlah tempat sampah yang dipilih secara langsung, ini dilengkapi dengan jaminan teoritis dengan akurasi sketsa.

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 satuauto,exact,approx, atauhist.

Nilai default: auto

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:grow_colmaker, pangkas

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:

  • objectivefungsi 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_weightsubsample, 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