티스토리 뷰
Real Data Analysis
FASHION MNIST with Python (DAY 4) - support vector machine
딥스탯 2018. 8. 18. 22:05FASHION MNIST with Python (DAY 4)¶
DATA SOURCE : https://www.kaggle.com/zalando-research/fashionmnist (Kaggle, Fashion MNIST)
FASHION MNIST with Python (DAY 1) : http://deepstat.tistory.com/35
FASHION MNIST with Python (DAY 2) : http://deepstat.tistory.com/36
FASHION MNIST with Python (DAY 3) : http://deepstat.tistory.com/37
Datasets¶
Importing numpy, pandas, pyplot¶
In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Loading datasets¶
In [2]:
data_train = pd.read_csv("..\\datasets\\fashion-mnist_train.csv")
data_test = pd.read_csv("..\\datasets\\fashion-mnist_test.csv")
In [3]:
data_train_y = data_train.label
y_test = data_test.label
In [4]:
data_train_x = data_train.drop("label",axis=1)/256
x_test = data_test.drop("label",axis=1)/256
Spliting valid and training¶
In [5]:
np.random.seed(0)
valid2_idx = np.random.choice(60000,10000,replace = False)
valid1_idx = np.random.choice(list(set(range(60000)) - set(valid2_idx)),10000,replace=False)
train_idx = list(set(range(60000))-set(valid1_idx)-set(valid2_idx))
x_train = data_train_x.iloc[train_idx,:]
y_train = data_train_y.iloc[train_idx]
x_valid1 = data_train_x.iloc[valid1_idx,:]
y_valid1 = data_train_y.iloc[valid1_idx]
x_valid2 = data_train_x.iloc[valid2_idx,:]
y_valid2 = data_train_y.iloc[valid2_idx]
Support Vector Machine¶
Importing SVC¶
In [6]:
from sklearn.svm import SVC
from sklearn.metrics import confusion_matrix
Fitting SVC with penalty parameter 0.00001¶
In [7]:
SVM_model_type_1 = SVC(C=0.00001).fit(x_train, y_train)
Training Accuracy¶
In [8]:
confusion_matrix(SVM_model_type_1.predict(x_train),y_train)
Out[8]:
In [9]:
SVM_model_type_1_train_acc = (SVM_model_type_1.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_1_train_acc)
Validation Accuracy¶
In [10]:
confusion_matrix(SVM_model_type_1.predict(x_valid1),y_valid1)
Out[10]:
In [11]:
SVM_model_type_1_valid1_acc = (SVM_model_type_1.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_1_valid1_acc)
In [12]:
{"TRAIN_ACC" : SVM_model_type_1_train_acc , "VALID_ACC" : SVM_model_type_1_valid1_acc}
Out[12]:
Fitting SVC with penalty parameter 0.0001¶
In [13]:
SVM_model_type_2 = SVC(C=0.0001).fit(x_train, y_train)
Training Accuracy¶
In [14]:
confusion_matrix(SVM_model_type_2.predict(x_train),y_train)
Out[14]:
In [15]:
SVM_model_type_2_train_acc = (SVM_model_type_2.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_2_train_acc)
Validation Accuracy¶
In [16]:
confusion_matrix(SVM_model_type_2.predict(x_valid1),y_valid1)
Out[16]:
In [17]:
SVM_model_type_2_valid1_acc = (SVM_model_type_2.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_2_valid1_acc)
In [18]:
{"TRAIN_ACC" : SVM_model_type_2_train_acc , "VALID_ACC" : SVM_model_type_2_valid1_acc}
Out[18]:
Fitting SVC with penalty parameter 0.001¶
In [19]:
SVM_model_type_3 = SVC(C=0.001).fit(x_train, y_train)
Training Accuracy¶
In [20]:
confusion_matrix(SVM_model_type_3.predict(x_train),y_train)
Out[20]:
In [21]:
SVM_model_type_3_train_acc = (SVM_model_type_3.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_3_train_acc)
Validation Accuracy¶
In [22]:
confusion_matrix(SVM_model_type_3.predict(x_valid1),y_valid1)
Out[22]:
In [23]:
SVM_model_type_3_valid1_acc = (SVM_model_type_3.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_3_valid1_acc)
In [24]:
{"TRAIN_ACC" : SVM_model_type_3_train_acc , "VALID_ACC" : SVM_model_type_3_valid1_acc}
Out[24]:
Fitting SVC with panalty parameter 0.01¶
In [25]:
SVM_model_type_4 = SVC(C=0.01).fit(x_train, y_train)
Training Accuracy¶
In [26]:
confusion_matrix(SVM_model_type_4.predict(x_train),y_train)
Out[26]:
In [27]:
SVM_model_type_4_train_acc = (SVM_model_type_4.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_4_train_acc)
Validation Accuracy¶
In [28]:
confusion_matrix(SVM_model_type_4.predict(x_valid1),y_valid1)
Out[28]:
In [29]:
SVM_model_type_4_valid1_acc = (SVM_model_type_4.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_4_valid1_acc)
In [30]:
{"TRAIN_ACC" : SVM_model_type_4_train_acc , "VALID_ACC" : SVM_model_type_4_valid1_acc}
Out[30]:
Fitting SVC with penalty parameter 0.1¶
In [31]:
SVM_model_type_5 = SVC(C=0.1).fit(x_train, y_train)
Training Accuracy¶
In [32]:
confusion_matrix(SVM_model_type_5.predict(x_train),y_train)
Out[32]:
In [33]:
SVM_model_type_5_train_acc = (SVM_model_type_5.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_5_train_acc)
Validation Accuracy¶
In [34]:
confusion_matrix(SVM_model_type_5.predict(x_valid1),y_valid1)
Out[34]:
In [35]:
SVM_model_type_5_valid1_acc = (SVM_model_type_5.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_5_valid1_acc)
In [36]:
{"TRAIN_ACC" : SVM_model_type_5_train_acc , "VALID_ACC" : SVM_model_type_5_valid1_acc}
Out[36]:
Fitting SVC with penalty parameter 1¶
In [37]:
SVM_model_type_6 = SVC(C=1).fit(x_train, y_train)
Training Accuracy¶
In [38]:
confusion_matrix(SVM_model_type_6.predict(x_train),y_train)
Out[38]:
In [39]:
SVM_model_type_6_train_acc = (SVM_model_type_6.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_6_train_acc)
Validation Accuracy¶
In [40]:
confusion_matrix(SVM_model_type_6.predict(x_valid1),y_valid1)
Out[40]:
In [41]:
SVM_model_type_6_valid1_acc = (SVM_model_type_6.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_6_valid1_acc)
In [42]:
{"TRAIN_ACC" : SVM_model_type_6_train_acc , "VALID_ACC" : SVM_model_type_6_valid1_acc}
Out[42]:
Fitting SVC with penalty parameter 10¶
In [43]:
SVM_model_type_7 = SVC(C=10).fit(x_train, y_train)
Training Accuracy¶
In [44]:
confusion_matrix(SVM_model_type_7.predict(x_train),y_train)
Out[44]:
In [45]:
SVM_model_type_7_train_acc = (SVM_model_type_7.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_7_train_acc)
Validation Accuracy¶
In [46]:
confusion_matrix(SVM_model_type_7.predict(x_valid1),y_valid1)
Out[46]:
In [47]:
SVM_model_type_7_valid1_acc = (SVM_model_type_7.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_7_valid1_acc)
In [48]:
{"TRAIN_ACC" : SVM_model_type_7_train_acc , "VALID_ACC" : SVM_model_type_7_valid1_acc}
Out[48]:
Fitting SVC with penalty parameter 100¶
In [49]:
SVM_model_type_8 = SVC(C=100).fit(x_train, y_train)
Training Accuracy¶
In [50]:
confusion_matrix(SVM_model_type_8.predict(x_train),y_train)
Out[50]:
In [51]:
SVM_model_type_8_train_acc = (SVM_model_type_8.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_8_train_acc)
Validation Accuracy¶
In [52]:
confusion_matrix(SVM_model_type_8.predict(x_valid1),y_valid1)
Out[52]:
In [53]:
SVM_model_type_8_valid1_acc = (SVM_model_type_8.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_8_valid1_acc)
In [54]:
{"TRAIN_ACC" : SVM_model_type_8_train_acc , "VALID_ACC" : SVM_model_type_8_valid1_acc}
Out[54]:
Fitting SVC with penalty parameter 1000¶
In [55]:
SVM_model_type_9 = SVC(C=1000).fit(x_train, y_train)
Training Accuracy¶
In [56]:
confusion_matrix(SVM_model_type_9.predict(x_train),y_train)
Out[56]:
In [57]:
SVM_model_type_9_train_acc = (SVM_model_type_9.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_9_train_acc)
Validation Accuracy¶
In [58]:
confusion_matrix(SVM_model_type_9.predict(x_valid1),y_valid1)
Out[58]:
In [59]:
SVM_model_type_9_valid1_acc = (SVM_model_type_9.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_9_valid1_acc)
In [60]:
{"TRAIN_ACC" : SVM_model_type_9_train_acc , "VALID_ACC" : SVM_model_type_9_valid1_acc}
Out[60]:
Fitting SVC with penalty parameter 10000¶
In [61]:
SVM_model_type_10 = SVC(C=10000).fit(x_train, y_train)
Training Accuracy¶
In [62]:
confusion_matrix(SVM_model_type_10.predict(x_train),y_train)
Out[62]:
In [63]:
SVM_model_type_10_train_acc = (SVM_model_type_10.predict(x_train) == y_train).mean()
print("TRAINING ACCURACY =",SVM_model_type_10_train_acc)
Validation Accuracy¶
In [64]:
confusion_matrix(SVM_model_type_10.predict(x_valid1),y_valid1)
Out[64]:
In [65]:
SVM_model_type_10_valid1_acc = (SVM_model_type_10.predict(x_valid1) == y_valid1).mean()
print("VALIDATION ACCURACY =",SVM_model_type_10_valid1_acc)
In [66]:
{"TRAIN_ACC" : SVM_model_type_10_train_acc , "VALID_ACC" : SVM_model_type_10_valid1_acc}
Out[66]: