In [11]:
#importing scikit-learn datasets and svm packages
import pandas
import numpy as np
from pandas.tools.plotting import scatter_matrix
import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split

#reading Zoo Dataset from csv file
zoo = r'C:\Users\priyu\Machine-Learning\zoo-animal-classification\zoo.csv'
training_set = pandas.read_csv(zoo,index_col = False)
zoo_data_df = training_set[['hair','feathers','eggs','milk','airborne','aquatic','predator','toothed','backbone','breathes','venomous','fins','legs','tail','domestic','catsize']]
zoo_target_df = training_set[['class_type']]
zoo_target = zoo_target_df.values
zoo_data = zoo_data_df.values

In [12]:
validation_size = 0.20
seed = 7
X_train, X_validation, Y_train, Y_validation = train_test_split(zoo_data, zoo_target, test_size=validation_size, random_state=seed)

In [13]:
y = Y_train.ravel()
Y_train = np.array(y).astype(int)

In [14]:
# Test options and evaluation metric
num_folds = 10
num_instances = len(X_train)
seed = 7
scoring = 'accuracy'

In [26]:
model = SVC(C=5.0,class_weight='balanced',verbose=True)
results = []
names = []
kfold = cross_validation.KFold(n=num_instances, n_folds=num_folds, random_state=seed)
cv_results = cross_validation.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)
results.append(cv_results)
#names.append(name)
msg = "%s: %f (%f)" % ('SVM', cv_results.mean(), cv_results.std())
print(msg)
print(cv_results)


[LibSVM][LibSVM][LibSVM][LibSVM][LibSVM][LibSVM][LibSVM][LibSVM][LibSVM][LibSVM]SVM: 0.975000 (0.050000)
[ 1.     1.     1.     1.     0.875  1.     1.     1.     0.875  1.   ]

In [19]:
model.fit(X_train,Y_train)


[LibSVM]
Out[19]:
SVC(C=5.0, cache_size=200, class_weight='balanced', coef0=0.0,
  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
  max_iter=-1, probability=False, random_state=None, shrinking=True,
  tol=0.001, verbose=True)

In [20]:
model.decision_function(X_train)


C:\Users\priyu\Anaconda3\lib\site-packages\sklearn\svm\base.py:552: ChangedBehaviorWarning: The decision_function_shape default value will change from 'ovo' to 'ovr' in 0.19. This will change the shape of the decision function returned by SVC.
  "SVC.", ChangedBehaviorWarning)
Out[20]:
array([[ 0.31759226, -0.7557874 , -1.00018037, ...,  0.58150862,
        -0.61350215, -1.12213627],
       [ 1.15993866,  0.99979543,  1.10432661, ...,  0.47882185,
         0.42997832, -0.02144245],
       [ 0.45673137, -0.68274122,  0.59885814, ..., -0.11157142,
        -1.00014176, -0.99957053],
       ..., 
       [ 0.30429269, -0.68703076,  0.6649226 , ...,  1.00061513,
         0.99994922, -0.4758221 ],
       [ 1.12996095,  0.99966974,  1.06214243, ...,  0.4325858 ,
         0.36337669, -0.26919996],
       [ 1.18442324,  1.00019538,  1.1289054 , ...,  0.48612368,
         0.42852275, -0.25623127]])

In [21]:
model.get_params()


Out[21]:
{'C': 5.0,
 'cache_size': 200,
 'class_weight': 'balanced',
 'coef0': 0.0,
 'decision_function_shape': None,
 'degree': 3,
 'gamma': 'auto',
 'kernel': 'rbf',
 'max_iter': -1,
 'probability': False,
 'random_state': None,
 'shrinking': True,
 'tol': 0.001,
 'verbose': True}

In [24]:
model.predict(X_train)


Out[24]:
array([4, 1, 7, 1, 1, 6, 6, 1, 6, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 3, 2, 4, 2,
       2, 1, 3, 1, 1, 3, 1, 1, 2, 7, 1, 1, 7, 2, 1, 1, 3, 1, 7, 1, 4, 3, 4,
       1, 4, 7, 2, 6, 2, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 4, 1, 7, 6, 4, 6, 5,
       7, 2, 7, 2, 4, 2, 2, 1, 5, 1, 1])

In [25]:
model.score(X_train,Y_train)


Out[25]:
1.0