AI基于Matlab Percetron Learning Algorithm——感知學(xué)習(xí)算法

Percetron Learning Algorithm——感知學(xué)習(xí)算法。

算法原理

PLA用于解決的是對(duì)于二維或者高維的 線性可分問題的分類犁跪,最終將問題分為兩類——是或者不是。針對(duì)給定的feature vector給出Yes 或者 No的回答歹袁。值得注意的是PLA一定是針對(duì)線性可分的問題坷衍,即可以找到一條線,或者超平面去分開是和不是的兩堆數(shù)據(jù)条舔,如果不是線性可分枫耳。可以通過Pocket改正算法孟抗,類似貪心的法則找到一個(gè)最適合的權(quán)值迁杨。
找到一個(gè)合適的權(quán)值之后,使用該權(quán)值對(duì)測(cè)試集進(jìn)行二分類凄硼。

抽象模型

image.png




權(quán)重向量 wi, 1<=i<=d;
閾值铅协,下面設(shè)為0
做一點(diǎn)小小的變形使得式子更加緊湊

image.png





PLA算法"知錯(cuò)能改",其循環(huán)是不斷遍歷feature vector摊沉,找到錯(cuò)誤的點(diǎn)狐史,即y和當(dāng)前w*x不符合,然后校正w说墨,那么為什么要這樣校正呢骏全?因?yàn)檫@樣可以保證Wt越來越靠近perfect直線w

評(píng)測(cè)指標(biāo)

image.png

對(duì)于二元分類有這樣的指標(biāo),Accuracy(準(zhǔn)確率)\Precision(精確率)Recall(召回率)F1(F值)

image.png
TP:本來為+1尼斧,預(yù)測(cè)為+1

FN:本來為+1姜贡,預(yù)測(cè)為-1

TN:本來為-1,預(yù)測(cè)為-1

FP:本來為-1棺棵,預(yù)測(cè)為+1

T:True   F:False
N:negative   P:positive

ROC指標(biāo)

   True Positive Rate ( TPR )  = TP / [ TP + FN] 楼咳,TPR代表能將正例分對(duì)的概率
   
False Positive Rate( FPR ) = FP / [ FP + TN] ,F(xiàn)PR代表將負(fù)例錯(cuò)分為正例的概率

在ROC 空間中烛恤,每個(gè)點(diǎn)的橫坐標(biāo)是FPR母怜,縱坐標(biāo)是TPR,這也就描繪了分類器在TP(真正的正例)和FP(錯(cuò)誤的正例)間的trade-off棒动。ROC的主要分 析工具是一個(gè)畫在ROC空間的曲線——ROC curve糙申。我們知道,對(duì)于二值分類問題,實(shí)例的值往往是連續(xù)值柜裸,我們通過設(shè)定一個(gè)閾值缕陕,將實(shí)例分類到正類或者負(fù)類(比如大于閾值劃分為正類)。因此我們 可以變化閾值疙挺,根據(jù)不同的閾值進(jìn)行分類扛邑,根據(jù)分類結(jié)果計(jì)算得到ROC空間中相應(yīng)的點(diǎn),連接這些點(diǎn)就形成ROC curve铐然。ROC curve經(jīng)過(0,0)(1,1)蔬崩,實(shí)際上(0, 0)和(1, 1)連線形成的ROC curve實(shí)際上代表的是一個(gè)隨機(jī)分類器。一般情況下搀暑,這個(gè)曲線都應(yīng)該處于(0, 0)和(1, 1)連線的上方沥阳。

算法偽代碼

原始PLA偽代碼

image.png

PLA的優(yōu)缺點(diǎn)

1.首先,PLA的算法是局限在線性可分的訓(xùn)練集上的自点,然而我們拿到一個(gè)訓(xùn)練集桐罕,并不知道其到底是不是線性可分,如果不是桂敛,PLA的算法程序?qū)o限循環(huán)下去功炮,這樣做是不可 行的。

2.即使訓(xùn)練集是線性可分术唬,我們也不知道PLA什么時(shí)候才能找到一個(gè)合適的解薪伏,如果要循環(huán)很多次才能找到,這對(duì)于實(shí)際使用是開銷很大的粗仓。

Pocket-PLA偽代碼

image.png

Pocket-PLA需要找到一條分界線去分離兩個(gè)數(shù)據(jù)集嫁怀,使得錯(cuò)誤率最低

然而要準(zhǔn)確找到一條錯(cuò)誤率最低的,被證明出是一個(gè)NP問題潦牛,不能準(zhǔn)確地找到眶掌。那么Pocket算法的思路就是挡育,類似貪心巴碗,如果找到一個(gè)更好(錯(cuò)誤率低)的w,那么就去更新即寒,如果找一個(gè)錯(cuò)誤率更高的橡淆,那么就不去更新的,重新找母赵。每次找一個(gè)隨機(jī)的wt逸爵。對(duì)于所有數(shù)據(jù)都采用w(t+1) = w(t) + yn*xn;修正一次。最后如果這個(gè)wt要比記錄的最好值w‘犯的錯(cuò)誤少凹嘲,就更新最好值师倔。

Pocket優(yōu)缺點(diǎn)

1.wt是隨機(jī)的,可能算了很多次都沒有找出一個(gè)更好的周蹭。

2.假設(shè)數(shù)據(jù)一開始就是線性可分趋艘,那么這個(gè)算法找出來的未必是最好解疲恢,且時(shí)間花費(fèi)也可能比較大。

小數(shù)據(jù)集驗(yàn)證模型

小數(shù)據(jù)集說明:因?yàn)閷?shí)驗(yàn)數(shù)據(jù)給出的分類不平衡瓷胧,所以我從網(wǎng)絡(luò)上找到可一個(gè)開源的數(shù)據(jù)集显拳,權(quán)值的維度是2,方便可視化搓萧,且這個(gè)數(shù)據(jù)集+1和-1的分類比例比較平均杂数,并且是非線性可分的。

set 權(quán)值維度 數(shù)量 y=+1 y=-1
train 2 200 100 100
validation 2 50 25 25

小訓(xùn)練集數(shù)據(jù)分布如下圖

觀察可得我確實(shí)沒找出一條線能夠劃分開兩個(gè)不同類別瘸洛。紅色o表示+1揍移,藍(lán)色x表示-1


小訓(xùn)練集數(shù)據(jù)分布.png

下面展示應(yīng)用我的模型的劃分過程

迭代過程1:迭代次數(shù)過少,分類效果很差

100小訓(xùn)練集劃分.png

迭代過程2:當(dāng)?shù)螖?shù)逐漸增多反肋,直線慢慢像最優(yōu)權(quán)值靠攏(體現(xiàn)PLA學(xué)習(xí)的過程)

115小訓(xùn)練集劃分.png

迭代過程3:由于測(cè)試集非線性可分羊精,當(dāng)權(quán)值很久沒有改變的時(shí)候,退出迭代的循環(huán)

小訓(xùn)練集劃分.png

應(yīng)用權(quán)值(直線)對(duì)驗(yàn)證集劃分

使用通過Train得到的直線(最優(yōu)權(quán)值)進(jìn)行測(cè)試分類器的效果

驗(yàn)證集集劃分.png

結(jié)果

<img src="http://upload-images.jianshu.io/upload_images/2560767-0217637fe26b8528.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="300" height="400">

指標(biāo)

左上:Precision-Recall

右上:F1-Recall

左下:F1-Precision

右下:TPR-FPR囚玫,顯示在y=x這條線上方的面積較大喧锦,該分類器效果較好

指標(biāo).png

關(guān)鍵代碼和注釋

Limit.m——限制迭代次數(shù)PLA與Pocket結(jié)合

clear A
clear P
clear R
clear TPRsave
clear FPRsave
clear F1Meansure

% augmented matrix 增廣矩陣
xn=augmentedmatrix(train);
size_label=size(label);
sizeL=size_label(1);
size_xn=size(xn);

% 隨機(jī)預(yù)測(cè)標(biāo)簽
Rand=randi([0,1],size_label(1),size_label(2));
Rand(Rand==0)=-1;
predictlabel=Rand;
Acc=Accuracy(label,predictlabel,sizeL);

tim=1;% 總迭代次數(shù)
count=1;% PLA-Pocket算法 權(quán)值何時(shí)放入口袋
iterator=1;% 原始PLA 算法迭代次數(shù)

% 用于畫圖
A=[];% 記錄正確率
P=[];% 記錄精確率
R=[];% 記錄召回率
TPRsave=[];% 記錄TPR
FPRsave=[];% 記錄FPR
F1Meansure=[];% 記錄F1

maxAcc=0;
maxF1=0;

% 初始化權(quán)值向量
maxW=ones(size_xn(1),1);
new_w=ones(size_xn(1),1);
w=ones(size_xn(1),1);

while(tim<=10000)
    if maxAcc==1
        break;
    end
    
    % 更新W
    predictlabel(iterator)=Sign((w')*xn(:,iterator));
    if predictlabel(iterator)~=label(iterator)
        new_w=w+label(iterator)*xn(:,iterator);
        w=new_w;
    end

    if count==4000
        count=0;
        tim=tim+1;
        Acc=Accuracy(label,predictlabel,sizeL);
        Pre=Precision(label,predictlabel,sizeL);
        Rec=Recall(label,predictlabel,sizeL);
        TPR=TruePositiveRate(label,predictlabel,sizeL);
        FPR=FalsePositiveRate(label,predictlabel,sizeL);
        F=F1(Pre,Rec,1);
        A=[A,Acc];
        P=[P,Pre];
        R=[R,Rec];
        TPRsave=[TPRsave,TPR];
        FPRsave=[FPRsave,FPR];
        F1Meansure=[F1Meansure,F];
        
        % pocket 記錄最好的權(quán)值向量
        if F>maxF1
            maxF1=F;
            maxW=new_w;
        end
    end
    if iterator==size_xn(2)
        iterator=0;
    end
    iterator=iterator+1;
    count=count+1;
    
end

Pocket.m ——隨機(jī)口袋算法

% augmented matrix
xn=augmentedmatrix(train);
% initial w
w=10000*rand(size_xn(1),1);
tim=1;


while(tim<=1000)
    w=10000*rand(size_xn(1),1);% 產(chǎn)生隨機(jī)權(quán)值向量W
    
    for iterator=1:size_xn(2)% 使用驗(yàn)證集對(duì)W更新一次
        predictlabel(iterator)=Sign((w')*xn(:,iterator));
        if predictlabel(iterator)~=label(iterator)
            new_w=w+label(iterator)*xn(:,iterator);
            w=new_w;
        end
    end
    
    % 計(jì)算各個(gè)指標(biāo)
    Acc=Accuracy(label,predictlabel,sizeL);
    Pre=Precision(label,predictlabel,sizeL);
    Rec=Recall(label,predictlabel,sizeL);
    TPR=TruePositiveRate(label,predictlabel,sizeL);
    FPR=FalsePositiveRate(label,predictlabel,sizeL);
    F=F1(Pre,Rec,5);
    A=[A,Acc];
    P=[P,Pre];
    R=[R,Rec];
    TPRsave=[TPRsave,TPR];
    FPRsave=[FPRsave,FPR];
    F1Meansure=[F1Meansure,F];
    % 進(jìn)入口袋Pocket的條件
    if F>maxF1
            maxF1=F;
            maxW=new_w;
    end
    tim=tim+1;
end

計(jì)算各類指標(biāo)

% 計(jì)算準(zhǔn)確率
function Acc=Accuracy(label,predictlabel,sizeL)
    error=label-predictlabel;
    TP=sizeL-(sum(abs(error))/2);
    Acc=TP/sizeL;
end

% 計(jì)算精確率
function Pre=Precision(label,predictlabel,sizeL)
    TP=0;
    FP=0;
    for i=1:sizeL
        if label(i)==1 && predictlabel(i)==1
            TP=TP+1;
        elseif label(i)==-1 && predictlabel(i)==1
            FP=FP+1;
        end
    end
    Pre=TP/(TP+FP);
end

% 計(jì)算召回率
function Rec=Recall(label,predictlabel,sizeL)
    TP=0;
    FN=0;
    for i=1:sizeL
        if label(i)==1 && predictlabel(i)==1
            TP=TP+1;
        elseif label(i)==1 && predictlabel(i)==-1
            FN=FN+1;
        end
    end
    Rec=TP/(TP+FN);
end

% 計(jì)算F值(加權(quán)版)
function F=F1(Pre,Rec,a)
    fenzi=a*a+1;
    fenmu=a*a;
    F=(fenzi*(Pre*Rec))/(fenmu*(Pre+Rec));
end

% 符號(hào)函數(shù)
function yout=Sign(yin)
    if yin>0
        yout=1;
    elseif yin<0
        yout=-1;
    end
end

%ROC橫縱坐標(biāo)計(jì)算
function TPR=TruePositiveRate(label,predictlabel,sizeL)
    TP=0;
    FN=0;
    for i=1:sizeL
        if label(i)==1 && predictlabel(i)==1
            TP=TP+1;
        elseif label(i)==1 && predictlabel(i)==-1
            FN=FN+1;
        end
    end
    TPR=TP/(TP+FN);
end

function FPR=FalsePositiveRate(label,predictlabel,sizeL)
    FP=0;
    TN=0;
    for i=1:sizeL
        if label(i)==-1 && predictlabel(i)==1
            FP=FP+1;
        elseif label(i)==-1 && predictlabel(i)==-1
            TN=TN+1;
        end
    end
    FPR=FP/(FP+TN);
end

實(shí)驗(yàn)結(jié)果和評(píng)測(cè)指標(biāo)

通過train訓(xùn)練出的權(quán)值向量VectorW,作用于validation進(jìn)行二分類
列表放結(jié)果

評(píng)測(cè)指標(biāo)圖

左上:Precision-Recall

右上:F1-Recall

左下:F1-Precision

右下:TPR-FPR

評(píng)測(cè)說明

準(zhǔn)確率和召回率是互相影響的抓督,理想情況下肯定是做到兩者都高燃少,但是一般情況下準(zhǔn)確率高、召回率就低铃在,召回率低阵具、準(zhǔn)確率高,當(dāng)然如果兩者都低定铜,那是什么地方出問題了

Precision-Recall曲線與坐標(biāo)軸之間的面積應(yīng)當(dāng)越大阳液。
最理想的系統(tǒng), 其包含的面積應(yīng)當(dāng)是1揣炕,而所有系統(tǒng)的包含的面積都應(yīng)當(dāng)大于0帘皿。

TPR-FPR 在ROC 空間中,每個(gè)點(diǎn)的橫坐標(biāo)是FPR畸陡,縱坐標(biāo)是TPR鹰溜,這也就描繪了分類器在TP(真正的正例)和FP(錯(cuò)誤的正例)間的trade-off。ROC的主要分 析工具是一個(gè)畫在ROC空間的曲線——ROC curve丁恭。我們知道曹动,對(duì)于二值分類問題,實(shí)例的值往往是連續(xù)值牲览,我們通過設(shè)定一個(gè)閾值馆类,將實(shí)例分類到正類或者負(fù)類(比如大于閾值劃分為正類)薄腻。因此我們 可以變化閾值枉疼,根據(jù)不同的閾值進(jìn)行分類疮装,根據(jù)分類結(jié)果計(jì)算得到ROC空間中相應(yīng)的點(diǎn),連接這些點(diǎn)就形成ROC curve。ROC curve經(jīng)過(0,0)(1,1),實(shí)際上(0, 0)和(1, 1)連線形成的ROC curve實(shí)際上代表的是一個(gè)隨機(jī)分類器。一般情況下押框,這個(gè)曲線都應(yīng)該處于(0, 0)和(1, 1)連線的上方。用ROC curve來表示分類器的performance很直觀好用理逊∠鹕。可是,人們總是希望能有一個(gè)數(shù)值來標(biāo)志分類器的好壞晋被。
于是Area Under roc Curve(AUC)就出現(xiàn)了兑徘。顧名思義,AUC的值就是處于ROC curve下方的那部分面積的大小羡洛。通常挂脑,AUC的值介于0.5到1.0之間,較大的AUC代表了較好的Performance欲侮。

設(shè)計(jì)PLA二分類模型結(jié)果分析

計(jì)算的F1值都是在alpha=1的情況下

迭代次數(shù)為500次崭闲,pocket以F1的閾值為準(zhǔn)

maxWeight on validation 

Acc = 0.815000000000000

Pre = 0.373737373737374

Rec = 0.231250000000000

F = 0.285714285714286

分析:迭代次數(shù)過少,分類器效果不明顯威蕉。

右下圖TPR-FPR 藍(lán)色為分類器曲線刁俭,橙色為y=x,曲線都在y=x下方韧涨,說明分類器效果不好

tim=1000牍戚,count=1.png

迭代次數(shù)為1000次,pocket以F1的閾值為準(zhǔn)

maxWeight on validation 

Acc = 0.831000000000000


Pre = 0.445783132530120


Rec = 0.231250000000000


F = 0.304526748971193

分析:隨著迭代次數(shù)的增大虑粥,pocket里收入了效果較好的權(quán)值

左上:Precision-Recall 曲線下凹如孝,說明精確率和召回率,魚與熊掌不可兼得娩贷,曲線越上凸第晰,分類器效果越好。

右下:TPR-FPR 藍(lán)色為分類器曲線育勺,橙色為y=x但荤,曲線都在y=x上方了,與上一張圖相比分類器性能變好了一些

tim=10000涧至,count=1.png

迭代次數(shù)為10000次,pocket以F1的閾值為準(zhǔn)

maxWeight on validation 

Acc = 0.822000000000000


Pre = 0.436619718309859


Rec = 0.387500000000000


F = 0.410596026490066

分析:隨著迭代次數(shù)的增大桑包,pocket里收入了效果更好的權(quán)值

右下:TPR-FPR 藍(lán)色為分類器曲線南蓬,橙色為y=x,曲線都在y=x上方了,與上一張圖相比赘方,橙色線上方面積大一些

tim=10000烧颖,count=1000.png

迭代次數(shù)為100000次,pocket以F1的閾值為準(zhǔn)

maxWeight on validation 

Acc = 0.796000000000000


Pre =  0.409090909090909


Rec = 0.618750000000000


F =

   0.492537313432836

分析:隨著迭代次數(shù)的增大窄陡,pocket里收入了效果更好的權(quán)值

之后很多次的迭代炕淮,都是為了pocket里收入的權(quán)值能使召回率Rec上升,照顧到更多的少數(shù)民族+1

tim=1000跳夭,count=1000.png

Pocket-PLA

當(dāng)alpha為1的時(shí)候

validation

Acc = 0.796000000000000


Pre = 0.402654867256637


Rec = 0.568750000000000


F = 0.471502590673575
pocketPLA1指標(biāo).png

當(dāng)alpha從0.1~10
不斷調(diào)高的過程中recall也會(huì)增加
最后我取定alpha=5時(shí)涂圆,也是比較隨緣的

此時(shí)驗(yàn)證集結(jié)果為:

Acc = 0.795000000000000


Pre = 0.403433476394850


Rec = 0.587500000000000


F = 0.241577608142494

純Pocket-PLA,運(yùn)行次數(shù)的增加并沒有增加Recall召回率币叹,而是取決于每次生成的初始權(quán)值向量W是否能夠訓(xùn)練出較好的模型

image.png

產(chǎn)生test測(cè)試集結(jié)果注明:

Model:結(jié)合了規(guī)定迭代次數(shù)的PLA算法與隨機(jī)口袋算法

iterator:100000

alpha:5

validation result
Acc =  0.795000000000000
Pre = 0.403433476394850
Rec = 0.587500000000000
F = 0.241577608142494

優(yōu)化點(diǎn)

1润歉、結(jié)合了規(guī)定迭代次數(shù)的PLA算法與隨機(jī)口袋算法
規(guī)定迭代次數(shù)PLA算法是經(jīng)過若干次不斷的輪詢調(diào)整之后,從初始化權(quán)值W=1颈抚,得到一個(gè)權(quán)值W-PLA踩衩,缺點(diǎn)是循環(huán)很多次才能找到,這對(duì)于實(shí)際使用是開銷很大贩汉,也不知道什么時(shí)候才能找到驱富。
隨機(jī)口袋算法是使用隨機(jī)數(shù)產(chǎn)生一個(gè)權(quán)值,利用這個(gè)初始隨機(jī)的權(quán)值匹舞,經(jīng)過所有樣本更新一次萌朱,得到一個(gè)權(quán)值W-Pocket,判斷該權(quán)值是否使錯(cuò)誤率更小策菜,如果錯(cuò)誤率更小則更新權(quán)值晶疼。缺點(diǎn)是W-Pocket的初始化是隨機(jī)的,不確定性大又憨,可能算了很多次都沒有找出一個(gè)更好的翠霍。

這兩者可以相結(jié)合,首先使用“規(guī)定迭代次數(shù)”的PLA算法得到一個(gè)權(quán)值W-PLA蠢莺,然后把這個(gè)權(quán)值作為口袋算法的初始權(quán)值寒匙,經(jīng)過訓(xùn)練集的更新,記錄結(jié)果躏将。重復(fù)多次锄弱,再使用W-Pocket的權(quán)值作為“規(guī)定迭代次數(shù)”的PLA的初始權(quán)值。這樣可以保證設(shè)置的迭代次數(shù)不用太多祸憋,耗時(shí)不長会宪,口袋算法的不確定性減小。

使用改優(yōu)化后召回率明顯上升蚯窥。

2.使用了一般意義下的F1作為指標(biāo)
用于優(yōu)化口袋算法


image.png

為什么選擇用這個(gè)指標(biāo)呢掸鹅?
在本次實(shí)驗(yàn)中塞帐,我認(rèn)為召回率Recall的重要性很大,因?yàn)橛?xùn)練集數(shù)據(jù)分類不平衡巍沙,y=-1的有百分之八十多葵姥,如果只根據(jù)正確率Accuracy來作為評(píng)測(cè)指標(biāo),那這個(gè)算法變得非常簡單句携,把所有的分類都判斷為-1榔幸,那正確率就很高了,完爆了我寫的其他PLA分類器辛辛苦苦算出來的權(quán)值矮嫉。這樣的分類在測(cè)試集中表現(xiàn)有可能會(huì)出現(xiàn)很大的偏差削咆,萬一測(cè)試集里+1居多呢。

本次實(shí)驗(yàn)中召回率是
Recall=(【預(yù)測(cè)為+1且實(shí)際也是+1】)/(【預(yù)測(cè)為+1且實(shí)際為+1】 加上 【預(yù)測(cè)為-1但是實(shí)際是+1】)
表征的特點(diǎn)是敞临,我的分類器态辛,對(duì)于實(shí)際是+1的,到底預(yù)測(cè)對(duì)了多少挺尿。訓(xùn)練集-1居多奏黑,那更應(yīng)該關(guān)注一下+1的標(biāo)簽們。

當(dāng)alpha慢慢調(diào)大编矾,召回率上升熟史,我認(rèn)為這個(gè)參數(shù)達(dá)到了優(yōu)化模型的目的。

思考題

有什么其他方法可以解決數(shù)據(jù)集非線性可分的問題窄俏?

既然用一條直線無法分割非線性可分的數(shù)據(jù)集蹂匹,那只有走曲線救國路線了,提前試了一下用SVM

驗(yàn)證集集劃分.png
svm.png

解釋四個(gè)指標(biāo)的用處和意義凹蜈。

準(zhǔn)確率限寞,它計(jì)算的是對(duì)于給定的測(cè)試數(shù)據(jù)集,分類器正確分類的樣本數(shù)與總樣本數(shù)之比仰坦。

精確率Precision履植,它計(jì)算的是所有"正確被檢索的item(TP)"占所有"實(shí)際被檢索到的(TP+FP)"的比例.

召回率Recall,它計(jì)算的是所有"正確被檢索的item(TP)"占所有"應(yīng)該檢索到的item(TP+FN)"的比例悄晃。

一般來說玫霎,Precision 就是檢索出來的條目中(比如:文檔、網(wǎng)頁等)有多少是準(zhǔn)確的妈橄,Recall就是所有準(zhǔn)確的條目有多少被檢索出來了庶近。

我們當(dāng)然希望檢索的結(jié)果P越高越好,R也越高越好眷蚓,但事實(shí)上這兩者在某些情況下是矛盾的鼻种。比如極端情況下,我們只搜出了一個(gè)結(jié)果溪椎,且是準(zhǔn)確的普舆,那么P就是100%恬口,但是R就很低校读;而如果我們把所有結(jié)果都返回沼侣,那么必然R是100%,但是P很低歉秫。

因此在不同的場合中需要自己判斷希望P比較高還是R比較高蛾洛。如果是做實(shí)驗(yàn)研究,可以繪制Precision-Recall曲線來幫助分析雁芙。

準(zhǔn)確率轧膘,我們的確可以在一些場合,從某種意義上得到一個(gè)分類器是否有效兔甘,但它并不總是能有效的評(píng)價(jià)一個(gè)分類器的工作谎碍。舉個(gè)栗子,google抓取 了argcv 100個(gè)頁面,而它索引中共有10,000,000個(gè)頁面,隨機(jī)抽一個(gè)頁面洞焙,分類下,這是不是argcv的頁面呢?如果以accuracy來判斷我的工 作蟆淀,那我會(huì)把所有的頁面都判斷為"不是argcv的頁面",因?yàn)槲疫@樣效率非常高(return false,一句話),而accuracy已經(jīng)到了99.999%(9,999,900/10,000,000),完爆其它很多分類器辛辛苦苦算的值,而我這個(gè)算法顯然不是需求期待的,那怎么解決呢?這就是precision,recall和f1-measure存在的意義。還有很多判斷分類器是否優(yōu)秀的指標(biāo)澡匪,如AP和mAP(mean Average Precision)和ROC&AUC熔任。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市唁情,隨后出現(xiàn)的幾起案子疑苔,更是在濱河造成了極大的恐慌,老刑警劉巖甸鸟,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惦费,死亡現(xiàn)場離奇詭異,居然都是意外死亡抢韭,警方通過查閱死者的電腦和手機(jī)薪贫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篮绰,“玉大人后雷,你說我怎么就攤上這事》透鳎” “怎么了臀突?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贾漏。 經(jīng)常有香客問我候学,道長,這世上最難降的妖魔是什么纵散? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任梳码,我火速辦了婚禮隐圾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掰茶。我一直安慰自己暇藏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布濒蒋。 她就那樣靜靜地躺著盐碱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沪伙。 梳的紋絲不亂的頭發(fā)上瓮顽,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音围橡,去河邊找鬼暖混。 笑死,一個(gè)胖子當(dāng)著我的面吹牛翁授,可吹牛的內(nèi)容都是我干的拣播。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼黔漂,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼诫尽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起炬守,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤牧嫉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后减途,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酣藻,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鳍置,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辽剧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡税产,死狀恐怖怕轿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辟拷,我是刑警寧澤撞羽,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站衫冻,受9級(jí)特大地震影響诀紊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜隅俘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一邻奠、第九天 我趴在偏房一處隱蔽的房頂上張望笤喳。 院中可真熱鬧,春花似錦碌宴、人聲如沸杀狡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捣卤。三九已至忍抽,卻和暖如春八孝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸠项。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工干跛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祟绊。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓楼入,卻偏偏與公主長得像,于是被迫代替她去往敵國和親牧抽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嘉熊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容