에 대한 호출 득점으로 특이성을 정의하는 방법 :내가 모델의 숫자의 성능을 비교하기 위해이 코드를 사용하고 모델 평가
from sklearn import model_selection
X = input data
Y = binary labels
models = []
models.append(('LR', LogisticRegression()))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('CART', DecisionTreeClassifier()))
results = []
names = []
scoring = 'accuracy'
for name, model in models:
kfold = model_selection.KFold(n_splits=10, random_state=7)
cv_results = model_selection.cross_val_score(model, X, Y, cv=kfold,scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %.2f (%.2f)" % (name, cv_results.mean(), cv_results.std())
print(msg)
내가 득점으로 '정확성'과 '리콜'을 사용할 수 있으며 이러한 것
정확성과 감도를 부여하십시오. 나는 나에게 '특이'
특이성 = TN/(TN + FP)를 제공하는 득점을 만들 수있는 방법 TN 및 FP가 혼란 매트릭스
I에서 진정한 부정과 거짓 양의 값이다
시도
def tp(y_true, y_pred):
error= confusion_matrix(y_true, y_pred)[0,0]/(confusion_matrix(y_true,y_pred)[0,0] + confusion_matrix(y_true, y_pred)[0,1])
return error
my_scorer = make_scorer(tp, greater_is_better=True)
다음
cv_results = model_selection.cross_val_score(model, X,Y,cv=kfold,scoring=my_scorer)
하지만 그것은하지 않습니다 n_split에 대한 작업> = 10 내가 my_scorer의 계산이 오류가
IndexError : 당신은 scikit의 특이성을 얻을 수 있지만, 당신이 실제로 얻을 수있는 것은 할 수없는 일
'model_selection'은 갑자기 어디에서 왔습니까? –
TN 및 FP 란 무엇입니까? –
아니요. '정확도'는 정확도가 아니라 정확도를 나타냅니다. 정밀도를 위해 '정밀도'를 사용해야합니다. 사용 가능한 모든 채점 방법에 대해서는 여기를 참조하십시오 : http://scikit-learn.org/stable/modules/model_evaluation.html. –