用Python实现SVM多分类器
- 2019 年 11 月 20 日
- 筆記
项目1 说明
- svm.py 该文件中实现了一个简单的SVM,使用SMO进行优化,在选择优化的变量时采用随机选择的方式。
- plattSMO.py 该文件也是采用SMO进行优化,在选择优化变量时,选择误差步长最大的两个变量进行优化,可以大幅提高优化速度。该文件中还加入了核函数(线性核函数,RBF核函数),具体实现参见 kernelTrans(self,x,z)
- libSVM.py 该文件实现了一个SVM多分类器,其实现原理是:对于样本中的每两个类别之间都训练一个SVM二分类器。对于k个类别, 共可训练出k(k-1)/2个SVM二分类器。在预测时,将测试样例分别输入到k(k-1)/2分类器中。 假设(i,j)表示划分类别i和类别j的SVM分类器 对于每个分类器(i,j): 若分类结果为+1,则count[i] +=1 若分类结果为-1,则count[j] +=1 最后分类结果取相应类别计数最大的那个类别作为最终分类结果 本文件还实现了将训练的模型保存成文件,方便预测时直接从文件读取,省去了再次训练的时间。 ** 例子

项目2
支持向量机(SVM)——分类预测,包括多分类问题,核函数调参,不平衡数据问题,特征降维,网格搜索,管道机制,学习曲线,混淆矩阵,AUC曲线等

项目3
使用SVM算法对短文本分类

提取的特征在文件confing.py
中
