import pandas as pd
import numpy as np
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
from sklearn.metrics import confusion_matrix #混淆矩陣
import matplotlib.pyplot as plt
from sklearn.metrics import precision_score , recall_score, f1_score
file
= pd.read_csv(
"", header =
none
)df =
file
x = df.loc[:,
2:].values
y = df.loc[:,
1].values
le = labelencoder(
)#轉換為數字
y = le.fit_transform(y)
#類表整數化
#劃分訓練集和測試集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size =
0.20
,random_state =1)
#20%test 隨機選
pipe_svc = pipeline([(
'scl'
,standardscaler())
,('clf'
,svc(random_state=1)
)])#歸一化 利用svc模型 隨機選
pipe_svc.fit(x_train,y_train)
#fit 擬合
pipeline(memory=none,
steps=[('scl', standardscaler(copy=true, with_mean=true, with_std=true)), ('clf', svc(c=1.0, cache_size=200, class_weight=none, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=false, random_state=1, shrinking=true,
tol=0.001, verbose=false))])
#測試
y_pred = pipe_svc.predict(x_test)
#y_pred **值
#y_test
#混淆矩陣視覺化
confmat = confusion_matrix(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)
)#f1度量
precision:0.976
recall:0.952
f1:0.964
機器學習(混淆矩陣)
1 混淆矩陣 真實性positive 1 negative 0 值poistive 1 tp true positive 11 fp false positive 01 negative 0 fn false negaative 10 tn true negative 00 2 四種指標 公式意義 ...
機器學習之混淆矩陣
再分類任務下,結果和真實情況之間存在四種不同的組合,這四種組合構成了混淆矩陣。舉個例子,看下圖。當真實情況是貓,結果也是貓的時候,這個時候定義為真正例 當真實情況是貓,而 結果不是貓的時候定義為偽反例子 當真實情況不是貓,而 結果是貓時定義為偽正例 當真實情況不是貓 結果也不是貓時定義為真反例。這個...
機器學習 混淆矩陣及其繪製
混淆矩陣主要用於表示分類精度,利用橫軸為 結果縱軸為標準結果的 圖,視覺化地展示演算法的分類效能。乙個混淆矩陣的例子 其中第一類有10個,第二類有14個,第三類有21個。而實際的 結果是第一類有乙個樣本錯誤 為了第二類 第二類有5個錯認為第一類,2個錯認為第三類 第三類中有兩個被錯認為第一類,6個第...