import { BaseEstimator, Params } from '../base/estimator'; import { SingleOutputEstimator } from './common'; export interface MultiOutputRegressorProps { /** Prototype regressor; one unfitted clone is fitted per output column. */ estimator: BaseEstimator; } /** * Multi-target regression wrapper, mirroring sklearn's * `MultiOutputRegressor`: one clone of `estimator` is fitted per output * column of the 2-D target matrix `Y` [nSamples][nOutputs]. * * `fit(X, Y)` takes a 2-D target, so this extends `BaseEstimator` directly * rather than `RegressorBase` (whose contract is 1-D y). * * `score(X, Y)` is the **uniform-average R²** over the outputs: R² is * computed per output column and the unweighted mean is returned — sklearn's * `MultiOutputRegressor.score` (`r2_score` with * `multioutput='uniform_average'`). * * Nested params are addressable as `estimator__` in `setParams`. */ export declare class MultiOutputRegressor extends BaseEstimator { private estimator; private estimators_; constructor(props: MultiOutputRegressorProps); getParams(): Params; /** Supports own params plus nested `estimator__param` addressing. */ setParams(params: Params): this; /** The fitted per-output members, ordered like Y's columns. */ get estimators(): SingleOutputEstimator[]; fit(X: number[][], Y: number[][], sampleWeight?: number[]): void; private ensureFitted; /** Predicted target matrix, shape [nSamples][nOutputs]. */ predict(X: number[][]): number[][]; /** * Uniform-average R² over the outputs (mean of per-column R²), matching * sklearn's `MultiOutputRegressor.score`. */ score(X: number[][], Y: number[][]): number; }