BoostedTreesCalculateBestGainsPerFeature

lớp cuối cùng công khai BoostedTreesCalculateBestGainsPerFeature

Tính toán mức tăng cho từng tính năng và trả về thông tin phân chia tốt nhất có thể cho tính năng đó.

Thông tin phân chia là ngưỡng tốt nhất (id nhóm), mức tăng và đóng góp của nút trái/phải trên mỗi nút cho từng tính năng.

Có thể không phải tất cả các nút đều có thể được phân chia trên mỗi tính năng. Do đó, danh sách các nút có thể có có thể khác nhau giữa các tính năng. Do đó, chúng tôi trả về `node_ids_list` cho mỗi tính năng, chứa danh sách các nút mà tính năng này có thể được sử dụng để phân tách.

Theo cách này, đầu ra là sự phân chia tốt nhất cho mỗi tính năng và trên mỗi nút, do đó nó cần được kết hợp sau này để tạo ra sự phân chia tốt nhất cho mỗi nút (trong số tất cả các tính năng có thể có).

Độ dài của danh sách đầu ra đều có cùng độ dài, `num_features`. Các hình dạng đầu ra tương thích theo cách mà chiều thứ nhất của tất cả các tensor của tất cả các danh sách đều giống nhau và bằng số lượng nút phân chia có thể có cho mỗi tính năng.

Phương pháp công khai

tĩnh BoostedTreesCalculateBestGainsPerFeature
tạo ( Phạm vi phạm vi, Toán hạng <Integer> nodeIdRange, Iterable< Toán hạng <Float>> statsSummaryList, Toán hạng <Float> l1, Toán hạng <Float> l2, Toán hạng <Float> treeComplexity, Toán hạng <Float> minNodeWeight, MaxSplits dài)
Phương thức gốc để tạo một lớp bao gồm một hoạt động BoostedTreesCalculateBestGainsPerFeature mới.
Danh sách< Đầu ra <Float>>
danh sách lợi nhuận ()
Danh sách đầu ra gồm các tensor Hạng 1 cho biết mức tăng tốt nhất cho từng tính năng để phân chia cho các nút nhất định.
Danh sách< Đầu ra <Float>>
leftNodeContribsList ()
Danh sách các tensor Hạng 2 biểu thị sự đóng góp của các nút bên trái khi phân nhánh từ các nút cha (được cung cấp bởi phần tử tensor trong node_ids_list đầu ra) sang hướng trái theo ngưỡng nhất định cho từng tính năng.
Danh sách< Đầu ra <Số nguyên>>
nodeIdsList ()
Danh sách đầu ra gồm các tensor Hạng 1 cho biết các id nút phân chia có thể có cho từng tính năng.
Danh sách< Đầu ra <Float>>
rightNodeContribsList ()
Danh sách các tensor Hạng 2, có hình dạng/điều kiện giống như left_node_contribs_list, nhưng chỉ có giá trị đó dành cho nút bên phải.
Danh sách< Đầu ra <Số nguyên>>
ngưỡngDanh sách ()
Danh sách đầu ra gồm các tensor Hạng 1 cho biết id nhóm cần so sánh với (dưới dạng ngưỡng) để phân chia trong mỗi nút.

Phương pháp kế thừa

Phương pháp công khai

public static BoostedTreesCalculateBestGainsPerFeature tạo ( Phạm vi phạm vi , Toán hạng <Integer> nodeIdRange, Iterable< Toán hạng <Float>> statsSummaryList, Toán hạng <Float> l1, Toán hạng <Float> l2, Toán hạng <Float> treeComplexity, Toán hạng <Float> minNodeWeight, MaxSplits dài)

Phương thức gốc để tạo một lớp bao gồm một hoạt động BoostedTreesCalculateBestGainsPerFeature mới.

Thông số
phạm vi phạm vi hiện tại
nútIdRange Một tensor Hạng 1 (shape=[2]) để chỉ định phạm vi [đầu tiên, cuối cùng) của id nút cần xử lý trong `stats_summary_list`. Các nút được lặp lại giữa hai nút được chỉ định bởi tensor, giống như `for node_id in range(node_id_range[0], node_id_range[1])` (Lưu ý rằng chỉ mục cuối cùng node_id_range[1] là độc quyền).
số liệu thống kêTóm tắtDanh sách Danh sách tenxơ Hạng 3 (#shape=[max_splits, xô, 2]) để tóm tắt số liệu thống kê tích lũy (gradient/hessian) trên mỗi nút trên mỗi nhóm cho mỗi tính năng. Kích thước đầu tiên của tensor là số lượng phân chia tối đa và do đó không phải tất cả các phần tử của nó sẽ được sử dụng mà chỉ các chỉ mục được chỉ định bởi node_ids sẽ được sử dụng.
l1 l1 hệ số chính quy hóa trên trọng số của lá, dựa trên từng trường hợp.
l2 l2 hệ số chính quy hóa trên trọng số của lá, dựa trên từng trường hợp.
câyĐộ phức tạp điều chỉnh mức tăng, dựa trên mỗi lá.
phútNodeWeight mức trung bình tối thiểu của số hessians trong một nút trước khi được yêu cầu để nút đó được xem xét phân tách.
maxSplits số lượng nút có thể được chia trong toàn bộ cây. Được sử dụng như một kích thước của tensor đầu ra.
Trả lại
  • một phiên bản mới của BoostedTreesCalculateBestGainsPerFeature

Danh sách công khai< Đầu ra <Float>> GainList ()

Danh sách đầu ra gồm các tensor Hạng 1 cho biết mức tăng tốt nhất cho từng tính năng để phân chia cho các nút nhất định. Xem ở trên để biết chi tiết như hình dạng và kích thước.

Danh sách công khai< Đầu ra <Float>> leftNodeContribsList ()

Danh sách các tensor Hạng 2 biểu thị sự đóng góp của các nút bên trái khi phân nhánh từ các nút cha (được cung cấp bởi phần tử tensor trong node_ids_list đầu ra) sang hướng trái theo ngưỡng nhất định cho từng tính năng. Giá trị này sẽ được sử dụng để tạo giá trị nút bên trái bằng cách cộng vào giá trị nút cha. Kích thước chiều thứ hai là 1 đối với logit 1 chiều, nhưng sẽ lớn hơn đối với các bài toán nhiều lớp. Xem ở trên để biết chi tiết như hình dạng và kích thước.

Danh sách công khai< Đầu ra <Số nguyên>> nodeIdsList ()

Danh sách đầu ra gồm các tensor Hạng 1 cho biết các id nút phân chia có thể có cho từng tính năng. Độ dài của danh sách là num_features, nhưng mỗi tensor có kích thước khác nhau vì mỗi tính năng cung cấp các nút có thể khác nhau. Xem ở trên để biết chi tiết như hình dạng và kích thước.

Danh sách công khai< Đầu ra <Float>> rightNodeContribsList ()

Danh sách các tensor Hạng 2, có hình dạng/điều kiện giống như left_node_contribs_list, nhưng chỉ có giá trị đó dành cho nút bên phải.

Danh sách công khai< Đầu ra <Số nguyên>> ngưỡngDanh sách ()

Danh sách đầu ra gồm các tensor Hạng 1 cho biết id nhóm cần so sánh với (dưới dạng ngưỡng) để phân chia trong mỗi nút. Xem ở trên để biết chi tiết như hình dạng và kích thước.