1

私は Orange パッケージを使用しており、利用可能なチュートリアルに基づいて次のコードを作成しました。

import orange,orngTest,orngStat,orngTree,Orange
bayes = orange.BayesLearner()
tree=orngTree.TreeLearner(mForPruning=2)
bayes.name="bayes"
tree.name="tree"
data = Orange.data.Table("iris.tab")
learners=[bayes,tree]
results=orngTest.crossValidation(learners,data,folds=10)
print "Learner    CA    IS    Brier    AUC"
for i in range(len(learners)):
    print "%-8s    %5.3f    %5.3f    %5.3f    %5.3f" %\
    (learners[i].name,\
    orngStat.CA(results)[i],\
    orngStat.IS(results)[i],\
    orngStat.BrierScore(results)[i],\
    orngStat.AUC(results)[i])

これにより、次の出力が得られます。

Running script:
Learner      CA        IS     Brier    AUC  
bayes       0.920    1.402    0.098    0.993  
tree        0.940    1.447    0.120    0.967  

Information Scoreの以下の説明に基づく

インスタンスの正しいクラスを C とします。P(C) はクラス C の事前確率であり、P'(C) は分類器によって返される事後確率であることを思い出してください。2 つのケースを考えます: (a) P'(C) > P(C) ここで、クラス C の確率が正しい方向に変化したため、そのような答えを有用と呼びます。正のスコアが与えられるべきです。Co) P'(C) < P(C) ここで、クラス C の確率が間違った方向に変化したため、そのような答えを誤解を招くものと呼びます。負のスコアを割り当てる必要があります。

続く:

Suppose the classifier in 1950 answered:   
P'(Bush) = 0.45   
P'(Dukakis) = 0.55   
P'(all others) = 0  

情報スコアとして 1.0 より大きい値は無効ですか? それとも、このタイプのデータ セットで不適切な分類子を使用したためでしょうか。データ セットには 3 つの異なるデータ カテゴリがありますiris.tab

4

0 に答える 0