2016-09-06 4 views
-3

я использую эту функцию для оценки моей моделинайти неправильно классифицированные данные в матрице спутанности

def stratified_cv(X, y, clf_class, shuffle=True, n_folds=10, **kwargs): 

    X = X.as_matrix().astype(np.float) 
    y = y.as_matrix().astype(np.int) 
    y_pred = y.copy() 
    stratified_k_fold = cross_validation.StratifiedKFold(y, n_folds=n_folds, shuffle=shuffle) 
    y_pred = y.copy() 
    for ii, jj in stratified_k_fold: 
      X_train, X_test = X[ii], X[jj] 
      y_train,y_test = y[ii],y[jj] 
      clf = clf_class(**kwargs) 
      clf.fit(X_train,y_train) 
      y_pred[jj] = clf.predict(X_test) 
     return y_pred 

и матрицы спутанности даются, например

pass_agg_conf_matrix = metrics.confusion_matrix(y,  stratified_cv(X, y, linear_model.PassiveAggressiveClassifier)) 

enter image description here

Теперь я хотел идентифицировать ошибки, которые не классифицированы

+2

Просто используйте свой предсказатель clf на каждом примере x и найдите те, для которых y_pred не равно y. Это не должно быть так сложно! – Zafi

ответ

0

Вы можете узнать, он неправильно классифицировал прогнозы из самой матрицы путаницы. В правом верхнем поле количество предсказанных предсказаний равно 0, но не равно нулю. И нижний левый квадрат показывает предсказанные 1, но не один. Эти вышеупомянутые ячейки известны как истинные отрицательные и ложные положительные, если матрица путаницы построена согласно правильному соглашению.