Последовательный SVM в Scikit

#python #scikit-learn #svm #sequential

#python #scikit-учиться #svm #последовательный

Вопрос:

Я использую scikit в python для классификации данных с помощью SVM. Данные имеют 3 функции. Два из них представляют собой целочисленные значения, а одно из них представляет собой последовательность значений датчиков. Одной из функций является label. как я могу определить функцию как последовательность? Примером данной последовательности является (M1 = 1, M2 = 0, M3 = 1). я написал приведенный ниже код, но он не работает.

 data = np.empty((5, 2))
target = np.empty((5,), dtype=np.int)
for i in range(5):
    data[i] = np.asarray( ([[i,1,1,1,1] , [1,1,1,1,0] ,[1,1,1,0,0]] , [i] ))
    target[i] = np.asarray(i%2, dtype=np.int)
h = .02 
C = 1.0  # SVM regularization parameter
svc = svm.SVC(kernel='linear', C=C).fit(data, target)
rbf_svc = svm.SVC(kernel='rbf', gamma=0.7, C=C).fit(data, target)
poly_svc = svm.SVC(kernel='poly', degree=3, C=C).fit(data, target)
lin_svc = svm.LinearSVC(C=C).fit(data, target)
  

Ошибка:

 data[i] = np.asarray( ([[i,1,1,1,1] , [1,1,1,1,0] ,[1,1,1,0,0]] , [i] ))#,       dtype=np.l)
ValueError: setting an array element with a sequence.
  

Какова ваша идея решить эту проблему и классифицировать данные последовательности с помощью SVM?

Комментарии:

1. Это вопрос о разработке функций, а не о программировании. Так получилось, что у вас также не может быть массивов последовательностей в Numpy, что является источником ошибки, которую вы видите, но здесь это несущественно. В общем случае SVM требует матрицы числовых признаков в качестве входных данных. Превращение последовательностей в SVM-совместимые функции потребует некоторого размышления с вашей стороны. Если вы можете перефразировать вопрос с этой целью, я бы посоветовал вам удалить его здесь и повторно задать datascience.stackexchange.com

2. Я согласен с ssdecontrol: представьте ваши последовательности в виде нескольких дополнительных функций. Если некоторые последовательности имеют переменную длину, вам следует выяснить, какие из них пропускаются для ваших конкретных объектов (строк). Пропущенные функции могут быть заменены определенным значением, или вы можете не учитывать объекты с пропущенными данными, если их часть мала. Однако пропуск может ухудшить вашу потенциальную модель, если отсутствие элемента fact в последовательностях важно.

3. Спасибо ssdecontrol и sergzach. Я задал свой вопрос в datascience.stackexchange.com слишком. У меня есть различия в длине предложения. и я не могу дать некоторые значения пропущенным.