<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    【機(jī)器學(xué)習(xí)】模型選擇(性能度量)原理及實(shí)戰(zhàn)

    共 3057字,需瀏覽 7分鐘

     ·

    2022-07-26 09:08


    0.概述


    模型的好壞是相對(duì)的。什么樣的模型是好的,即取決于算法和數(shù)據(jù),也取決于任務(wù)需求。


    1. 回歸任務(wù)的性能度量


    均方誤差

    均方誤差是回歸任務(wù)最常用的性能度量,表示預(yù)測(cè)值和實(shí)際值之間的誤差。

     

    2. 分類任務(wù)的性能度量


    真實(shí)情況預(yù)測(cè)結(jié)果

    正例反例
    正例TP(真正例)FN(假反例)
    反例FP(假正例)TN(真反例)


    精度:分類正確的樣本占總樣本的比例 TP+FN/總例數(shù)
    查準(zhǔn)率:預(yù)測(cè)正確的樣本中實(shí)際為正確的比例 TP/(TP+FP)
    查全率:正例中預(yù)測(cè)正確的比例 TP/(TP+FN)
    F1:查準(zhǔn)率和查全率的平均
    ROC與AUC
    許多機(jī)器學(xué)習(xí)方法分類的方式是為測(cè)試樣本產(chǎn)生一個(gè)實(shí)值(或概率預(yù)測(cè)),并將其與設(shè)定好的閾值相比較,大于閾值的分為正類,小于閾值的分為負(fù)類。我們可以根據(jù)實(shí)值的大小,即按是正例的可能性將樣本進(jìn)行排序。分類過(guò)程就是在這個(gè)排序中找到某個(gè)“截?cái)帱c(diǎn)”將前面一部分判做正例,后面一部分判做反例。


    ROC曲線是以每一個(gè)實(shí)值作為閾值,并衡量模型性能的方法。它以真正例率TPR=TP/(TP+FN)為橫坐標(biāo),假正例率FPR=FP/(TN+FP)為橫坐標(biāo)。每次按順序嘗試一個(gè)實(shí)值作為閾值進(jìn)行測(cè)試。
    真正例率和反正例率的分母是實(shí)際的正例和反例數(shù)量,是一個(gè)固定的數(shù),因此他們與TP和FP成正比。 



    上圖是ROC的一個(gè)示例。點(diǎn)(0,1)對(duì)應(yīng)將所有正例劃分在反例前面的理想模型。橙色線對(duì)應(yīng)一條實(shí)際情況下的ROC曲線。開(kāi)始時(shí),閾值的取值較高,只有前幾個(gè)數(shù)作為正例,假正例數(shù)量為0,假正例率為0。隨著閾值的降低,更多的樣本被劃分為正例,真假正例的數(shù)量都在增多,真假正例率也均有提升。閾值增高到一定程度時(shí),排序靠后的樣本全部為實(shí)際反例。于是真正例率不再增加,反正例率逐漸增加至1。得到一個(gè)數(shù)列fpr,tpr可以使用sklearn.metrics中的
    roc_curve([實(shí)際結(jié)果],[分?jǐn)?shù)])


    AUC是ROC曲線的線下面積,衡量了預(yù)測(cè)的排序質(zhì)量,是一種綜合性指標(biāo)。AUC=1時(shí),ROC曲線是(0, 0), (0, 1), (1, 1)連接起來(lái)的折線,代表所有正例在反例之前的完美排序。AUC=接近1/2時(shí),ROC接近(0, 0)和(1, 1)連接起來(lái)的直線,代表排序的方式接近于完全隨機(jī)。計(jì)算auc的方法是應(yīng)用sklearn.metrics中的roc_auc([fpr],[tpr])


    代價(jià)敏感錯(cuò)誤率
    適用于錯(cuò)誤類型造成的后果不同,如患者診斷為健康人(錯(cuò)過(guò)治療)和健康人診斷為患者(檢查費(fèi)用)
    根據(jù)錯(cuò)誤類型的不同給FP和FN按一定比例相加除以樣例數(shù)即為代價(jià)敏感錯(cuò)誤率。


    3. 代碼示例

    畫(huà)出ROC曲線,計(jì)算AUC值


    import matplotlib.pyplot as plt
    from sklearn import svm, datasets
    from sklearn.metrics import roc_curve, auc
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import label_binarize
    from sklearn.multiclass import OneVsRestClassifier
    # 導(dǎo)入鳶尾花數(shù)據(jù)集
    iris = datasets.load_iris()
    X = iris.data
    y = iris.target
    # 二進(jìn)制化輸出
    y = label_binarize(y, classes=[012])
    n_classes = y.shape[1]
    # 切分訓(xùn)練集和測(cè)試集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=0)
    # 應(yīng)用SVM進(jìn)行評(píng)分
    classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True,))
    y_score = classifier.fit(X_train, y_train).decision_function(X_test)
    # 為每個(gè)類別計(jì)算ROC曲線和AUC
    fpr = dict()
    tpr = dict()
    roc_auc = dict()
    for i in range(n_classes):
        # 這里用roc_curve得到了每個(gè)點(diǎn)的fpr,tpr值,參數(shù)是測(cè)試樣本實(shí)際結(jié)果和評(píng)分的的第i列
        fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])
        # 這里用auc函數(shù)得到每個(gè)點(diǎn)的auc
        roc_auc[i] = auc(fpr[i], tpr[i])
    plt.figure()
    lw = 2


    # 畫(huà)出ROC曲線,標(biāo)出AUC值
    plt.plot(fpr[1], tpr[1], color='darkorange', lw=lw, label='ROC curve (area = %0.4f)' % roc_auc[1])
    plt.xlim([0.01.0])
    plt.ylim([0.01.05])
    plt.xlabel('False Positive Rate')
    plt.ylabel('True Positive Rate')
    plt.title('Receiver operating characteristic example')
    plt.legend(loc="lower right")
    plt.show()




    - EOF -

    推薦閱讀  點(diǎn)擊標(biāo)題可跳轉(zhuǎn)
    往期精彩回顧




    瀏覽 93
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    天堂俺去俺来也WWW | 天天夜激情 | 99国产精品一区二区 | 97色婷婷 | www.九色 |