Моя проблема:
У меня есть набор данных, который представляет собой большой файл JSON. Я читаю его и сохраняю в переменной trainList
.
Затем я предварительно обработал его - чтобы иметь возможность работать с ним.
После этого я начинаю классификацию:
- Я использую
kfold
перекрестной проверкиkfold
, чтобы получить среднюю точность и обучить классификатор. - Я делаю прогнозы и получаю матрицу точности и путаницы в этом сгибе.
- После этого я хотел бы получить значения
True Positive(TP)
,True Negative(TN)
,False Positive(FP)
иFalse Negative(FN)
. Я буду использовать эти параметры для получения чувствительности и специфичности.
Наконец, я бы использовал это, чтобы вставить HTML, чтобы показать диаграмму с TP каждой метки.
Код:
Переменные у меня на данный момент:
trainList #It is a list with all the data of my dataset in JSON form
labelList #It is a list with all the labels of my data
Большая часть метода:
#I transform the data from JSON form to a numerical one
X=vec.fit_transform(trainList)
#I scale the matrix (don't know why but without it, it makes an error)
X=preprocessing.scale(X.toarray())
#I generate a KFold in order to make cross validation
kf = KFold(len(X), n_folds=10, indices=True, shuffle=True, random_state=1)
#I start the cross validation
for train_indices, test_indices in kf:
X_train=[X[ii] for ii in train_indices]
X_test=[X[ii] for ii in test_indices]
y_train=[listaLabels[ii] for ii in train_indices]
y_test=[listaLabels[ii] for ii in test_indices]
#I train the classifier
trained=qda.fit(X_train,y_train)
#I make the predictions
predicted=qda.predict(X_test)
#I obtain the accuracy of this fold
ac=accuracy_score(predicted,y_test)
#I obtain the confusion matrix
cm=confusion_matrix(y_test, predicted)
#I should calculate the TP,TN, FP and FN
#I don't know how to continue