2017-03-25 10 views
-1

-サンプルデータから精度スコアを計算するにはどうすればよいですか?例えば

X = iris.data 
y = iris.target 

from sklearn.nighbors import KNeighborsClassifier 

knn = KNeighborsClassifier() 

knn.fit(X,y) 

pred = knn.predict([3,5,4,2]) 

print(pred) 

出力:[2] ...ここ2、私はこの予測の精度を計算することができますどのようにクラス値 を表し?

+0

正しく質問をインデントしてください。コードとテキストは別々にする必要があります –

+0

あなたは確信度よりも信頼度*に興味があるようですか? –

答えて

1

精度の代わりに確率を意味するのは、精度を1点で計算できないためです。代わりに

pred = knn.predict([3,5,4,2]) 

使用

pred = knn.predict_proba([3,5,4,2]) 

は、それはあなたのクラスに属するデータポイントの確率を与える必要があります。

モデル全体の精度をお探しの場合は、相互検証を行うことができます。

from sklearn.neighbors import KNeighborsClassifier 
from sklearn.metrics import cross_val_score 
from sklearn import datasets 

iris = datasets.load_iris() 
X = iris.data 
y = iris.target 

knn = KNeighborsClassifier() 
scores = cross_val_score(knn, X, y, cv=10) 
print(score.mean()) 

出力

0.96666666666666679 
+0

2つの値を返す - > [[0.37881165 0.62118835]] それはどういう意味ですか?それは2つの可能性を与えますか? – Ragib

+0

はい。したがって、最初の数は、「クラス-1」に属する「[3,5,4,2]」が0.38であり、「クラス2」のクラスに属する確率が0.62である確率である。クラス-2に属するデータポイントの確率が高いので、データポイントはクラス-2として予測されます –

+0

データの精度を判断するために 'pred [:、0]'または 'pred [:、1]'のいずれかの確率を使用できますClass-1またはClass-2に属するポイント。 –

関連する問題