{"cells":[{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"#라이브러리 로드\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\n\n#from imutils import paths\nimport pandas as pd\nimport numpy as np\n#import imutils \nimport cv2 \nimport os\n\nfrom PIL import Image\n\nimport matplotlib.pyplot as plt\nfrom sklearn.svm import SVC\n\nimport warnings\nwarnings.filterwarnings('ignore')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def resize32(dir):\n    img= cv2.imread(dir)\n    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n    img_gray.resize(32*32)\n    return img_gray","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"dataset_train = \"../input/2019-fall-pr-project/train/train/\"\n\nY=[]\nx=[]\ndata=os.listdir(dataset_train)\nfig,ax=plt.subplots(3,3)\nfor i,axi in enumerate(ax.flat):\n    img= cv2.imread(dataset_train+data[i])\n    axi.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))\n    axi.set(xticks=[], yticks=[],xlabel=data[i].split('.')[0])\n\nfor i in range(20001):\n    Y.append(0 if data[i].split('.')[0]=='cat' else 1)\n    image=resize32(dataset_train+data[i])\n    x.append(image)\n\nX=np.array(x)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train,X_val,y_train,y_val=train_test_split(X,Y,test_size=0.25,random_state=42)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import GridSearchCV\n\nknn = KNeighborsClassifier()\nparam_grid = {'n_neighbors': np.arange(1, 10)}\ngrid = GridSearchCV(knn, param_grid, cv=5)\ngrid.fit(X_train,y_train)\nmodel=grid.best_estimator_\nmodel","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"yfit=model.predict(X_val)\nprint(classification_report(yfit,y_val))\nprint(confusion_matrix(yfit,y_val))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"dataset_test = \"../input/2019-fall-pr-project/test1/test1/\"\n\nx=[]\nfiles=os.listdir(dataset_test)\nfor i in range(5000):\n    image=resize32(dataset_test+files[i])\n    x.append(image)\n\ntest_x=np.array(x)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# 라벨: 개(1), 고양이(0)\nresult=model.predict(test_x)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd\nresult=np.append(['label'],result)\ndf = pd.DataFrame(result,columns=[' '])\ndf=df.rename(index={0:\"id\"})\n\ndf.to_csv('results.csv',index=True, header=False)\ndf","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":1}