簡體   English   中英

訓練KNN分類器后如何預測特定圖像(來自數據集或來自外部數據集)

[英]How to predict a specific Image (from or outside dataset) after training the KNN classifier

我有一個簡單的KNN分類問題,以下代碼的輸出是訓練分類器並將數據集分為“訓練”和“測試”后得到的分類器的准確性。

我希望我的系統是這樣的:

  • 首先,使用數據集訓練分類器;
  • 從網址上傳圖片;
  • 根據數據集對其進行分類。

例如,輸出應為“ class 1”。 我相信這很簡單,但是我對python很陌生。

from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=5)

dataset = pd.read_csv(fdes)

X = dataset.iloc[:,:20].values
y = dataset['target'].values


from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
neigh.fit(X_train, y_train)

# Predicting the Test set results
y_pred = neigh.predict(X_test)

y_compare = np.vstack((y_test,y_pred)).T

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
#finding accuracy from the confusion matrix.
a = cm.shape
corrPred = 0
falsePred = 0

    #prining results
for row in range(a[0]):
    for c in range(a[1]):
        if row == c:
            corrPred +=cm[row,c]
        else:
            falsePred += cm[row,c]
kernelRbfAccuracy = corrPred/(cm.sum())
print ('Accuracy of  knn : ', corrPred/(cm.sum()))

完成所有這些步驟后,您可以繼續:

from io import BytesIO
import numpy as np
import requests
from PIL import Image

response = requests.get(url)
img = Image.open(BytesIO(response.content))
img = np.array(img).reshape(1, -1)
output_class = neigh.predict(img)[0]
print(output_class)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM