Machine learning code
S V M 的 使 用 \color{BLUE}{SVM的使用} SVM的使用
我是机器学习的初学者,最近在师兄的指导下,进行数据的SVM分类,因为对这些问题不是很透彻,为方便自己和大家,我写的尽量详细
首先说明,数据格式data.shape= [5,24,10,10] ,数据共分为5类,每类数据有10个样本数据。
设输入的初始机器学习数为data
(1)导入SVM的相关库
from sklearn import svm
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import GridSearchCV, train_test_split
(2)准备数据标签,我的数据是按照顺序排列的,因此使用以下语句进行
其排列方式为10个0,10个1,10个2,10个3,10个4.
arr1 = np.full(10,0)
arr2 = np.full(10,1)
arr3 = np.full(10,2)
arr4 = np.full(10,3)
arr5 = np.full(10,4)
label = np.concatenate( (arr1, arr2,arr3,arr4,arr5))
(3)将数据分为测试集与训练集,6、4分;并且将数据集归一化
x = data
y = label
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1, train_size=0.6)
scaler = StandardScaler().fit(x_train)
x_train = pd.DataFrame(scaler.transform(x_train))
x_test = pd.DataFrame(scaler.transform(x_test))
(4)使用SVM训练分类器,再在测试数据中对数据进行测试,使用线性核进行分类
clf = svm.SVC(C=0.8, kernel='linear', gamma=20, decision_function_shape='ovr')
clf.fit(x_train, y_train.ravel())
(5)输出SVM分类器的分类准确率
print (clf.score(x_train, y_train) ) # 精度
print (clf.score(x_test, y_test))
(6)效果展示