【筆記】KNN之分類准確度


分類准確度

分類准確度

以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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM