分類准確度
分類准確度
以sklearn中的手寫數字datasets.load_digits為例,其是8*8的圖形,具有64個特征值,類別由0到9
我們挑選出666這個圖形,將其可視化
X = digits.data
some_digit = X[666]
some_digit_image = some_digit.reshape(8,8)
plt.imshow(some_digit_image,cmap = matplotlib.cm.binary)
我們使用自己的算法(見前筆記)
將比例設置成0.2,k=3
X_train,X_test,y_train,y_test=train_test_split(X,y,test_ratio=0.2)
將預測到的結果放到y_predict中
y_predict = my_knn_clf.predict(X_test)
最后通過預測和測試進行比對,得到預測准確度
在pc中寫入metrics.py,其中寫入代碼將准確度計算也封裝起來
import numpy as np
def accuracy_score(y_true, y_predict):
"“”計算准確率“”"
assert y_true.shape[0] == y_predict.shape[0], \
"this size of y_true must be equal to the size of y_predict"
return sum(y_true == y_predict) / len(y_true)
運行結果無誤
方便起見,我們直接將准確度計算放到knn算法中一並封裝
由於我們對算法進行了改動,可能導致現在再運行的話,算法里面並沒有現在我們新添加的內容,因此我們需要重新啟動並運行所有代碼塊
我們就可以直接使用score得到准確度,而不是需要先對數據進行處理
scikit-learn中的accuracy_score
與前筆記中對sklearn數據集操作同理
注意:隨機種子設置為666
test_size=0.2, random_state=666