##支持向量机
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn import svm
#1.导入数据
#data = pd.read_csv(’’)
#2.数据预处理
#略,最终生成x_train,y_train,x_test
#此处导入鸢尾花数据
x_train, y_train = load_iris(return_X_y=True)
#3.模型训练
clf = svm.SVC(C=1, kernel=“rbf”, class_weight = ‘balanced’, decision_function_shape =‘ovo’, cache_size = 1000)
clf.fit(x_train, y_train)
#4.模型预测
x_test = x_train[:2, :]
y_predict = clf.predict(x_test)
print(y_predict)
#参数列表与调参方法
svm.SVC(C = 1.0,kernel =‘rbf’,degree = 3,gamma =‘auto_deprecated’,coef0 = 0.0,
shrinking = True,probability = False,tol = 0.001,cache_size = 200,
class_weight = balanced,verbose = False,max_iter = -1,decision_function_shape =‘ovo’,random_state =None)
#C:惩罚系数,默认1
#kernel:核函数,默认’rbf’高斯核,可选’linear’,‘poly’,‘rbf’,‘sigmoid’,‘precomputed’
#degree:‘poly’核的次数,其他核不用
#gamma:‘rbf’,‘poly’和’sigmoid’的核系数。默认值为’auto’,它使用1 / n_features,0.22版本中将会改为’scale’。
#coef0:核函数中的独立项。它只在’poly’和’sigmoid’中很重要
#shrinking:是否使用收缩启发式。默认True
#probability:是否启用概率估计。必须在调用之前启用它fit,并且会减慢该方法的速度。默认False
#tol:停止标准,默认1e-3
#cache_size:缓存大小,默认200
#class_weight:样本权重,处理类别不均衡,默认为None,可选’balanced’
#verbose:启用详细输出。请注意,此设置利用libsvm中的每进程运行时设置,如果启用,则可能无法在多线程上下文中正常运行。默认False
#max_iter:最大迭代次数,默认-1无限制
#decision_function_shape:分类决策,可选’ovo’或’ovr’,‘ovo’:精确,慢,‘ovr’:快
#random_state:随机种子,不同的随机种子结果不同,默认None,随机生成