SVM 训练和测试数据的压缩包挺实用的,适合用来验证你自己写的 SVM 代码有没有跑对。里面的数据结构也比较清晰,像testSet.txt
这种文件,一般都是按行给出特征和标签,直接拿来喂模型就行。
支持向量机的原理说白了就是“拉条最宽的线”把两类数据分开。你写好算法后,用这套数据测一下精度,还挺有成就感的。如果你是用 Python 搞的,Scikit-Learn的接口顺手,svm.SVC
或者svm.LinearSVC
都能搞定。
训练和测试数据怎么分?train_test_split
搞定一切。特征、标签分开,再切个 8:2 的比例就可以跑起来了。读取testSet.txt
也不麻烦:
with open('testSet.txt', 'r') as f:
data = [line.strip().split(',') for line in f]
你就可以把数据转成numpy
数组来喂模型:
features, labels = np.array(data)[:, :-1], np.array(data)[:, -1]
跑完模型之后,记得测一下准确率:
accuracy = clf.score(X_test, y_test)
print(f'模型准确率:{accuracy}')
哦对了,想提升性能可以试试调调参数,比如C
值、核函数选项之类的。尤其是遇到非线性数据,用RBF 核更稳。
如果你正好自己写了个 SVM 的实现,或者刚上手机器学习,这个数据集拿来练手再合适不过了。