python 怎么打印分类准确率 召回率

2024-05-06 04:24

1. python 怎么打印分类准确率 召回率

数据集中:正例反例你的预测正例:AB你的预测反例:CD准确率就是A/(A+B)大白话就是“你的预测有多少是对的”召回率就是A/(A+C)大白话就是“正例里你的预测覆盖了多少”

python 怎么打印分类准确率 召回率

2. python 命名实体识别怎么计算准确率 召回率

目前算法方面主流就是CRF了 效率一般
2类(不包括非专名) 几W query/s
4类 就下降到1W-2W query/s了 更多类别的就更少了
当然这个是优化过的crf++了  
而且命名实体识别 算法不是对所有类别的都合适 比如音乐和电影 CRF的效果就不好
但是人名 地名 机构名还不错
所以工程上即使用CRF 也会使用词典+消歧的策略 !

3. 懂python 或随机森林模型的进来

既然你只问下面,那上面的我就不解释了

micro-average(微平均)
=(TP + FP) / (TP + TN + FP + FN),即为accuracy
accuracy = (分类正确的样本个数) / (分类的所有样本个数)
macro-average(宏平均)
引入F-measure= (A + 1) * precision * recall / (A ^ 2 * precision + recall)
如果A取1,那么F-measure实际上就是precison和recall的调和平均值:2*precision*recall / (precision + recall), 此时的F-measure就称为F1值
把所有类的F1值取一个算术平均就得到了Macro-average
最后一个就是加权平均值,没什么好说的

懂python 或随机森林模型的进来

4. 机器学习中,使用逻辑回归(python)做二分类时,recall,f1_score,support的含义是?

假设预测目标为0和1
数据中1的个数为a,预测1的次数为b,预测1命中的次数为c
准确率 precision = c / b
召回率 recall = c / a
f1_score = 2 * precision * recall / (precision + recall)

5. python3.5做分类时,混淆矩阵加在哪一步

preface:做着最近的任务,对数据处理,做些简单的提特征,用机器学习算法跑下程序得出结果,看看哪些特征的组合较好,这一系列流程必然要用到很多函数,故将自己常用函数记录上。应该说这些函数基本上都会用到,像是数据预处理,处理完了后特征提取、降维、训练预测、通过混淆矩阵看分类效果,得出报告。
1.输入
从数据集开始,提取特征转化为有标签的数据集,转为向量。拆分成训练集和测试集,这里不多讲,在上一篇博客中谈到用StratifiedKFold()函数即可。在训练集中有data和target开始。
2.处理

[python] view plain copy
def my_preprocessing(train_data):  
from sklearn import preprocessing  
X_normalized = preprocessing.normalize(train_data ,norm = "l2",axis=0)#使用l2范式,对特征列进行正则  
return X_normalized  

def my_feature_selection(data, target):  
from sklearn.feature_selection import SelectKBest  
from sklearn.feature_selection import chi2  
data_new = SelectKBest(chi2, k= 50).fit_transform(data,target)  
return data_new  

def my_PCA(data):#data without target, just train data, withou train target.  
from sklearn import decomposition  
pca_sklearn = decomposition.PCA()  
pca_sklearn.fit(data)  
main_var = pca_sklearn.explained_variance_  
print sum(main_var)*0.9  
import matplotlib.pyplot as plt  
n = 15  
plt.plot(main_var[:n])  
plt.show()  

def clf_train(data,target):  
from sklearn import svm  
#from sklearn.linear_model import LogisticRegression  
clf = svm.SVC(C=100,kernel="rbf",gamma=0.001)  
clf.fit(data,target)  

#clf_LR = LogisticRegression()  
#clf_LR.fit(x_train, y_train)  
#y_pred_LR = clf_LR.predict(x_test)  
return clf  

def my_confusion_matrix(y_true, y_pred):  
from sklearn.metrics import confusion_matrix  
labels = list(set(y_true))  
conf_mat = confusion_matrix(y_true, y_pred, labels = labels)  
print "confusion_matrix(left labels: y_true, up labels: y_pred):"  
print "labels\t",  
for i in range(len(labels)):  
print labels[i],"\t",  
print   
for i in range(len(conf_mat)):  
print i,"\t",  
for j in range(len(conf_mat[i])):  
print conf_mat[i][j],'\t',  
print   
print   

def my_classification_report(y_true, y_pred):  
from sklearn.metrics import classification_report  
print "classification_report(left: labels):"  
print classification_report(y_true, y_pred)  
my_preprocess()函数:主要使用sklearn的preprocessing函数中的normalize()函数,默认参数为l2范式,对特征列进行正则处理。即每一个样例,处理标签,每行的平方和为1.
my_feature_selection()函数:
使用sklearn的feature_selection函数中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曲线的话,需要是对二分类才可以。多类别似乎不行。
主要参考sklearn官网

python3.5做分类时,混淆矩阵加在哪一步