Menghitung keuntungan untuk setiap fitur dan mengembalikan informasi pemisahan terbaik untuk fitur tersebut.
Informasi yang dipisahkan adalah ambang batas terbaik (id keranjang), perolehan, dan kontribusi node kiri/kanan per node untuk setiap fitur.
Ada kemungkinan tidak semua node dapat dipecah pada setiap fitur. Oleh karena itu, daftar kemungkinan node dapat berbeda antar fitur. Oleh karena itu, kami mengembalikan `node_ids_list` untuk setiap fitur, yang berisi daftar node yang dapat digunakan untuk dipisahkan oleh fitur ini.
Dengan cara ini, outputnya adalah pemisahan terbaik per fitur dan per node, sehingga nantinya perlu digabungkan untuk menghasilkan pemisahan terbaik untuk setiap node (di antara semua fitur yang mungkin).
Panjang daftar keluaran semuanya sama panjangnya, `num_features`. Bentuk keluaran kompatibel sedemikian rupa sehingga dimensi pertama semua tensor semua daftar adalah sama dan sama dengan jumlah kemungkinan node terpisah untuk setiap fitur.
Metode Publik
BoostedTreesCalculateBestGainsPerFeature statis | buat ( Cakupan cakupan , Operan <Integer> nodeIdRange, Iterable< Operand <Float>> statsSummaryList, Operan <Float> l1, Operan <Float> l2, Operan <Float> treeComplexity, Operan <Float> minNodeWeight, Long maxSplits) Metode pabrik untuk membuat kelas yang membungkus operasi BoostedTreesCalculateBestGainsPerFeature baru. |
Daftar< Keluaran <Mengambang>> | Daftar keuntungan () Daftar keluaran tensor Peringkat 1 yang menunjukkan perolehan terbaik untuk setiap fitur yang akan dibagi untuk node tertentu. |
Daftar< Keluaran <Mengambang>> | Daftar LeftNodeContribs () Daftar tensor Peringkat 2 yang menunjukkan kontribusi node kiri ketika bercabang dari node induk (diberikan oleh elemen tensor di output node_ids_list) ke arah kiri dengan ambang batas yang diberikan untuk setiap fitur. |
Daftar< Keluaran <Bilangan Bulat>> | simpulIdsList () Daftar keluaran tensor Peringkat 1 yang menunjukkan kemungkinan id node terpisah untuk setiap fitur. |
Daftar< Keluaran <Mengambang>> | DaftarNodeContribs kanan () Daftar tensor Peringkat 2, dengan bentuk/kondisi yang sama dengan left_node_contribs_list, tetapi nilainya hanya untuk node kanan. |
Daftar< Keluaran <Bilangan Bulat>> | daftar ambang batas () Daftar keluaran tensor Peringkat 1 yang menunjukkan id keranjang yang akan dibandingkan (sebagai ambang batas) untuk pemisahan di setiap node. |
Metode Warisan
Metode Publik
public static BoostedTreesCalculateBestGainsPerFeature buat ( Lingkup lingkup, Operan <Integer> nodeIdRange, Iterable< Operand <Float>> statsSummaryList, Operand <Float> l1, Operand <Float> l2, Operand <Float> treeComplexity, Operand <Float> minNodeWeight, Long maxSplits)
Metode pabrik untuk membuat kelas yang membungkus operasi BoostedTreesCalculateBestGainsPerFeature baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
nodeIdRange | Tensor Peringkat 1 (bentuk=[2]) untuk menentukan rentang [pertama, terakhir) dari id node yang akan diproses dalam `stats_summary_list`. Node diiterasi antara dua node yang ditentukan oleh tensor, seperti `untuk node_id dalam rentang(node_id_range[0], node_id_range[1])` (Perhatikan bahwa indeks terakhir node_id_range[1] bersifat eksklusif). |
statsSummaryList | Daftar tensor Peringkat 3 (#shape=[max_splits, bucket, 2]) untuk akumulasi ringkasan statistik (gradien/hessian) per node per bucket untuk setiap fitur. Dimensi pertama tensor adalah jumlah pemisahan maksimum, sehingga tidak semua elemennya akan digunakan, tetapi hanya indeks yang ditentukan oleh node_ids yang akan digunakan. |
l1 | l1 faktor regularisasi pada bobot daun, berdasarkan per contoh. |
l2 | l2 faktor regularisasi pada bobot daun, berdasarkan per contoh. |
kompleksitas pohon | penyesuaian terhadap keuntungan, berdasarkan per daun. |
minNodeBerat | rata-rata minimum goni dalam sebuah node sebelum diperlukan agar node tersebut dipertimbangkan untuk dipecah. |
maxSplit | jumlah node yang dapat dipecah di seluruh pohon. Digunakan sebagai dimensi tensor keluaran. |
Kembali
- contoh baru dari BoostedTreesCalculateBestGainsPerFeature
Daftar publik< Keluaran <Float>> Daftar keuntungan ()
Daftar keluaran tensor Peringkat 1 yang menunjukkan perolehan terbaik untuk setiap fitur yang akan dibagi untuk node tertentu. Lihat di atas untuk detail seperti bentuk dan ukuran.
Daftar publik< Output <Float>> leftNodeContribsList ()
Daftar tensor Peringkat 2 yang menunjukkan kontribusi node kiri ketika bercabang dari node induk (diberikan oleh elemen tensor di output node_ids_list) ke arah kiri dengan ambang batas yang diberikan untuk setiap fitur. Nilai ini akan digunakan untuk membuat nilai simpul kiri dengan menambahkan nilai simpul induk. Ukuran dimensi kedua adalah 1 untuk logit 1 dimensi, tetapi akan lebih besar untuk masalah kelas jamak. Lihat di atas untuk detail seperti bentuk dan ukuran.
Daftar publik< Output <Integer>> nodeIdsList ()
Daftar keluaran tensor Peringkat 1 yang menunjukkan kemungkinan id node terpisah untuk setiap fitur. Panjang daftarnya adalah num_features, tetapi setiap tensor memiliki ukuran berbeda karena setiap fitur menyediakan kemungkinan node yang berbeda. Lihat di atas untuk detail seperti bentuk dan ukuran.
Daftar publik< Output <Float>> rightNodeContribsList ()
Daftar tensor Peringkat 2, dengan bentuk/kondisi yang sama dengan left_node_contribs_list, tetapi nilainya hanya untuk node kanan.
Daftar publik< Output <Integer>> ambang batasDaftar ()
Daftar keluaran tensor Peringkat 1 yang menunjukkan id keranjang yang akan dibandingkan (sebagai ambang batas) untuk pemisahan di setiap node. Lihat di atas untuk detail seperti bentuk dan ukuran.