S3VM和TSVM的不同

S3VM和TSVM的不同

转载:http://ycool.com/post/6vc4vf7

自己总结的一点学习心得,希望了解的人给予补充。

TSVM都是比较早的,后来的一般都叫S3VM。提出的人不一样。
Vapnik, 1998; Joachims, 1999) under the name Transductive Support Vector Machine (TSVM), and in (Bennett & Demiriz, 1998; Fung & Mangasarian,2001) under the name Semi-Supervised Support Vector Machine (S3VM).

A major line of research on extending SVMs to handle partially labeled datasets is based on the following idea: solve the standard SVM problem while treating the unknown labels as additional optimization variables. By maximizing the margin in the presence of unlabeled data, one learns a decision boundary that traverses through low data-density regions while respecting labels in the input space. 
In other words, this approach implements the cluster assumption for semi-supervised learning – that points in a data cluster have similar labels.
This idea was first introduced in [14] under the name Transductive SVM, but since it learns an inductive rule defined over the entire input space, we refer to this approach as Semi-supervised SVM (S3VM).

S3VMs were introduced as Transductive SVMs, originally designed for the task of directly estimating labels of unlabeled points. However S3VMs provide a decision boundary in the entire input space, and so they can provide labels of unseen test points as well. For this reason, we believe that S3VMs are inductive semi-supervised methods and not strictly transductive.

理论上可以证明,对于可分数据。TSVM、S3VM解必定是某种相近度量下相近直推学习机的解,并且它们都是通过控制VC维的上界以达到好的泛化性能的,只是VC维上界的控制函数的取法不同。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TSVM (Tree-based Support Vector Machine) 是一种集成学习方法,结合了决策树和支持向量机的优点。在Python中,我们可以使用sklearn库中的`tree.DecisionTreeClassifier`和`ensemble.RandomForestClassifier`等工具来构建类似的模型,但sklearn并没有直接提供TSVM的模块。 如果你想实现一个类似的功能,通常会通过自定义或者利用第三方库(如xgboost、lightgbm)来实现。例如,XGBoost提供了`GradientBoostingClassifier`,它可以用来训练决策森林,其行为类似于TSVM。 以下是一个简单的示例,展示如何用XGBoost创建一个随机森林,这可以近似TSVM的效果: ```python # 导入所需的库 import xgboost as xgb # 假设我们已经有了数据集 X, y X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # 创建DMatrix对象,这是XGBoost的核心数据结构 dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) # 参数设置,这里仅做简单示例,实际应用可能需要调整 param = { 'max_depth': 3, # 决策树的最大深度 'objective': 'multi:softprob', # 多类别概率输出 'num_class': len(set(y_train)), # 类别数量 } # 训练模型 model = xgb.train(param, dtrain, num_boost_round=100) # 预测并评估 y_pred = model.predict(dtest) ``` 请注意,这只是一个基础示例,实际使用时可能需要更复杂的参数调优以及交叉验证等步骤。如果你想要一个更精确的TSVM实现,可以查阅XGBoost或LightGBM的官方文档,或者搜索相关的研究论文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值