| 25 | }; |
| 26 | |
| 27 | static TDataProviderPtr SmallFloatPool(EWeightsMode addWeights, ETargetDimMode multiclass) { |
| 28 | return CreateDataProvider( |
| 29 | [&] (IRawFeaturesOrderDataVisitor* visitor) { |
| 30 | TDataMetaInfo metaInfo; |
| 31 | metaInfo.TargetType = multiclass ? ERawTargetType::String : ERawTargetType::Float; |
| 32 | metaInfo.TargetCount = 1; |
| 33 | metaInfo.HasWeights = addWeights; |
| 34 | metaInfo.FeaturesLayout = MakeIntrusive<TFeaturesLayout>( |
| 35 | (ui32)3, |
| 36 | TVector<ui32>{}, |
| 37 | TVector<ui32>{}, |
| 38 | TVector<ui32>{}, |
| 39 | TVector<TString>{}); |
| 40 | |
| 41 | visitor->Start(metaInfo, 3, EObjectsOrder::Undefined, {}); |
| 42 | |
| 43 | visitor->AddFloatFeature( |
| 44 | 0, |
| 45 | MakeIntrusive<TTypeCastArrayHolder<float, float>>(TVector<float>{+0.5f, +1.5f, -2.5f}) |
| 46 | ); |
| 47 | visitor->AddFloatFeature( |
| 48 | 1, |
| 49 | MakeIntrusive<TTypeCastArrayHolder<float, float>>(TVector<float>{+0.7f, +6.4f, +2.4f}) |
| 50 | ); |
| 51 | visitor->AddFloatFeature( |
| 52 | 2, |
| 53 | MakeIntrusive<TTypeCastArrayHolder<float, float>>(TVector<float>{-2.0f, -1.0f, +6.0f}) |
| 54 | ); |
| 55 | |
| 56 | if (multiclass) { |
| 57 | visitor->AddTarget(TVector<TString>{"1", "0", "2"}); |
| 58 | } else { |
| 59 | visitor->AddTarget( |
| 60 | MakeIntrusive<TTypeCastArrayHolder<float, float>>(TVector<float>{1.0f, 0.0f, 0.2f}) |
| 61 | ); |
| 62 | } |
| 63 | if (addWeights) { |
| 64 | visitor->AddWeights({1.0f, 2.0f, 0.5f}); |
| 65 | } |
| 66 | visitor->Finish(); |
| 67 | } |
| 68 | ); |
| 69 | } |
| 70 | |
| 71 | static TFullModel TrainModelOnPool(TDataProviderPtr pool, ETargetDimMode multiclass) { |
| 72 | TFullModel model; |
no test coverage detected