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

Я использую откалиброванное резюме для моего линейного ядра на классификаторе SGD, потому что моя потеря - потеря шарнира.Но теперь я хочу получить 10 лучших функций или классов, поэтому, как это сделать, я попытался использовать .coef_, но это не выдает ошибку.

linear_svm_sgd=SGDClassifier(penalty=penalty,alpha=i,max_iter=1000,class_weight='balanced')
    calibrated_clf= CalibratedClassifierCV(linear_svm_sgd,cv=3, method='sigmoid')

    #fit the model on train and predict its probability 
    clf_model=calibrated_clf.fit(xtrain_bow,ytrain_bow)
    predictl1=clf_model.predict_proba(xtrain_bow)
    fp_rate, tp_rate, thresholds = roc_curve(ytrain_bow, predictl1[:,1])

    #fit the model on cv & predict its probablity
    clf_model=calibrated_clf.fit(xcv_bow,ycv_bow)
    fp_rate_cv, tp_rate_cv, thresholds = roc_curve(ycv_bow,clf_model.predict_proba(xcv_bow)[:,1])

    #saving the value for hyperparamater foe each penalty l1 & l2
    if penalty=="l1":
        auc_valuel1_train.append(auc(fp_rate,tp_rate))
        auc_valuel1_cv.append(auc(fp_rate_cv,tp_rate_cv))
    else:
        auc_valuel2_train.append(auc(fp_rate,tp_rate))
        auc_valuel2_cv.append(auc(fp_rate_cv,tp_rate_cv))

Это дает мне следующую ошибку

 Top10_features=linear_svm_sgd.coef_

AttributeError: у объекта 'SGDClassifier' нет атрибута 'coef _'

1 Ответ

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

Перед калибровкой вашей модели просто .fit классификатор SGDC.

linear_svm_sgd.fit(xtrain_bow, ytrain_bow)
calibrated_clf= CalibratedClassifierCV(linear_svm_sgd,cv=3, method='sigmoid')    
#fit the model on train and predict its probability 
clf_model=calibrated_clf.fit(xtrain_bow,ytrain_bow)
predictl1=clf_model.predict_proba(xtrain_bow)

Тогда у вас будет доступ к коэффициентам.

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