Как реализовать модель SVM, когда прогнозируемые значения представляют собой пары совпадающих индексов? - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь приспособить модель SVM, где мои предсказанные истинные значения являются совпадающими мультииндексами.Проблема в том, что я не знаю, как указать, что мультииндиксы являются истинными значениями.

Я не могу использовать шаг классификации связи записей, потому что он не очень гибок.

from sklearn.svm import SVC

golden_pairs = filter_tests_new_df[:training_value]
golden_matches_index = golden_pairs[golden_pairs['ev_2'] == 1].index 
# This is a multiindex type

svm = SVC(gamma='auto')
svm.fit(golden_pairs, golden_matches_index) 
# I dont know how to specify that the golden_matches_index are the good matches

# Predict the match status for all record pairs
result_svm = svm.predict(test_pairs[columns_to_keep])

1 Ответ

0 голосов
/ 20 июня 2019

Вам не нужно указывать index, вместо этого используйте сгенерированный логический Series в качестве метки для классификации.

Вот пример.

# Sample data
data = pd.DataFrame({'a': [1, 2, 3], 
                     'b': [1, 1, 0]})

data
   a  b
0  1  1
1  2  1
2  3  0

# Generating labels
data['b'] == 1
0     True
1     True
2    False
Name: b, dtype: bool

# Can convert them to integer if required
(data['b'] == 1).astype(int)
0    1
1    1
2    0
Name: b, dtype: int64

На основев вашем коде, я думаю, что это должно сработать

# Boolean
golden_pairs['ev_2'] == 1

# Integer
(golden_pairs['ev_2'] == 1).astype(int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...