【Python-ML】SKlearn库性能指标-混淆矩阵和F1
生活随笔
收集整理的這篇文章主要介紹了
【Python-ML】SKlearn库性能指标-混淆矩阵和F1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*-
'''
Created on 2018年1月19日
@author: Jason.F
@summary:
混淆矩陣:TP、TN、FP、FP、FN
F1:召回率和爭取率
'''
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
import numpy as np
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
from sklearn.metrics import precision_score, recall_score, f1_score
#導入數據
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data',header=None)
X=df.loc[:,2:].values
y=df.loc[:,1].values
le=LabelEncoder()
y=le.fit_transform(y)#類標整數化
print (le.transform(['M','B']))
#劃分訓練集合測試集
X_train,X_test,y_train,y_test = train_test_split (X,y,test_size=0.20,random_state=1)
#建立pipeline
pipe_svc=Pipeline([('scl',StandardScaler()),('clf',SVC(random_state=1))])
pipe_svc.fit(X_train,y_train)
y_pred=pipe_svc.predict(X_test)
#混淆矩陣并可視化
confmat= confusion_matrix(y_true=y_test,y_pred=y_pred)#輸出混淆矩陣
print (confmat)
fig,ax = plt.subplots(figsize=(2.5,2.5))
ax.matshow(confmat,cmap=plt.cm.Blues,alpha=0.3)
for i in range(confmat.shape[0]):for j in range(confmat.shape[1]):ax.text(x=j,y=i,s=confmat[i,j],va='center',ha='center')
plt.xlabel('predicted label')
plt.ylabel('true label')
plt.show()
#召回率、準確率、F1
print ('precision:%.3f' %precision_score(y_true=y_test, y_pred=y_pred))
print ('recall:%.3f' %recall_score(y_true=y_test, y_pred=y_pred))
print ('F1:%.3f' %f1_score(y_true=y_test, y_pred=y_pred))#參考:http://scikit-learn.org/stable/modules/model_evaluation.html
結果:
[1 0] [[71 1][ 2 40]] precision:0.976 recall:0.952 F1:0.964總結
以上是生活随笔為你收集整理的【Python-ML】SKlearn库性能指标-混淆矩阵和F1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python-ML】SKlearn库网
- 下一篇: 【Python-ML】SKlearn库性