Ответ 1
Последняя версия sklearn способна использовать строку в качестве меток. Например:
from sklearn.svm import SVC
clf = SVC()
x = [[1,2,3], [4,5,6]]
y = ['dog', 'cat']
clf.fit(x,y)
yhat = clf.predict([[1,2,5]])
print yhat[0]
Быстрый вопрос SVM для scikit-learn. Когда вы тренируете SVM, это что-то вроде
from sklearn import svm
s = svm.SVC()
s.fit(training_data, labels)
Есть ли какой-либо способ для labels
быть списком нечислового типа? Например, если я хочу классифицировать векторы как "cat" или "dog", без необходимости иметь какую-то внешнюю таблицу поиска, которая кодирует "cat" и "dog" в 1 и 2. Когда я пытаюсь просто передать список строк, я получаю...
ValueError: invalid literal for float(): cat
Таким образом, это не похоже на то, что в t21 будет работать только толкание строк. Любые идеи?
Последняя версия sklearn способна использовать строку в качестве меток. Например:
from sklearn.svm import SVC
clf = SVC()
x = [[1,2,3], [4,5,6]]
y = ['dog', 'cat']
clf.fit(x,y)
yhat = clf.predict([[1,2,5]])
print yhat[0]
Передача строк в виде классов непосредственно на моем todo, но пока не поддерживается в SVM. На данный момент у нас есть LabelEncoder, который может сделать книгу для вас.
[править] Это должно теперь работать вне поля [/edit]