| 2517 | } |
| 2518 | |
| 2519 | TQuantizedObjectsDataProviderPtr Quantize( |
| 2520 | const TQuantizationOptions& options, |
| 2521 | TRawObjectsDataProviderPtr rawObjectsDataProvider, |
| 2522 | TQuantizedFeaturesInfoPtr quantizedFeaturesInfo, |
| 2523 | TRestorableFastRng64* rand, |
| 2524 | NPar::ILocalExecutor* localExecutor, |
| 2525 | const TInitialBorders& initialBorders |
| 2526 | ) { |
| 2527 | TDataMetaInfo dataMetaInfo; |
| 2528 | dataMetaInfo.FeaturesLayout = rawObjectsDataProvider->GetFeaturesLayout(); |
| 2529 | |
| 2530 | auto objectsGrouping = rawObjectsDataProvider->GetObjectsGrouping(); |
| 2531 | |
| 2532 | TRawTargetData dummyData; |
| 2533 | dummyData.SetTrivialWeights(rawObjectsDataProvider->GetObjectCount()); |
| 2534 | |
| 2535 | auto rawDataProvider = MakeIntrusive<TRawDataProvider>( |
| 2536 | std::move(dataMetaInfo), |
| 2537 | std::move(rawObjectsDataProvider), |
| 2538 | objectsGrouping, |
| 2539 | TRawTargetDataProvider(objectsGrouping, std::move(dummyData), true, /*forceUnitAutoPairWeights*/ true, nullptr) |
| 2540 | ); |
| 2541 | |
| 2542 | auto quantizedDataProvider = Quantize( |
| 2543 | options, |
| 2544 | std::move(rawDataProvider), |
| 2545 | quantizedFeaturesInfo, |
| 2546 | rand, |
| 2547 | localExecutor, |
| 2548 | initialBorders |
| 2549 | ); |
| 2550 | |
| 2551 | return quantizedDataProvider->ObjectsData; |
| 2552 | } |
| 2553 | |
| 2554 | |
| 2555 | TQuantizedDataProviderPtr Quantize( |