machine-learning - 一类 SVM 无法对训练集进行分类
问题描述
我目前正在开展一个项目,将时间序列的窗口分类为 OCSVM 的大纲/内联。在进行一些测试时,我偶然发现了以下问题/问题:
>>> from sklearn import svm
>>> train = [(0,0,0),(0,0,1),(1,1,1)]
...
>>> clf = svm.OneClassSVM()
...
>>> clf.fit(train)
OneClassSVM(cache_size=200, coef0=0.0, degree=3, gamma='auto', kernel='rbf',
max_iter=-1, nu=0.5, random_state=None, shrinking=True, tol=0.001,
verbose=False)
>>> clf.predict(train)
array([-1, -1, 1])
为什么分类器在这里失败?-1 表示大纲...但我预测训练集?所以一切都应该是1(内联)。
我想念什么?有任何想法吗?
此致
解决方案
查看文档,似乎nu
默认为 0.5 的参数给出了训练错误和支持向量的界限,并且由于 0.5*3(训练示例)为 1.5,因此训练继续进行,直到有一个或两个示例正确分类。
调整nu
值应该可以帮助您分类更多点,但您可能会面临过度拟合的风险。
推荐阅读
- javascript - 无法通过密钥(Firestore)获取数据
- python - 1行布尔函数python
- python - 使用 Docker 在 Flask 中部署 SpaCY 应用程序
- regex - 设置 $/="\R" 是否允许 chomp() 正确处理 perl 中的大多数文件?
- python-3.x - 如何用python3做数学难题?
- odoo - 如何在odoo 9中创建选择字段
- appium - Appium-XCUITest-Driver 和 appium-dotnet-driver 有什么区别?
- typescript - 为什么某些 npm 库(例如 Facebook SDK)的 TypeScript 类型定义没有导出?
- traefik - 在 HTTPS 重定向之前,您如何让 traefik 处理 HTTP 重定向?
- node.js - 预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权。(节点,反应,axios)