【问题标题】:How to implement a SVM model when the predicted values are pairs of indexes that match?当预测值是匹配的索引对时,如何实现 SVM 模型?
【发布时间】:2019-06-19 13:59:18
【问题描述】:

我正在尝试拟合一个 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])

【问题讨论】:

    标签: python pandas scikit-learn multi-index record-linkage


    【解决方案1】:

    您不必指定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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-06
      • 2019-04-10
      • 2016-02-21
      • 2018-01-10
      • 2014-05-31
      • 2018-06-10
      • 2018-10-29
      • 1970-01-01
      相关资源
      最近更新 更多