搜索
简帛阁>技术文章>使用mlpack解决机器学习基本算法之一准确率、精准率、召回率、F1以及mlpack中的Classify

使用mlpack解决机器学习基本算法之一准确率、精准率、召回率、F1以及mlpack中的Classify

一 首先明确以下概念:

True Positive -实际值为真,模型预测值为真。

False Positive - Type I error.实际值为假,模型预测值为真。

True Negative -实际值为假,模型预测值为假。

False Negative - Type II error.实际值为真,模型预测值为假。

truePos:正确分类的样本数。  truePos + falsePos:总的positive样本数。

二 准确率

Accuracy:正确预测数correct、预测总数yTrue.n_elem

double Accuracy(const arma::Row<size_t>& yPreds, const arma::Row<size_t>& yTrue)//predicts labels;true labels
{
    const size_t correct = arma::accu(yPreds == yTrue);
    return (double)correct / (double)yTrue.n_elem;//correct predict / predict all count
}

Accuracy(output,Ytest)=>output:正确预测数。Ytest.n_elem:预测总数

 

三 精准率

预测为正的样本中有多少是真正的正样本。

Precision:正确分类的positive样本数/总的positive样本数

double Precision(const size_t truePos, const size_t falsePos)
{
    return (double)truePos / (double)(truePos + falsePos);
}

四 召回率

 表示样本中的正例有多少被预测正确了。有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)

Recall:正确分类的positive样本数/正确分类的positive样本数+错误分类的negative样本数。

double Recall(const size_t truePos, const size_t falseNeg)
{
    return (double)truePos / (double)(truePos + falseNeg);
}

五 F1值

为正确率和召回率的调和平均值

double F1Score(const size_t truePos, const size_t falsePos, const size_t falseNeg)
{
    double prec = Precision(truePos, falsePos);
    double rec = Recall(truePos, falseNeg);
    return 2 * (prec * rec) / (prec + rec);
}

参数(正确分类的positive样本数==truePos,错误分类的positive样本数 == falsePos,错误分类的negative样本数 == falseNeg)

Prec : 精准率。

Rec:召回率。

F1的值是:2*(精准率*召回率)/(精准率 + 召回率).

六 Classify

对给定的点进行分类,并返回给定矩阵中每个类的概率估计。Predictions:储存每个点的预测标签。data:数据集。probabilities:每个点的类别概率。

dt.Classify(Xtest,output,probs) 使用经过训练的模型对测试集进行分类并获得概率。

Probs:每个点的类别概率。Output:对每个点的预测结果。

 

 

首先明确以下概念:TruePositive实际值为真,模型预测值为真。FalsePositiveTypeIerror实际值为假,模型预测值为真。TrueNegative实际值为假,模型预测值为假。F
在搭建一个AI模型或者是机器学习模型的时候怎么去评估模型,比如我们前期讲的利用朴素贝叶斯算法做的垃圾邮件分类算法,我们如何取评估它。我们需要一套完整的评估方法对我们的模型进行正确的评估,如果模型效果比
Sklearn计算准确率、精确召回F1Score!文章目录一混淆矩阵11混淆矩阵定义12例子演示二准确率21准确率定义22例子演示三精确31精确定义32例子演示33宏平均和微平均的关系四
准确率、精确(查准率)、召回(查全率)、F1值、ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluationmetrics),而这些评价指标直接或间接都与混淆矩阵有关,前四
①错误率与精度错误率和精度是分类问题中常用的性能度量指标,既适用于二分类任务,也适用于多分类任务错误率(errorrate):指分类错误的样本占样本总数的比例,即(分类错误的数量/样本总数数量)精度(
先理解一下正类(Positive)和负类(Negetive),比如现在要预测用户是否点击了某个广告链接,点击了才是我们要的结果,这时,点击了则表示为正类,没点击则表示为负类。TP(TruePositi
其实大部分的评价指标比如误识率,拒识率等都是根据TP,FP,FN,TN计算出来的,为了方便起见,把他们的关系表示为下表:为了更好地理解,我把正负样本记做好人和坏人,那么:TP表示预测为正类的样本中实际
pytorch中训练完网络后,需要对学习的结果进行测试。官网上例程用的方法统统都是正确率,使用的是torcheq()这个函数。但是为了更精细的评价结果,我们还需要计算其他各个指标。在把官网API翻了
数据来自UCI机器学习仓库中的垃圾信息数据集数据可从http://archiveicsuciedu/ml/datasets/sms+spam+collection下载转成csv载入数据importma
数据来自UCI机器学习仓库中的垃圾信息数据集数据可从http://archiveicsuciedu/ml/datasets/sms+spam+collection下载转成csv载入数据importma