티스토리 뷰

FASHION_MNIST_DAY4_with_Python

FASHION 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]:
array([[   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [3994, 3990, 4056, 3929, 4016, 3932, 4005, 4103, 3946, 4029],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.102575

Validation Accuracy

In [10]:
confusion_matrix(SVM_model_type_1.predict(x_valid1),y_valid1)
Out[10]:
array([[   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [1015, 1026,  945, 1012,  995, 1060,  987,  948, 1034,  978],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0]],
      dtype=int64)
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)
VALIDATION ACCURACY = 0.0948
In [12]:
{"TRAIN_ACC" : SVM_model_type_1_train_acc , "VALID_ACC" : SVM_model_type_1_valid1_acc}
Out[12]:
{'TRAIN_ACC': 0.102575, 'VALID_ACC': 0.0948}

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]:
array([[   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [3994, 3990, 4056, 3929, 4016, 3932, 4005, 4103, 3946, 4029],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.102575

Validation Accuracy

In [16]:
confusion_matrix(SVM_model_type_2.predict(x_valid1),y_valid1)
Out[16]:
array([[   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [1015, 1026,  945, 1012,  995, 1060,  987,  948, 1034,  978],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0]],
      dtype=int64)
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)
VALIDATION ACCURACY = 0.0948
In [18]:
{"TRAIN_ACC" : SVM_model_type_2_train_acc , "VALID_ACC" : SVM_model_type_2_valid1_acc}
Out[18]:
{'TRAIN_ACC': 0.102575, 'VALID_ACC': 0.0948}

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]:
array([[   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [2215, 2008, 2214, 1258, 2700,    0, 1758,    0,  196,    3],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [1779, 1982, 1842, 2671, 1316, 3932, 2247, 4103, 3750, 4026],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.157925

Validation Accuracy

In [22]:
confusion_matrix(SVM_model_type_3.predict(x_valid1),y_valid1)
Out[22]:
array([[   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [ 537,  490,  482,  315,  652,    0,  437,    0,   55,    1],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [ 478,  536,  463,  697,  343, 1060,  550,  948,  979,  977],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0,    0]],
      dtype=int64)
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)
VALIDATION ACCURACY = 0.143
In [24]:
{"TRAIN_ACC" : SVM_model_type_3_train_acc , "VALID_ACC" : SVM_model_type_3_valid1_acc}
Out[24]:
{'TRAIN_ACC': 0.157925, 'VALID_ACC': 0.143}

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]:
array([[2925,   64,   34,  134,   10,    1,  801,    0,   11,    0],
       [  11, 3596,    2,   36,    9,    0,    3,    0,    3,    0],
       [  59,   38, 2090,   13,  886,    0,  707,    0,  104,    3],
       [ 448,  213,   37, 3301,  406,    4,  256,    0,  123,    6],
       [  51,   15,  741,  120, 2142,    0,  727,    0,   26,    0],
       [ 296,   23,  318,  151,  136, 3013,  421,  410,  303,  156],
       [ 171,   38,  806,  169,  410,    1, 1023,    0,   67,   17],
       [   2,    0,    1,    0,    0,  691,    3, 3403,  160,  262],
       [  31,    3,   27,    5,   17,   13,   63,    0, 3142,    0],
       [   0,    0,    0,    0,    0,  209,    1,  290,    7, 3585]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.7055

Validation Accuracy

In [28]:
confusion_matrix(SVM_model_type_4.predict(x_valid1),y_valid1)
Out[28]:
array([[742,  18,   7,  37,   4,   0, 201,   0,   3,   0],
       [  2, 921,   0,  15,   6,   0,   3,   0,   1,   0],
       [ 10,  16, 489,   2, 220,   0, 162,   0,  29,   0],
       [135,  51,   9, 873, 103,   3,  60,   0,  33,   1],
       [  6,   5, 161,  26, 501,   0, 207,   0,  13,   0],
       [ 62,   7,  71,  25,  38, 818, 106,  84,  78,  37],
       [ 51,   8, 201,  32, 113,   1, 226,   0,  17,   2],
       [  0,   0,   0,   0,   0, 174,   1, 788,  34,  60],
       [  7,   0,   7,   2,  10,   1,  21,   0, 825,   0],
       [  0,   0,   0,   0,   0,  63,   0,  76,   1, 878]], dtype=int64)
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)
VALIDATION ACCURACY = 0.7061
In [30]:
{"TRAIN_ACC" : SVM_model_type_4_train_acc , "VALID_ACC" : SVM_model_type_4_valid1_acc}
Out[30]:
{'TRAIN_ACC': 0.7055, 'VALID_ACC': 0.7061}

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]:
array([[3212,   21,   40,  152,   12,    0,  872,    0,    7,    2],
       [   4, 3667,    2,   17,    4,    0,    2,    0,    2,    0],
       [  28,   69, 2543,   11,  305,    0,  426,    0,   53,    0],
       [ 424,  208,   37, 3454,  276,    3,  274,    0,   65,    2],
       [  20,    7,  779,  101, 3000,    0,  635,    0,   17,    1],
       [  22,    1,   20,    2,    4, 3438,   24,  365,   98,  120],
       [ 238,   14,  606,  179,  395,    0, 1690,    0,   75,    2],
       [   0,    0,    0,    0,    0,  350,    0, 3450,   30,  223],
       [  44,    3,   29,   13,   20,   16,   81,    3, 3593,    0],
       [   2,    0,    0,    0,    0,  125,    1,  285,    6, 3679]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.79315

Validation Accuracy

In [34]:
confusion_matrix(SVM_model_type_5.predict(x_valid1),y_valid1)
Out[34]:
array([[803,  16,   4,  38,   5,   0, 219,   0,   2,   0],
       [  1, 942,   0,   7,   3,   0,   2,   0,   1,   0],
       [  5,  18, 565,   4,  74,   0, 120,   0,  13,   0],
       [127,  42,   9, 906,  75,   2,  66,   0,  15,   1],
       [  4,   2, 191,  15, 714,   0, 167,   0,   4,   0],
       [  5,   0,   2,   1,   4, 910,   5,  71,  23,  31],
       [ 59,   6, 166,  38, 110,   0, 380,   0,  33,   1],
       [  0,   0,   0,   0,   0, 102,   0, 805,   6,  47],
       [ 11,   0,   8,   3,  10,   3,  28,   1, 936,   0],
       [  0,   0,   0,   0,   0,  43,   0,  71,   1, 898]], dtype=int64)
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)
VALIDATION ACCURACY = 0.7859
In [36]:
{"TRAIN_ACC" : SVM_model_type_5_train_acc , "VALID_ACC" : SVM_model_type_5_valid1_acc}
Out[36]:
{'TRAIN_ACC': 0.79315, 'VALID_ACC': 0.7859}

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]:
array([[3407,   17,   53,  131,    7,    1,  793,    0,    4,    1],
       [   7, 3798,    4,   19,    2,    0,    3,    0,    2,    1],
       [  56,   37, 3061,   40,  307,    0,  451,    0,   26,    0],
       [ 239,  122,   37, 3521,  167,    1,  143,    0,   28,    1],
       [  11,    7,  544,  113, 3212,    0,  377,    0,   13,    0],
       [   3,    0,    2,    0,    1, 3613,    0,  167,   19,   65],
       [ 234,    5,  331,   90,  303,    0, 2179,    0,   58,    0],
       [   0,    0,    0,    0,    0,  229,    0, 3734,   14,  170],
       [  36,    4,   24,   15,   17,   11,   58,    6, 3781,    1],
       [   1,    0,    0,    0,    0,   77,    1,  196,    1, 3790]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.8524

Validation Accuracy

In [40]:
confusion_matrix(SVM_model_type_6.predict(x_valid1),y_valid1)
Out[40]:
array([[869,   6,   8,  37,   4,   1, 198,   0,   4,   0],
       [  1, 977,   0,   8,   2,   0,   2,   0,   1,   0],
       [  7,  13, 719,   8,  73,   0, 123,   0,   6,   0],
       [ 71,  25,  10, 904,  51,   1,  31,   0,   8,   0],
       [  2,   1, 129,  33, 778,   0,  94,   0,   5,   0],
       [  1,   0,   0,   0,   2, 957,   1,  31,   3,  23],
       [ 57,   3,  73,  19,  78,   0, 515,   0,  20,   0],
       [  0,   0,   0,   0,   0,  67,   0, 865,   5,  41],
       [  7,   0,   6,   3,   7,   6,  23,   3, 981,   0],
       [  0,   1,   0,   0,   0,  28,   0,  49,   1, 914]], dtype=int64)
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)
VALIDATION ACCURACY = 0.8479
In [42]:
{"TRAIN_ACC" : SVM_model_type_6_train_acc , "VALID_ACC" : SVM_model_type_6_valid1_acc}
Out[42]:
{'TRAIN_ACC': 0.8524, 'VALID_ACC': 0.8479}

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]:
array([[3492,   11,   57,   93,    5,    0,  527,    0,    6,    0],
       [   6, 3868,    4,   18,    5,    0,    6,    0,    3,    0],
       [  52,    7, 3337,   31,  268,    0,  357,    0,   20,    0],
       [ 141,   92,   40, 3597,  121,    0,  111,    0,   16,    1],
       [   9,    6,  372,  101, 3397,    0,  290,    0,    9,    0],
       [   3,    0,    1,    0,    0, 3763,    0,   84,    5,   35],
       [ 260,    4,  236,   80,  215,    0, 2691,    0,   28,    0],
       [   0,    0,    0,    0,    0,  136,    0, 3908,    8,  108],
       [  30,    2,    9,    9,    5,    7,   22,    4, 3851,    1],
       [   1,    0,    0,    0,    0,   26,    1,  107,    0, 3884]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.8947

Validation Accuracy

In [46]:
confusion_matrix(SVM_model_type_7.predict(x_valid1),y_valid1)
Out[46]:
array([[869,   6,   9,  34,   3,   1, 153,   0,   4,   0],
       [  1, 992,   1,   5,   3,   0,   3,   0,   1,   0],
       [  7,   5, 747,   3,  77,   0, 109,   0,   4,   0],
       [ 50,  19,  15, 913,  45,   0,  24,   0,   8,   0],
       [  0,   0, 100,  35, 794,   0,  73,   0,   5,   0],
       [  0,   0,   0,   0,   0, 995,   0,  17,   1,  17],
       [ 83,   3,  71,  18,  68,   0, 612,   0,  16,   0],
       [  0,   0,   0,   0,   0,  47,   0, 901,   4,  33],
       [  5,   0,   2,   4,   5,   2,  13,   3, 990,   0],
       [  0,   1,   0,   0,   0,  15,   0,  27,   1, 928]], dtype=int64)
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)
VALIDATION ACCURACY = 0.8741
In [48]:
{"TRAIN_ACC" : SVM_model_type_7_train_acc , "VALID_ACC" : SVM_model_type_7_valid1_acc}
Out[48]:
{'TRAIN_ACC': 0.8947, 'VALID_ACC': 0.8741}

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]:
array([[3693,    4,   45,   45,    9,    0,  337,    0,    4,    0],
       [   1, 3945,    3,    7,    2,    0,    3,    0,    0,    0],
       [  24,    0, 3596,   16,  181,    0,  209,    0,    4,    0],
       [  68,   41,   24, 3755,   72,    0,   80,    0,    9,    0],
       [   6,    0,  246,   67, 3641,    0,  168,    0,    1,    0],
       [   0,    0,    0,    0,    0, 3857,    0,   32,    0,    9],
       [ 198,    0,  141,   39,  109,    0, 3204,    0,    4,    0],
       [   0,    0,    0,    0,    0,   68,    0, 4015,    3,   72],
       [   4,    0,    1,    0,    2,    1,    4,    1, 3921,    0],
       [   0,    0,    0,    0,    0,    6,    0,   55,    0, 3948]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.939375

Validation Accuracy

In [52]:
confusion_matrix(SVM_model_type_8.predict(x_valid1),y_valid1)
Out[52]:
array([[ 875,    6,   24,   36,    4,    1,  133,    0,   11,    0],
       [   4, 1000,    1,    8,    3,    0,    2,    0,    0,    0],
       [   7,    1,  769,    8,   77,    0,   98,    0,    5,    0],
       [  34,   15,   12,  915,   39,    0,   23,    0,    9,    0],
       [   1,    0,   83,   26,  799,    0,   73,    0,    6,    0],
       [   0,    0,    0,    0,    0, 1008,    0,   15,    3,    9],
       [  90,    2,   56,   17,   71,    0,  649,    0,   12,    0],
       [   0,    0,    0,    0,    0,   36,    0,  905,    4,   32],
       [   4,    2,    0,    2,    2,    3,    9,    1,  983,    0],
       [   0,    0,    0,    0,    0,   12,    0,   27,    1,  937]],
      dtype=int64)
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)
VALIDATION ACCURACY = 0.884
In [54]:
{"TRAIN_ACC" : SVM_model_type_8_train_acc , "VALID_ACC" : SVM_model_type_8_valid1_acc}
Out[54]:
{'TRAIN_ACC': 0.939375, 'VALID_ACC': 0.884}

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]:
array([[3938,    0,    8,    4,    1,    0,  103,    0,    0,    0],
       [   0, 3988,    0,    0,    0,    0,    0,    0,    0,    0],
       [   1,    0, 3949,    0,   57,    0,   54,    0,    0,    0],
       [  12,    2,    4, 3905,   15,    0,   13,    0,    0,    0],
       [   0,    0,   76,   16, 3919,    0,   32,    0,    0,    0],
       [   0,    0,    0,    0,    0, 3924,    0,    0,    0,    0],
       [  43,    0,   19,    4,   24,    0, 3803,    0,    0,    0],
       [   0,    0,    0,    0,    0,    8,    0, 4095,    0,   18],
       [   0,    0,    0,    0,    0,    0,    0,    0, 3946,    0],
       [   0,    0,    0,    0,    0,    0,    0,    8,    0, 4011]],
      dtype=int64)
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)
TRAINING ACCURACY = 0.98695

Validation Accuracy

In [58]:
confusion_matrix(SVM_model_type_9.predict(x_valid1),y_valid1)
Out[58]:
array([[ 868,    6,   34,   48,    7,    1,  119,    0,   12,    0],
       [   5,  998,    1,   14,    3,    0,    3,    0,    0,    0],
       [  11,    2,  768,   11,   91,    0,   90,    0,    7,    0],
       [  25,   13,   10,  888,   42,    0,   21,    0,    9,    0],
       [   3,    1,   84,   26,  783,    0,   59,    0,    6,    0],
       [   0,    0,    0,    0,    0, 1017,    0,   25,    3,   11],
       [  96,    5,   46,   22,   66,    0,  687,    0,   14,    0],
       [   0,    0,    0,    0,    0,   27,    0,  896,    4,   33],
       [   7,    1,    2,    3,    3,    3,    8,    1,  979,    0],
       [   0,    0,    0,    0,    0,   12,    0,   26,    0,  934]],
      dtype=int64)
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)
VALIDATION ACCURACY = 0.8818
In [60]:
{"TRAIN_ACC" : SVM_model_type_9_train_acc , "VALID_ACC" : SVM_model_type_9_valid1_acc}
Out[60]:
{'TRAIN_ACC': 0.98695, 'VALID_ACC': 0.8818}

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]:
array([[3994,    0,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0, 3990,    0,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0, 4056,    0,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0, 3929,    0,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0, 4016,    0,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0, 3932,    0,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0, 4005,    0,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0, 4103,    0,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0, 3946,    0],
       [   0,    0,    0,    0,    0,    0,    0,    0,    0, 4029]],
      dtype=int64)
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)
TRAINING ACCURACY = 1.0

Validation Accuracy

In [64]:
confusion_matrix(SVM_model_type_10.predict(x_valid1),y_valid1)
Out[64]:
array([[ 853,    5,   33,   50,    9,    1,  109,    0,   14,    0],
       [   4, 1000,    1,   16,    3,    0,    3,    0,    0,    0],
       [  11,    2,  759,   17,  107,    0,  101,    0,    7,    0],
       [  28,   11,   13,  882,   43,    0,   23,    0,    9,    0],
       [   3,    1,   90,   27,  769,    0,   58,    0,    7,    0],
       [   0,    0,    0,    0,    0, 1022,    0,   26,    4,   11],
       [ 109,    6,   47,   17,   61,    0,  685,    0,   11,    0],
       [   0,    0,    0,    0,    0,   23,    0,  886,    3,   33],
       [   7,    1,    2,    3,    3,    3,    8,    1,  979,    0],
       [   0,    0,    0,    0,    0,   11,    0,   35,    0,  934]],
      dtype=int64)
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)
VALIDATION ACCURACY = 0.8769
In [66]:
{"TRAIN_ACC" : SVM_model_type_10_train_acc , "VALID_ACC" : SVM_model_type_10_valid1_acc}
Out[66]:
{'TRAIN_ACC': 1.0, 'VALID_ACC': 0.8769}


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함