关于SVM的一点思考

关于SVM的一点思考

  1. 抛出问题

    由于对单个传感器采集到的数据进行特征提取并进行分类时候,通常分类结果是不太好的;或者对某一旋转机械加载多个传感器(在多个维度上)进行数据采集。那么这个时候就引用了DS证据理论。而在使用DS证据理论过程中,需要构建识别框架中N个独立的基本概率分配。这里详细的看下图的解释吧
    在这里插入图片描述

  2. 相关知识

    由公式(4-4)可知,基本概率分配BPA之和为1,那么这个在监督学习中是怎么实现了呢,我们先来看一下SVM的相关参数。

from sklearn import svm
sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=None,random_state=None)

我们接下来看主要的几个参数(这也是我们需要掌握的)

  • C: 惩罚参数,默认值为1.0 (C值越小,对误分类的惩罚减少,允许容错,将他们变成噪声点,泛化能力较强)
  • probability: 是否采用概率估计,默认为False 。 如果决定是否启用概率估计,需要在训练fit()模型时加上这个参数,之后才能用相关的参数:predict_proba和predict_log_proba
  • decision_function_shape:‘ovo’, ‘ovr’ or None, default=None3
  1. 示例展示
    这里使用的是Scikits-learn内部集成的手写体数字图片数据集
## 支持向量机SVM
#  Scikit-learn内部集成的手写体数字图片数据集
from sklearn.datasets import load_digits
digits = load_digits()

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size = 0.25, random_state = 33)

#数据标准化
from sklearn.preprocessing import StandardScaler

ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)

# 使用SVM进行训练
from sklearn import svm
clf_svm = svm.SVC(C=0.8, #惩罚参数
                  decision_function_shape='ovo', #
                  probability = True) #是否采用概率估计,默认是None
clf_svm.fit(X_train, y_train)
probability_svm = clf_svm.predict_proba(X_test) 
print(probability_svm)

在这里插入图片描述
看到上面的结果,每行的总和为1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值