| 279 | |
| 280 | |
| 281 | TVector<double> GetFeatureEffectForLinearIndices( |
| 282 | const TVector<std::pair<double, TFeature>>& featureEffect, |
| 283 | const TFullModel& model) |
| 284 | { |
| 285 | TVector<TFeatureEffect> regularEffect = CalcRegularFeatureEffect(featureEffect, model); |
| 286 | |
| 287 | const NCB::TFeaturesLayout layout = MakeFeaturesLayout(model); |
| 288 | |
| 289 | TVector<double> effect(layout.GetExternalFeatureCount()); |
| 290 | for (const auto& featureEffect : regularEffect) { |
| 291 | int externalFeatureIdx = layout.GetExternalFeatureIdx( |
| 292 | featureEffect.Feature.Index, |
| 293 | featureEffect.Feature.Type |
| 294 | ); |
| 295 | effect[externalFeatureIdx] = featureEffect.Score; |
| 296 | } |
| 297 | |
| 298 | return effect; |
| 299 | } |
| 300 | |
| 301 | TVector<double> CalcRegularFeatureEffect( |
| 302 | const TFullModel& model, |
no test coverage detected