1. SVM支持向量机
SVM的本质依旧是分类器,寻求一个最优的超平面完成分类,可以由若干直线或者曲线完成分类。
1.1用直线分类男生女生与身高体重的关系
主要步骤为:导入样本数据 制作相对应的标签 进行SVM训练 输入测试样本分类识别
实例代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
rand1=np.array([[155,48],[159,50],[164,53],[168,56],[172,60]])
rand2=np.array([[152,53],[156,55],[160,56],[172,64],[176,65]])
#标签
label=np.array([[0],[0],[0],[0],[0],[1],[1],[1],[1],[1]])
#合并数据
data=np.vstack((rand1,rand2))
data=np.array(data,dtype=‘float32’)
#监督学习
#训练
#属性设置
svm=cv2.ml.SVM_create()#创建 机器学习模块 SVM——create
svm.setType(cv2.ml.SVM_C_SVC)#类型
svm.setKernel(cv2.ml.SVM_LINEAR)#内核 线性的
svm.setC(0.01)#与核有关参数
#训练
result=svm.train(data,cv2.ml.ROW_SAMPLE,label)
pt_data=np.vstack([[167,55],[163,57]])#0 女生 1男生
pt_data=np.array(pt_data,dtype=‘float32’)#数据转