parent
dba88c8ee9
commit
29a0f7e49a
@ -0,0 +1,37 @@
|
|||||||
|
from sklearn.neighbors import KNeighborsClassifier
|
||||||
|
from sklearn.preprocessing import LabelEncoder
|
||||||
|
from sklearn.model_selection import train_test_split
|
||||||
|
from sklearn.metrics import classification_report
|
||||||
|
from simplepreprocessor import SimplePreprocessor
|
||||||
|
from simpledatasetloader import SimpleDatasetLoader
|
||||||
|
from imutils import paths
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
ap = argparse.ArgumentParser()
|
||||||
|
ap.add_argument("-d", "--dataset", required=True, help="path to input dataset")
|
||||||
|
ap.add_argument("-k", "--neighbors", type=int, default=1, help="of nearest neighbors for classification")
|
||||||
|
ap.add_argument("-j", "--jobs", type=int, help="of jobs for K-NN distance (-1 uses all variables cores)")
|
||||||
|
args = vars(ap.parse_args())
|
||||||
|
|
||||||
|
print("[INFO] loading images...")
|
||||||
|
imagePaths = list(paths.list_images(args["dataset"]))
|
||||||
|
|
||||||
|
sp = SimplePreprocessor(32, 32)
|
||||||
|
sdl = SimpleDatasetLoader(preprocessors=[sp])
|
||||||
|
(data, labels) = sdl.load(imagePaths, verbose=100)
|
||||||
|
data = data.reshape((data.shape[0], 3072))
|
||||||
|
|
||||||
|
print("[INFO] features matrix:{:.1f}MB".format(data.nbytes / (1024 *1000.0)))
|
||||||
|
|
||||||
|
le = LabelEncoder()
|
||||||
|
labels = le.fit_transform(labels)
|
||||||
|
|
||||||
|
(trainX, testX, trainY, testY) = train_test_split(data, labels, test_size=0.25, random_state=42)
|
||||||
|
|
||||||
|
print("[INFO] evaluating K-NN classifier...")
|
||||||
|
|
||||||
|
model =KNeighborsClassifier(n_neighbors=3)
|
||||||
|
model.fit(trainX, trainY)
|
||||||
|
print(classification_report(testY, model.predict(testX), target_names=le.classes_))
|
||||||
|
|
||||||
Loading…
Reference in new issue