Я пытаюсь сделать классификацию onevsrest, как показано ниже:
classifier = Pipeline([('vectorizer', CountVectorizer()),('tfidf', TfidfTransformer()),('clf', OneVsRestClassifier(SVC(kernel='rbf')))])
classifier.fit(X_train, Y)
predicted = classifier.predict(X_test)
И я получаю сообщение об ошибке «predict_proba недоступен, когда вероятность = ложь». Я видел сообщение об ошибке, приведенной ниже: https://github.com/scikit-learn/scikit-learn/issues/1946
И он был закрыт как исправленный, поэтому я убил scikit-learn на своем ПК с Windows и полностью повторно загрузил scikit-learn, чтобы иметь версию 0.15.2. Но я все еще получаю эту ошибку. Какие-либо предложения? Или я неправильно понял это, и я все еще не могу использовать SVC с OneVSRestClassifier, если я не укажу вероятность = истина?
ОБНОВЛЕНИЕ: просто чтобы уточнить, я пытаюсь на самом деле добиться классификации с несколькими метками, вот источник данных:
df = pd.read_csv(fileIn, header = 0, encoding='utf-8-sig')
rows = random.sample(df.index, int(len(df) * 0.9))
work = df.ix[rows]
work_test = df.drop(rows)
X_train = []
y_train = []
X_test = []
y_test = []
for i in work[[i for i in list(work.columns.values) if i.startswith('Change')]].values:
X_train.append(','.join(i.T.tolist()))
X_train = np.array(X_train)
for i in work[[i for i in list(work.columns.values) if i.startswith('Corax')]].values:
y_train.append(list(i))
for i in work_test[[i for i in list(work_test.columns.values) if i.startswith('Change')]].values:
X_test.append(','.join(i.T.tolist()))
X_test = np.array(X_test)
for i in work_test[[i for i in list(work_test.columns.values) if i.startswith('Corax')]].values:
y_test.append(list(i))
lb = preprocessing.MultiLabelBinarizer()
Y = lb.fit_transform(y_train)
И после этого я отправляю его в конвейер, упомянутый ранее
python -c 'import sklearn; print(sklearn.__version__)
. - person Fred Foo   schedule 09.12.2014