import { BaseEstimator, Params } from '../base/estimator'; import { SingleOutputEstimator } from './common'; export interface MultiOutputClassifierProps { /** Prototype classifier; one unfitted clone is fitted per output column. */ estimator: BaseEstimator; } /** * Multi-target classification wrapper, mirroring sklearn's * `MultiOutputClassifier`: 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 `ClassifierBase` (whose contract is 1-D y). * * `score(X, Y)` is **subset accuracy** (exact-match): the fraction of samples * whose *entire* output row is predicted correctly — sklearn's * `MultiOutputClassifier.score`, which applies `accuracy_score` to 2-D * targets. This is deliberately harsher than the mean of per-output * accuracies. * * Nested params are addressable as `estimator__` in `setParams`. */ export declare class MultiOutputClassifier extends BaseEstimator { private estimator; private estimators_; constructor(props: MultiOutputClassifierProps); 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[][]; /** * Per-output class-membership probabilities, shape * [nOutputs][nSamples][nClasses(output)] — one probability matrix per * output, like sklearn's list of arrays. Requires the members to * implement `predictProba`. */ predictProba(X: number[][]): number[][][]; /** * Subset (exact-match) accuracy: the fraction of rows where every output * is predicted correctly. Matches sklearn's `MultiOutputClassifier.score`. */ score(X: number[][], Y: number[][]): number; }