{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"ls -al","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nimport numpy as np\nimport cv2\nimport os\n\nimport os \nfrom glob import glob\nfrom PIL import Image\n\nfrom sklearn import svm, datasets\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom tqdm import tqdm_notebook","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"scaler = StandardScaler()\ndataset_train = \"../input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg')\ntrain = list()\nlabel = list()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i in tqdm_notebook(range(len(train_data_list))):\n    try:\n        if train_data_list[i][42] == 'c' :\n            label.append(0)\n        else :\n            label.append(1)\n\n        image = Image.open(train_data_list[i])\n\n        image = image.resize((32,32), Image.ANTIALIAS)\n        image = np.array(image)/255\n\n        image = image.reshape(-1)\n\n        train.append(image)\n    except :\n        import pdb;pdb.set_trace()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.1, random_state=42)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"parameters = {'kernel':['rbf'], 'C': [1, 5, 10, 100, 1000]}\nsvc = svm.SVC(gamma=\"scale\",decision_function_shape=\"ovo\")\nclf = GridSearchCV(svc, parameters, cv=2)\nclf.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"clf.best_params_","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_predict = clf.predict(X_test)\nconfusion_matrix(y_test, y_predict)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"target_names = ['dog', 'cat']\nprint(classification_report(y_test, y_predict, target_names=target_names))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test = list()\n\ndataset_test = \"../input/2019-fall-pr-project/test1/test1/\"\ntest_data_list = glob(dataset_test+'*.jpg')\n\nfor i in tqdm_notebook(range(len(test_data_list))):\n\n  image = Image.open(test_data_list[i])\n  image = image.resize((32,32), Image.ANTIALIAS)\n  image = np.array(image)/255\n  image = image.reshape(-1)\n\n  test.append(image)\n\ntest = np.array(test)\nscaler.fit(test)\ntest = scaler.transform(test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"result = clf.predict(test)\ntest = result.reshape(-1,1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# numpy 를 Pandas 이용하여 결과 파일로 저장\n\nimport pandas as pd\n\nprint(test.shape)\ndf = pd.DataFrame(test, columns=[\"label\"])\ndf.index = np.arange(1,len(df)+1)\ndf.index.name = 'id'\n\ndf.to_csv('results-jwkim-v2.csv',index=True, header=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","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}