MLPClassifier don't support target with multiclass-multioutput input.

### Describe the workflow you want to enable

I once expanded my [software](https://pypi.org/project/perming/)'s algorithm input datatype and found that it did not support multiclass-multioutput in the main algorithm (similar to [MLPClassifier in sklearn](https://github.com/scikit-learn/scikit-learn/blob/2a2772a87b6c772dc3b8292bcffb990ce27515a8/sklearn/neural_network/_multilayer_perceptron.py#L759C2-L759C2)). Therefore, I integrated continuous-multioutput, multilabel-indicator, and all target inputs with dimension at 2d into the algorithm.

```python
import perming # v1.3.0
main = perming.Box(10, 3, (30,), batch_size=16, activation='relu', inplace_on=True, solver='sgd', criterion="MultiLabelSoftMarginLoss", learning_rate_init=0.01)
main.data_loader(X, y, random_seed=0) # support multioutput with inner configured criterion and type_of_target
main.train_val(num_epochs=20, interval=10)
main.test()
main.model(X) # X format as torch.Tensor with torch.device("cuda")
```
I use [is_target_2d](https://github.com/linjing-lab/easy-pytorch/blob/769b015f7afb388997c2a6ee1caae9eebe9c648a/released_box/perming/_utils.py#L169) to detect the type_of_target to support any 2d input coordinated with inner criterion and outer bi-directional transform, like *fit_transform* and *inverse_transform*. 

### Describe your proposed solution

I think `LabelBinarizer` in `preprocessing/_label` should not be so robust that use *'multioutput' in self.y_type_* to filter `continuous/multiclass-multioutput`, multilabel is restricted in the *transform* module due to the marking of `str` named *y_type_* and *y_is_multilabel* with [output](https://github.com/scikit-learn/scikit-learn/blob/14995509a996ff5575c032fb7aead25bf6bb595c/sklearn/preprocessing/_label.py#L353) -> **The object was not fitted with multilabel input**.

### Describe alternatives you've considered, if relevant

I found multiclass.py and multioutput.py in the first level of scikit-learn organizational structure, and I wonder whether these two additional files supported algorithms can handle almost all supervised learning datasets that conform to type_of_target.

### Additional context

_No response_

COMMENT:
KNeighborsClassifier is a method that measure classification in euclidean space by nearest distance, this is not a good algorithm for solving linear indivisibility problem with mapping high-dimensional features. @rakesh9541 

perceptron-based algorithm can solve linear indivisible tabular datasets in supervised learning by adding one or more active hidden-layers. I do know scikit-learn use preprocessing traits to make many estimators serve as the learner of [multiclass and multioutput algorithms](https://scikit-learn.org/stable/modules/multiclass.html#multiclass-multioutput-classification). if you need a reproducible code in this issue, I prefer to present you a small case from user-guide because I could not patch any target with 2d due to the [filter process](https://github.com/scikit-learn/scikit-learn/blob/14995509a996ff5575c032fb7aead25bf6bb595c/sklearn/preprocessing/_label.py#L298) before the start of main process about MLPClassifier. @adrinjalali 

```python
import numpy as np
from sklearn.utils import shuffle
from sklearn.datasets import make_classification
from sklearn.multioutput import MultiOutputClassifier
from sklearn.ensemble import RandomForestClassifier
X, y1 = make_classification(n_samples=10, n_features=100, n_informative=30, n_classes=3, random_state=1)
y2 = shuffle(y1, random_state=1)
y3 = shuffle(y1, random_state=2)
y = np.vstack((y1, y2, y3)).T
n_samples, n_features = X.shape # 10,100
n_outputs = n_classes = y.shape[1] # 3
forest = RandomForestClassifier(random_state=1)
multi_target_forest = MultiOutputClassifier(forest, n_jobs=2)
multi_target_forest.fit(X, y).predict(X)
```
scikit-learn has no metric in [sklearn.metrics](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics) supports the multiclass-multioutput classification task, I think it might replace metrics with average loss to measure this task.

Labels: New Feature, Needs Reproducible Code