当预测值是匹配的索引对时,如何实现 SVM 模型?
How to implement a SVM model when the predicted values are pairs of indexes that match?
我正在尝试拟合 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])
您不必指定 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)
我正在尝试拟合 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])
您不必指定 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)