例如 -如何從樣本數據中計算精度分數?
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代表一類值 我如何計算這個預測的準確性?
例如 -如何從樣本數據中計算精度分數?
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代表一類值 我如何計算這個預測的準確性?
如果您的意思是可能性而不是準確性,因爲您無法計算單點精度。
而不是
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.37881165 0.62118835]] 這是什麼意思?它提供了兩種可能性嗎? – Ragib
是的。因此,第一個數字是屬於「Class-1」的「[3,5,4,2]」爲0.38,而「Class-2」爲0.62的概率。由於屬於第2類的數據點的概率很高,所以數據點被預測爲第2類 –
您可以使用概率pred [:,0]或pred [:,1]來確定數據的準確性屬於1類或2類的點。 –
請正確縮進的問題。代碼和文本應該是分開的 –
您似乎對*置信度*而不是準確度感興趣? –