Ошибка типа: __init __ () получила неожиданный аргумент ключевого слова 'cv' - PullRequest
0 голосов
/ 11 марта 2019

Я хочу использовать SVM с перекрестной проверкой LeaveOneOut (Loocv).Код приведен ниже:

from sklearn.svm import SVC
from sklearn.model_selection import LeaveOneOut, train_test_split
import numpy as np
import pandas as pd

iRec = 'KSBPSSM_6_DCT_MIXED_49_937_937_1874_SMOTTMK.csv'
D = pd.read_csv(iRec, header=None)  # Using pandas

X = D.iloc[:, :-1].values
y = D.iloc[:, -1].values
from sklearn.utils import shuffle
X, y = shuffle(X, y)  # Avoiding bias
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.75, 
test_size=0.25)

tpot = SVC(kernel='rbf', C=2.123, gamma=0.0039, cv=LeaveOneOut(), 
probability=True,)
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))
tpot.export('tpot_pipeline_'  + str(index) + '.py')

Когда я запускаю код, я получаю следующую ошибку:

Traceback (most recent call last):
File "E:/PhD Folder/PhD research/DNA-binding Proteins literature 
papers/Effective DNA binding protein prediction by using key features via 
Chou’s general PseAAC_Code_dataset_10_10_2018/DNA_Binding- 
master/SVM_jackknife_test.py", line 18, in <module>
tpot = SVC(kernel='rbf', C=2.123, gamma=0.0039, cv=LeaveOneOut(), 
probability=True,)
TypeError: __init__() got an unexpected keyword argument 'cv'

Кто-нибудь может мне помочь

1 Ответ

0 голосов
/ 11 марта 2019

Прежде всего, взгляните на документацию SVC и Документация перекрестной проверки (sklearn) .

SVC() не принимает никакого параметра cv, фактически модели не учитывают перекрестную проверку. CV используется для проверки производительности и предотвращения переоснащения.

Пример, используемый в документации перекрестной проверки, на самом деле имеет SVC.

В вашем случае вы можете использовать cross_val_score следующим образом:

tpot = SVC(kernel='rbf', C=2.123, gamma=0.0039, probability=True)
scores = cross_val_score(tpot, X_test, y_test, cv=LeaveOneOut())
print(scores.mean())
...