Я новичок в мире ML и sklearn. Я пытался использовать GaussianNB для набора данных с X_train[2500,800]
, Y_train[2500,8]
.
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X, Y)
При запуске программы показывает
ValueError: неправильная форма ввода (2500, 8).
Как преобразовать Y_train[2500,8]
в Y_train[2500,1]
?
2500
образцы с800
функциями? - person Uri Goren   schedule 19.08.2017Y_train
должен быть списком целевых значений, то есть списком, в котором i-й элемент является меткой класса i-го варианта обучения в вашем наборе данных. Следовательно, он должен быть одномерным. Следовательно, если вашY_train
имеет форму (2500, 8), возможно, вы что-то перепутали. - person MaxPowers   schedule 19.08.2017X_train[2500,8]
вместо этого? Кроме того, знаете ли вы, какая из 8 меток является вашей целевой переменной? - person Mohamed Ali JAMAOUI   schedule 19.08.2017ont_hot
, просто сделайтеY_train = np.argmax(Y_train, axis=1)
- person Ishant Mrinal   schedule 19.08.2017y
по своей сути. Либо вам нужно использовать OneVsRestClassifier, чтобы уменьшить -label для нескольких бинарных задач или используйте другой алгоритм, который поддерживает случаи с несколькими метками. Подробнее см. здесь. Было бы лучше, если бы вы предоставили более подробную информацию (желательно в новом вопросе). - person Vivek Kumar   schedule 13.11.2018LogisticRegression
в sklearn напрямую не поддерживает мульти-метку, так как ее нет под заголовкомSupport multilabel
на странице, на которую я ссылаюсь. Поэтому вам придется использовать OneVsRestClassifier только для этого. - person Vivek Kumar   schedule 13.11.2018make_multilabel_classification
создает новый фиктивный набор данных для примеров. Если у вас уже есть данные, вы не будете использовать файлmake_multilabel_classification
. - person Vivek Kumar   schedule 13.11.2018