| 107 | } |
| 108 | |
| 109 | TVector<TFeatureExplanation> ExplainFeatures(const TPolynom& polynom, const IGrid& grid) { |
| 110 | const auto dimension = polynom.Dimension(); |
| 111 | const double totalWeight = GetTotalWeight(polynom); |
| 112 | const auto weightForBorder = GetBorderWeights(polynom, grid); |
| 113 | const auto valueChangeForBorder = CalcValueChangeForBorders(polynom, grid, weightForBorder); |
| 114 | const auto averagePolynomValue = CalcAveragePolynomValue(polynom); |
| 115 | |
| 116 | TVector<TFeatureExplanation> featuresExplanations(grid.FeatureCount()); |
| 117 | for (auto featureIdx : xrange(grid.FeatureCount())) { |
| 118 | featuresExplanations[featureIdx] = ExplainFeature(featureIdx, grid, weightForBorder[featureIdx], |
| 119 | valueChangeForBorder[featureIdx], averagePolynomValue, totalWeight, dimension); |
| 120 | } |
| 121 | |
| 122 | return featuresExplanations; |
| 123 | } |
| 124 | } |
nothing calls this directly
no test coverage detected