sklearn.svm
sklearn.svm模块提供支持向量机算法,可用于分类、回归和异常值检测。
• 分类实现有三种方式:
• LinearSVC基于liblinear实现线性SVM
- 比基于libsvm实现的线性SVC/NuSVC更快,
- 同时可采用更多正则选择(L1/L2)和损失函数选择,
- L1正则可以得到特征系数稀疏的效果,
- 适用于样本数更多的情况
• SVC和NuSVC类似,都是基于libsvm实现的C-SVM
二者在参数方面有细微不同( NuSVC有参数nu控制训练误差的上限和支持向量的下限)
• SGDClassifier(不在sklearn.svm模块,在sklearn.linear_model )
实现了基于随机梯度下的线性SVM分类。
回归实现方式同分类类似
• SVM还支持非监督的异常值检测: OneClassSVM
LinearSVC
官方文档: https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html
class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', break_ties=False, random_state=None)
- 支持两种正则:L2正则和L1正则,正则参数为:penalty、C。
- 支持两种损失函数: 标准的合页损失‘hinge’ 和合页损失的平方‘squared_hinge’ 。
- 支持不同类别的样本权重设置:class_weight
方法
fit(X, y[, sample_weight])
模型训练。
参数X, y为训练数据,也可以通过sample_weight设置每个样本权重。
predict(X)
返回X对应的预测值(类别标签)
decision_function(X)
预测的置信度(样本到分类超平面的带符号距离)
score(X, y[, sample_weight])
评估模型预测性能,返回模型预测的正确率。
densify()
如果之前将系数矩阵变成了稀疏模式,再将其变回稠密模式(fit函数的格式)
sparsify()
将系数矩阵变成了稀疏模式