SVM model application (1) sklearn simple application of svm

from sklearn import svm, datasets    
class Dataset:            #定义一个类
    def __init__(self,name):
        self.name=name

    def download_data(self):        #确定数据集是iris或digits
        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()# 分类器Classfier采用了svm的经典classification版本
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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325764102&siteId=291194637
svm