MCPcopy Create free account
hub / github.com/catboost/catboost / TObjectsGroupingSubset

Class TObjectsGroupingSubset

catboost/libs/data/objects_grouping.h:125–195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123 using TObjectsGroupingPtr = TIntrusivePtr<TObjectsGrouping>;
124
125 class TObjectsGroupingSubset {
126 public:
127 // needed because of default init in Cython
128 TObjectsGroupingSubset() = default;
129
130 TObjectsGroupingSubset(
131 TObjectsGroupingPtr subsetGrouping,
132 TArraySubsetIndexing<ui32>&& groupsSubset,
133 EObjectsOrder groupSubsetOrder,
134 TMaybe<TArraySubsetIndexing<ui32>>&& objectsSubsetForNonTrivialGrouping
135 = TMaybe<TArraySubsetIndexing<ui32>>(),
136
137 // used only if objectsSubsetForNonTrivialGrouping is specified
138 EObjectsOrder objectSubsetOrder = EObjectsOrder::Undefined
139 )
140 : SubsetGrouping(std::move(subsetGrouping))
141 , GroupsSubset(std::move(groupsSubset))
142 , GroupSubsetOrder(groupSubsetOrder)
143 , ObjectsSubsetForNonTrivialGrouping(std::move(objectsSubsetForNonTrivialGrouping))
144 , ObjectSubsetOrder(objectSubsetOrder)
145 {
146 CB_ENSURE(SubsetGrouping, "subsetGrouping must be initialized");
147 }
148
149 bool operator==(const TObjectsGroupingSubset& rhs) const {
150 if (!(*SubsetGrouping == *rhs.SubsetGrouping) ||
151 (GroupsSubset != rhs.GroupsSubset))
152 {
153 return false;
154 }
155 if (ObjectsSubsetForNonTrivialGrouping) {
156 if (rhs.ObjectsSubsetForNonTrivialGrouping) {
157 return *ObjectsSubsetForNonTrivialGrouping == *rhs.ObjectsSubsetForNonTrivialGrouping;
158 }
159 return false;
160 }
161 return !rhs.ObjectsSubsetForNonTrivialGrouping;
162 }
163
164 TObjectsGroupingPtr GetSubsetGrouping() const {
165 return SubsetGrouping;
166 }
167
168 const TArraySubsetIndexing<ui32>& GetGroupsIndexing() const {
169 return GroupsSubset;
170 }
171
172 const TArraySubsetIndexing<ui32>& GetObjectsIndexing() const {
173 return ObjectsSubsetForNonTrivialGrouping ?
174 *ObjectsSubsetForNonTrivialGrouping : GroupsSubset;
175 }
176
177 EObjectsOrder GetGroupSubsetOrder() const {
178 return GroupSubsetOrder;
179 }
180
181 EObjectsOrder GetObjectSubsetOrder() const {
182 return ObjectsSubsetForNonTrivialGrouping ? GroupSubsetOrder : ObjectSubsetOrder;

Callers 5

GetTrainingDataFunction · 0.85
InitPermutationDataFunction · 0.85
GetSubsetMethod · 0.85
ShuffleMethod · 0.85
Y_UNIT_TESTFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected