операнд не может быть передан вместе с формами <56962,2> .. ошибка - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь классифицировать логистическую регрессию, используя "перекрестную проверку k-кратности" в python.

мой код:

`import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import StratifiedKFold
from sklearn.metrics import confusion_matrix,roc_auc_score    
data = pd.read_csv('xxx.csv')
X = data[["a","b","c",...]]
y = data["Class"]
def get_predictions(clf, X_train, y_train, X_test):
    clf = clf
    clf.fit(X_train,y_train)
    y_pred = clf.predict(X_test)
    y_pred_prob = clf.predict_proba(X_test)
    train_pred = clf.predict(X_train)
    print('train-set confusion matrix:\n', confusion_matrix(y_train,train_pred)) 
    return y_pred, y_pred_prob

skf = StratifiedKFold(n_splits = 5, shuffle = True, random_state = 0)
pred_test_full=0
cv_score=[]
i=1
for train_index, test_index in skf.split(X, y):
    X_train, y_train = X.loc[train_index], y.loc[train_index]
    X_test, y_test = X.loc[test_index], y.loc[test_index]  
    log_cfl = LogisticRegression(C=2);
    log_cfl.fit(X_train, y_train)
    y_pred, y_pred_prob = get_predictions(LogisticRegression(C=2), X_train, y_train, X_test)
    score=roc_auc_score(y_test,log_cfl.predict(X_test))
    print('ROC AUC score: ',score)
    cv_score.append(score)
    pred_test_full = pred_test_full + y_pred_prob
    i+=1`

Я получаю сообщение об ошибке в этой строке кода:

`pred_test_full = pred_test_full + y_pred_prob`

Для цикла выполняется 2 раза. Затем на третьем я получаю ошибку.

'operands could not be broadcast together with shapes <56962,2> <5696..' ошибка.

Я не мог понять, что не так, вы могли бы помочь выяснить?

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