有没有办法在使用张量流进行多类分类时获得每类精度或召回.
例如,如果我有每个批次的y_true和y_pred,如果我有超过2个类,是否有一种功能性的方法来获得精度或每个类的回忆.
你能举一个在matlab中使用支持向量机(SVM)对4个类进行分类的例子:
atribute_1 atribute_2 atribute_3 atribute_4 class
1 2 3 4 0
1 2 3 5 0
0 2 6 4 1
0 3 3 8 1
7 2 6 4 2
9 1 7 10 3
Run Code Online (Sandbox Code Playgroud) matlab artificial-intelligence classification machine-learning svm
在AI和ML中处理2个项目时,我想到了这个问题.如果我正在构建模型(例如,分类神经网络,K-NN等等),该模型使用包含随机性的一些功能.如果我不修复种子,那么每次在相同的训练数据上运行算法时,我都会得到不同的精度结果.但是,如果我修复它,那么其他一些设置可能会提供更好的结果.
平均一组精度足以说明这个模型的准确度是xx%吗?
我不确定这是否是提出这样一个问题的正确场所/开放这样的讨论.
artificial-intelligence classification machine-learning data-mining
在大多数分类(例如逻辑/线性回归)中,偏差项在正则化时被忽略.如果我们不规范偏见项,我们会得到更好的分类吗?
我有一套训练集,我想根据我的训练集使用分类方法对其他文件进行分类.我的文件类型是新闻,类别是体育,政治,经济等.
我完全理解天真的贝叶斯和KNN,但SVM和决策树是模糊的,我不知道我是否可以自己实现这个方法?或者有使用这种方法的应用程序?
我可以用这种方式对文档进行分类的最佳方法是什么?
谢谢!
我正在使用Keras(使用Tensorflow后端)进行二进制分类,我有大约76%的精度和70%的召回率.现在我想尝试使用决策阈值.据我所知,Keras使用决策阈值0.5.有没有办法Keras使用自定义阈值来决策精度和召回?
感谢您的时间!
我目前正在研究 ML 分类问题,我正在使用sklearn库的以下导入和相应的代码计算 Precision、Recall 和 F1 ,如下所示。
from sklearn.metrics import precision_recall_fscore_support
print(precision_recall_fscore_support(y_test, prob_pos, average='weighted'))
Run Code Online (Sandbox Code Playgroud)
结果
0.8806451612903226, 0.8806451612903226, 0.8806451612903226
Run Code Online (Sandbox Code Playgroud)
对于 ML 分类问题,是否有可能获得所有 3 个相同的值,即精度、召回率和 F1?
在这方面的任何澄清将不胜感激。
precision classification machine-learning scikit-learn precision-recall
我使用 Keras 创建了一个简单的二元分类模型。代码是:
# create model
model = Sequential()
model.add(Dense(250, input_dim=1, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy', 'binary_accuracy'])
Run Code Online (Sandbox Code Playgroud)
我的目的是检查结果accuracy并binary_accuracy了解它们之间的区别。
正如 Keras 所说,binary_accuracy准确度有默认阈值.5,而“准确度”则没有。当我用样本数据测试它们时,结果是不同的,但在模型训练中,每个时期都有相同的结果。
对于这个真实的和预测的样本,我测试了accuracy并且binary_accuracy:
y_true = [[1], [1], [0], [0]]
y_pred = [[0.51], [1], [0], [0.4]]
Run Code Online (Sandbox Code Playgroud)
对于 binary_accuracy是:
m = tf.keras.metrics.BinaryAccuracy()
m.update_state(y_true, y_pred)
m.result().numpy()
Run Code Online (Sandbox Code Playgroud)
结果是:
1
对于 accuracy是:
m = tf.keras.metrics.Accuracy()
m.update_state(y_true, y_pred)
m.result().numpy()
Run Code Online (Sandbox Code Playgroud)
结果是:'.5'
但在上面的模型中,每个时期的每个人都是相同的。
编辑
通过将编译更改为这样,结果发生了变化:
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy', tf.keras.metrics.BinaryAccuracy(threshold=.7)])
Run Code Online (Sandbox Code Playgroud)
为什么在模型内accuracy …
RepeatedStratifiedKFold我尝试阅读和的文档StratifiedKFold,但无法区分这两种方法之间的区别,除了在每次重复中以不同的随机化RepeatedStratifiedKFold重复StratifiedKFold n次。
我的问题是:这两种方法返回的结果相同吗?在执行操作时我应该使用哪一种方法来分割不平衡的GridSearchCV数据集?选择该方法的理由是什么?
python classification machine-learning scikit-learn cross-validation
classification ×10
python ×3
svm ×3
tensorflow ×3
keras ×2
matlab ×2
scikit-learn ×2
data-mining ×1
libsvm ×1
precision ×1