Как получить коэффициенты с помощью модели перекрестной проверки - PullRequest
0 голосов
/ 22 января 2019

Как получить коэффициенты с моделью перекрестной проверки? Когда я делаю перекрестную проверку, я получаю баллы за модель CV, как я могу получить коэффициенты?

#Split into training and testing
x_train, x_test, y_train, y_test = train_test_split(samples, scores, test_size = 0.30, train_size = 0.70)

clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf, x_train, y_train, cv=5)
scores

И я хочу напечатать коэффициент, связанный с каждой функцией

   #Print co-efficients of features
    for i in range(0, nFeatures):
    print samples.columns[i],":", coef[0][i]

Это без перекрестной проверки, которая обеспечивает коэффициенты

#Create SVM model using a linear kernel
model = svm.SVC(kernel='linear', C=C).fit(x_train, y_train)
coef = model.coef_

1 Ответ

0 голосов
/ 22 января 2019

Возможно, вы захотите использовать model_selection.cross_validate return_estimator=True) вместо cross_val_score.Это намного более гибко, так что вы можете получить доступ к оценкам, используемым для каждого сгиба:

from sklearn.svm import SVC
from sklearn.model_selection import cross_validate

clf = SVC(kernel='linear', C=1)
cv_results = cross_validate(clf, x_train, y_train, cv=5, return_estimator=True)

for model in cv_results['estimator']:
    print(model.coef_)

должен дать вам то, что вы ищете, надеюсь!(Вы можете получить доступ к метрикам через cv_results['train_score'] и cv_results['test_score'])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...