【问题标题】:Build SVMs with different kernels (RBF)构建具有不同内核 (RBF) 的 SVM
【发布时间】:2021-10-15 14:52:23
【问题描述】:

我在 python 中有这个


from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, roc_auc_score

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)

# The gamma parameter is the kernel coefficient for kernels rbf/poly/sigmoid
svm = SVC(gamma='auto', probability=True)

svm.fit(X_train,y_train.values.ravel())
prediction = svm.predict(X_test)
prediction_prob = svm.predict_proba(X_test)
print('Accuracy:', accuracy_score(y_test,prediction))
print('AUC:',roc_auc_score(y_test,prediction_prob[:,1]))

print(X_train)
print(y_train)

现在我想用不同的内核 rbf 构建它并将值存储到数组中。

像这样的


def svm_grid_search(parameters, cv):
    
    # Store the outcome of the folds in these lists
    means = []
    stds = []
    params = []
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
    
    for parameter in parameters: 
        X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
        # The gamma parameter is the kernel coefficient for kernels rbf/poly/sigmoid
        svm = SVC(gamma=1,kernel ='rbf',probability=True)
        svm.fit(X_train,y_train.values.ravel())
        prediction = svm.predict(X_test)
        prediction_prob = svm.predict_proba(X_test)
        return means, stddevs, params

我知道我想循环参数,然后将值存储到列表中。 但我很难做到这一点......

所以我尝试做的是循环然后将 SVM 的结果存储在数组中 kernel = parameter

如果你能在这里帮助我,我将非常感激。

【问题讨论】:

    标签: python arrays for-loop machine-learning svm


    【解决方案1】:

    这就是GridSearchCV 的用途。 Link here

    See here for an example

    【讨论】:

      最近更新 更多