from sklearn import svm, datasets
class Dataset:
def __init__(self,name):
self.name=name
def download_data(self):
if self.name=='iris':
self.download_data=datasets.load_iris()
elif self.name=='digits':
self.download_data=datasets.load_digits()
else:
print('Dataset Error: No named datasets')
def generate_xy(self):
self.download_data()
x=self.download_data.data
y=self.download_data.target
print('\nOriginal data looks like this: \n',x)
print('\nLabels looks like this: \n',y)
return x,y
def get_train_test_set(self,ratio):
x,y=self.generate_xy()
n_samples=len(x)
n_train=int(n_samples*ratio)
X_train=x[:n_train]
y_train=y[:n_train]
X_test=x[n_train:]
y_test=y[n_train:]
return X_train,y_train,X_test,y_test
data=Dataset('digits')
X_train,y_train,X_test,y_test=data.get_train_test_set(0.7)
('\nOriginal data looks like this: \n', array([[ 0., 0., 5., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 10., 0., 0.],
[ 0., 0., 0., ..., 16., 9., 0.],
...,
[ 0., 0., 1., ..., 6., 0., 0.],
[ 0., 0., 2., ..., 12., 0., 0.],
[ 0., 0., 10., ..., 12., 1., 0.]]))
('\nLabels looks like this: \n', array([0, 1, 2, ..., 8, 9, 8]))
clf=svm.SVC()
clf.fit(X_train,y_train)
SVC(C=1.0, cache_size=200, class_weight=None, 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=False)
y_predictions=clf.predict(X_test)
k=0
for i in range(len(y_test)):
if y_predictions[i]==y_test[i]:
k+=1
P=float(k)/float(len(y_test))
P
0.37222222222222223