Python-机器学习scikit—learn

2021-02-04 14:53:34 浏览数 (1)

python经典的机器学习框架

目前主要聚焦于有监督学习,通过这个框架来实现一些经典的机器学习模型

1:分类:

2:回归

3:聚类

一:支持向量机SVM的实现:

定义:

支持向量机(SVM)是一组用于分类,回归监督学习方法。

支持向量机的优点是:

  1. 在高维空间仍然有效。
  2. 在维度数量大于样本数量的情况下仍然有效。
  3. 在决策函数中使用训练点的子集(称为支持向量),因此它也具有内存效率。
  4. 多功能:可以为决策功能指定不同的内核功能。提供了通用内核,但也可以指定自定义内核。

支持向量机的缺点包括:

  1. 如果特征的数量远远大于样本数量,在选择内核函数时以及正则化将对过拟合产生很大的影响。
  2. SVM不直接提供的概率估计,他需要五重交叉验证。

实现:

SVC,NuSVC和LinearSVC是能够对数据集执行多样分类。

SVC和NuSVC是相似的方法,但接受稍微不同的参数,并具有不同的计算公式。另一方面,LinearSVC是针对线性内核的情况的SVC的另一种实现方法。

与其他分类器一样,SVC,NuSVC和LinearSVC将两个数组作为输入:训练样本的大小为[n_samples,n_features]的数组X以及类标签(字符串或整数)的数组y,size [n_samples]:

最简单的分类实现:

代码语言:javascript复制
#导入svm算法
>>> from sklearn import svm
#这里预测好的数据以np.array形式出现,y是标签,X是用于预测的数据
#具体一点比较好理解
属性1    属性2    分类    
A    0    0    0    
B    1    1    1    
C    2    2    
#这样的话就是已知样本A,样本B的属性以及分类,求样本C的分类
 
>>> X = [[0, 0], [1, 1]]
>>> y = [0, 1]
 
#设置分类器
 
>>> clf = svm.SVC(gamma='scale')
 
#使用数据训练分类器,查看其相关参数(参数是默认值)
 
>>> clf.fit(X, y) 
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
    decision_function_shape='ovr',degree=3, gamma='scale', kernel='rbf',
    max_iter=-1, probability=False,random_state=None, shrinking=True,
    tol=0.001, verbose=False)
 
#使用分类器进行预测
>>> clf.predict([[2., 2.]])
#预测结果为样本C属于1类
array([1])
 
#SVM函数的训练模型取决于训练数据的某些子集,称为支持向量。这些支持向量的一些属性可以在找到support_vectors_,support_和n_support中找到
>>> # 获取支持向量的索引,就是分类标准
In [11]: clf.support_                                                        
Out[11]: array([0, 1], dtype=int32)
>>> #获取支持向量
In [12]: clf.support_vectors_                                                 
Out[12]: 
array([[0.,0.],
      [1., 1.]])
#
In [13]: clf.n_support_                                                      
Out[13]: array([1, 1], dtype=int32)
 
>>> # 获取支持向量>>> clf.support_vectors_
array([[0., 0.],       [1., 1.]])>>> # 获取支持向量的索引>>> clf.support_
array([0, 1]...)>>> # 获取每一类支持向量的数目>>> clf.n_support_
array([1, 1]...)

0 人点赞