Python hmmlearn中的hmm 混淆矩阵阵是怎么表示的

python 工具包(96)
preface:做着最近的任务,对数据处理,做些简单的提特征,用跑下程序得出结果,看看哪些特征的组合较好,这一系列流程必然要用到很多函数,故将自己常用函数记录上。应该说这些函数基本上都会用到,像是数据预处理,处理完了后特征提取、降维、训练预测、通过混淆矩阵看分类效果,得出报告。
从数据集开始,提取特征转化为有标签的数据集,转为向量。拆分成训练集和测试集,这里不多讲,在上一篇博客中谈到用StratifiedKFold()函数即可。在训练集中有data和target开始。
[python]&&
my_preprocess()函数:
主要使用sklearn的preprocessing函数中的normalize()函数,默认参数为l2范式,对特征列进行正则处理。即每一个样例,处理标签,每行的平方和为1.
my_feature_selection()函数:
使用sklearn的函数中SelectKBest()函数和chi2()函数,若是用词袋提取了很多维的稀疏特征,有必要使用卡方选取前k个有效的特征。
my_PCA()函数:
主要用来观察前多少个特征是主要特征,并且画图。看看前多少个特征占据主要部分。
clf_train()函数:
可用多种机器学习算法,如SVM, LR, RF, GBDT等等很多,其中像SVM需要调参数的,有专门调试参数的函数如StratifiedKFold()(见前几篇博客)。以达到最优。
my_confusion_matrix()函数:
主要是针对预测出来的结果,和原来的结果对比,算出混淆矩阵,不必自己计算。其对每个类别的混淆矩阵都计算出来了,并且labels参数默认是排序了的。
my_classification_report()函数:
主要通过sklearn.metrics函数中的classification_report()函数,针对每个类别给出详细的准确率、召回率和F-值这三个参数和宏平均值,用来评价算法好坏。另外ROC曲线的话,需要是对二分类才可以。多类别似乎不行。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:156963次
积分:3901
积分:3901
排名:千里之外
原创:175篇
转载:351篇
评论:16条
(10)(34)(41)(48)(25)(49)(36)(30)(2)(8)(29)(15)(1)(18)(13)(25)(25)(31)(48)(28)(30)你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。10908人阅读
ConfusionMatrix
Talbe ofconfusion
Preference
Confusion Matrix
在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching
matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。
假设有一个用来对猫(cats)、狗(dogs)、兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结。假设总共有
27 只动物:8只猫,
6条狗, 13只兔子。结果的混淆矩阵如下图:
在这个混淆矩阵中,实际有 8只猫,但是系统将其中3只预测成了狗;对于
6条狗,其中有 1条被预测成了兔子,2条被预测成了猫。从混淆矩阵中我们可以看出系统对于区分猫和狗存在一些问题,但是区分兔子和其他动物的效果还是不错的。所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面。
Table of confusion
在预测分析中,混淆表格(有时候也称为混淆矩阵),是由false positives,falsenegatives,true
positives和true negatives组成的两行两列的表格。它允许我们做出更多的分析,而不仅仅是局限在正确率。准确率对于分类器的性能分析来说,并不是一个很好地衡量指标,因为如果数据集不平衡(每一类的数据样本数量相差太大),很可能会出现误导性的结果。例如,如果在一个数据集中有95只猫,但是只有5条狗,那么某些分类器很可能偏向于将所有的样本预测成猫。整体准确率为95%,但是实际上该分类器对猫的识别率是100%,而对狗的识别率是0%。
对于上面的混淆矩阵,其对应的对猫这个类别的混淆表格如下:
假定一个实验有 P个positive实例,在某些条件下有
N 个negative实例。那么上面这四个输出可以用下面的偶然性表格(或混淆矩阵)来表示:
公式陈列、定义如下:
True positive(TP)
eqv. with hit
True negative(TN)
eqv. with correct rejection
False positive(FP)
eqv. with false alarm, Type I error
False negative(FN)
eqv. with miss, Type II error
Sensitivity ortrue positive rate(TPR)
eqv. with hit rate, recall
TPR = TP/P = TP/(TP + FN)
Specificity(SPC)ortrue negative rate(TNR)
SPC = TN/N = TN/(FP + TN)
Precision orpositive prediction value(PPV)
PPV = TP/(TP + FP)
Negative predictive value(NPV)
NPV = TN/(TN + FN)
Fall-out orfalse positive rate(FPR)
FPR = FP/N = FP/(FP + TN)
False discovery rate(FDR)
FDR = FP/(FP + TP) = 1 - PPV
Miss Rate orFalse Negative Rate(FNR)
FNR = FN/P = FN/(FN + TP)
Accuracy(ACC)
ACC = (TP + TN)/(P + N)
Preference
WiKi:http://en.wikipedia.org/wiki/Confusion_matrix
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:54566次
排名:千里之外
原创:13篇
转载:10篇
评论:18条
(1)(1)(1)(2)(1)(3)(2)(2)(6)(6)机器学习算法(19)
因为在实际中常常遇到失衡数据集的分类问题,在我的译文中,其中一种策略就是改变衡量模型性能的计算方式,那么怎么衡量模型分类性能呢?
有,有,有对应的
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24021次
排名:千里之外
原创:40篇
评论:16条
(1)(2)(3)(1)(2)(3)(1)(1)(1)(7)(7)(4)(13)

我要回帖

更多关于 hmmlearn 安装 的文章

 

随机推荐