Мои несбалансированные тренировочные данные имеют следующую структуру:
[
[
[2.2079929344226097e-05,
7.354293068578783e-06,
1.713310445263026e-05],
[2.2079929344226097e-05,
7.354293068578783e-06,
1.713310445263026e-05]
],
[
[3.2079929344226097e-05,
1.354293068578783e-06,
2.713310445263026e-05],
[2.2079929344226097e-05,
2.354293068578783e-06,
3.713310445263026e-05]
],
[
[4.2079929344226097e-05,
4.354293068578783e-06,
4.713310445263026e-05],
[4.2079929344226097e-05,
4.354293068578783e-06,
3.713310445263026e-05]
]
]
, и мои метки выглядят так:
[
[1, 1],
[1, 0],
[1, 1]
]
Если я сглажу данные, я смогу запустить SMOTE через sklearn успешно с этим кодом:
X = data
y = labels
sm = SMOTE(random_state=42)
X, y = sm.fit_resample(X, y)
# keras function to convert multiclass to float vector
y = to_categorical(y, dtype='float32')
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
Однако я получаю эту ошибку при попытке запустить код на структурированных данных / метках:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-64-60c6ccd3d7d6> in <module>()
3
4 sm = SMOTE(random_state=42)
----> 5 X, y = sm.fit_resample(X, y)
6 y = to_categorical(y, dtype='float32')
7
3 frames
/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
554 "Reshape your data either using array.reshape(-1, 1) if "
555 "your data has a single feature or array.reshape(1, -1) "
--> 556 "if it contains a single sample.".format(array))
557
558 # in the future np.flexible dtypes will be handled like object dtypes
ValueError: Expected 2D array, got 1D array instead:
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.