我的问题:
我有一个很大的JSON文件的数据集。我阅读并将其存储在trainList
变量中。
接下来,我对其进行预处理-以便能够使用它。
完成后,我便开始分类:
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
如果您有两个包含预测值和实际值的列表;看起来就像您所做的那样,您可以将它们传递给一个函数,该函数将使用以下内容来计算TP,FP,TN,FN:
def perf_measure(y_actual, y_hat):
TP = 0
FP = 0
TN = 0
FN = 0
for i in range(len(y_hat)):
if y_actual[i]==y_hat[i]==1:
TP += 1
if y_hat[i]==1 and y_actual[i]!=y_hat[i]:
FP += 1
if y_actual[i]==y_hat[i]==0:
TN += 1
if y_hat[i]==0 and y_actual[i]!=y_hat[i]:
FN += 1
return(TP, FP, TN, FN)
我认为您可以从这里计算出您感兴趣的利率,以及其他性能指标(例如特异性和敏感性)。
我在一本编码书中看到了以下宏定义。 没有任何解释。 请向我解释这些将如何作为和工作。
根据 [执行子 #1] 表达式E1[E2](根据定义)与*((E1)(E2))相同,但对于数组操作数,如果该操作数是左值,则结果是左值;否则结果是xvalue。 其中 由 [expr.add#4.2] 确定 将具有整数类型的表达式 J 添加到指针类型的表达式 P 中或从中减去该表达式 J 时,结果的类型为 P。 […] 否则,如果P指向具有n个元素的数组对象x的数组元素i([dcl.array])
问题内容: 有人可以使用以下示例数据解释JavaScript Truthy和Falsy。我读过其他主题,但仍然感到困惑。 根据我的理解,我相信这是唯一的真理,而其余的都是虚假的-这是正确的吗? 问题答案: 据我了解,我相信var a = 1; 是唯一的真理,其余都是虚假的-这是正确的吗? 没有。 var a = 0; 数字零是 虚假的 。但是,请注意,字符串零是真实的。 var a = 10 ==
好的,这是一段代码。代码的功能是获取一个值并确定它是奇数还是偶数。 现在我的问题在于为什么这样做有效。我现在的看法是-- num%2返回一个值。如果num为3,则num%2=1。为什么1的值满足if条件? 我假设这是一个1和0的问题,但我尝试了与%4相同的代码,如果返回3,它仍然满足if语句。 我理解这对一些人来说可能是一个基本问题,所以我为理解这一点可能太慢而道歉。非常感谢。 谢谢你的帮助!我现
问题内容: 我对分配给False,True的测试值感到困惑 要检查真实值,我们只需 假怎么样? 问题答案: 从Python样式指南中: 对于序列(字符串,列表,元组),请使用空序列为假的事实。 [..] 不要使用==将布尔值与True或False进行比较。
我现在有这个可以用的 我想添加一个条件,在这里我只会出售时,购买是虚假的如下,但它没有工作 为什么它不工作? 有什么建议吗?非常感谢。