{"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"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":3649,"databundleVersionId":46718,"sourceType":"competition"}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"from torch.utils.data import DataLoader\nfrom torchvision import transforms, datasets\nimport numpy as np\nfrom sklearn.metrics import accuracy_score\nfrom sklearn import svm\nimport pandas as pd","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# CIFAR-10\nCIFAR_transform_train = transforms.Compose([transforms.ToTensor()])\nCIFAR_transform_test =transforms.Compose([transforms.ToTensor()])\ntrainset_CIFAR = datasets.CIFAR10(root='./data', train=True, download=True, transform=\nCIFAR_transform_train)\ntestset_CIFAR = datasets.CIFAR10(root='./data', train=False, download=True,\ntransform=CIFAR_transform_test)\nCIFAR_train = DataLoader(trainset_CIFAR, batch_size=32, shuffle=True, num_workers=2)\nCIFAR_test = DataLoader(testset_CIFAR, batch_size=32, shuffle=False, num_workers=2)\nCIFAR_train_images = []\nCIFAR_train_labels = []\nfor batch in CIFAR_train:\n    images, labels = batch\n    images_flat = images.view(images.shape[0], -1)\n    CIFAR_train_images.append(images_flat.numpy())\n    CIFAR_train_labels.append(labels.numpy())\nCIFAR_train_images = np.vstack(CIFAR_train_images)\nCIFAR_train_labels = np.concatenate(CIFAR_train_labels)\nCIFAR_test_images = []\nCIFAR_test_labels = []\nfor batch in CIFAR_test:\n    images, labels = batch\n    images_flat = images.view(images.shape[0], -1)\n    CIFAR_test_images.append(images_flat.numpy())\n    CIFAR_test_labels.append(labels.numpy())\nCIFAR_test_images = np.vstack(CIFAR_test_images)\nCIFAR_test_labels = np.concatenate(CIFAR_test_labels)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"linear_svm = svm.SVC(kernel='linear', random_state=42)\nlinear_svm.fit(CIFAR_train_images, CIFAR_train_labels)\nlinear_train_pred = linear_svm.predict(CIFAR_train_images)\nlinear_test_pred = linear_svm.predict(CIFAR_test_images)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"rbf_svm = svm.SVC(kernel='rbf', random_state=42)\nrbf_svm.fit(CIFAR_train_images, CIFAR_train_labels)\nrbf_train_pred = rbf_svm.predict(CIFAR_train_images)\nrbf_test_pred = rbf_svm.predict(CIFAR_test_images)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"linear_train_accuracy = accuracy_score(CIFAR_train_labels, linear_train_pred)\nlinear_test_accuracy = accuracy_score(CIFAR_test_labels, linear_test_pred)\nrbf_train_accuracy = accuracy_score(CIFAR_train_labels, rbf_train_pred)\nrbf_test_accuracy = accuracy_score(CIFAR_test_labels, rbf_test_pred)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"results_df = pd.DataFrame({\n    'Model': ['Linear SVM', 'RBF SVM'],\n    'Training Accuracy': [linear_train_accuracy * 100, rbf_train_accuracy * 100],\n    'Test Accuracy': [linear_test_accuracy * 100, rbf_test_accuracy * 100]\n})\nresults_df","metadata":{},"execution_count":null,"outputs":[]}]}