1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. from sklearn import datasets, linear_model,svm
  5. from sklearn.model_selection import train_test_split
  6.  
  7. def load_data_classfication():
  8. '''
  9. 加载用于分类问题的数据集
  10. '''
  11. # 使用 scikit-learn 自带的 iris 数据集
  12. iris=datasets.load_iris()
  13. X_train=iris.data
  14. y_train=iris.target
  15. # 分层采样拆分成训练集和测试集,测试集大小为原始数据集大小的 1/4
  16. return train_test_split(X_train, y_train,test_size=0.25,random_state=0,stratify=y_train)
  17.  
  18. #支持向量机线性分类LinearSVC模型
  19. def test_LinearSVC(*data):
  20. X_train,X_test,y_train,y_test=data
  21. cls=svm.LinearSVC()
  22. cls.fit(X_train,y_train)
  23. print('Coefficients:%s, intercept %s'%(cls.coef_,cls.intercept_))
  24. print('Score: %.2f' % cls.score(X_test, y_test))
  25.  
  26. # 生成用于分类的数据集
  27. X_train,X_test,y_train,y_test=load_data_classfication()
  28. # 调用 test_LinearSVC
  29. test_LinearSVC(X_train,X_test,y_train,y_test)

  1. def test_LinearSVC_loss(*data):
  2. '''
  3. 测试 LinearSVC 的预测性能随损失函数的影响
  4. '''
  5. X_train,X_test,y_train,y_test=data
  6. losses=['hinge','squared_hinge']
  7. for loss in losses:
  8. cls=svm.LinearSVC(loss=loss)
  9. cls.fit(X_train,y_train)
  10. print("Loss:%s"%loss)
  11. print('Coefficients:%s, intercept %s'%(cls.coef_,cls.intercept_))
  12. print('Score: %.2f' % cls.score(X_test, y_test))
  13.  
  14. # 调用 test_LinearSVC_loss
  15. test_LinearSVC_loss(X_train,X_test,y_train,y_test)

  1. def test_LinearSVC_L12(*data):
  2. '''
  3. 测试 LinearSVC 的预测性能随正则化形式的影响
  4. '''
  5. X_train,X_test,y_train,y_test=data
  6. L12=['l1','l2']
  7. for p in L12:
  8. cls=svm.LinearSVC(penalty=p,dual=False)
  9. cls.fit(X_train,y_train)
  10. print("penalty:%s"%p)
  11. print('Coefficients:%s, intercept %s'%(cls.coef_,cls.intercept_))
  12. print('Score: %.2f' % cls.score(X_test, y_test))
  13.  
  14. # 调用 test_LinearSVC_L12
  15. test_LinearSVC_L12(X_train,X_test,y_train,y_test)

  1. def test_LinearSVC_C(*data):
  2. '''
  3. 测试 LinearSVC 的预测性能随参数 C 的影响
  4. '''
  5. X_train,X_test,y_train,y_test=data
  6. Cs=np.logspace(-2,1)
  7. train_scores=[]
  8. test_scores=[]
  9. for C in Cs:
  10. cls=svm.LinearSVC(C=C)
  11. cls.fit(X_train,y_train)
  12. train_scores.append(cls.score(X_train,y_train))
  13. test_scores.append(cls.score(X_test,y_test))
  14.  
  15. ## 绘图
  16. fig=plt.figure()
  17. ax=fig.add_subplot(1,1,1)
  18. ax.plot(Cs,train_scores,label="Traing score")
  19. ax.plot(Cs,test_scores,label="Testing score")
  20. ax.set_xlabel(r"C")
  21. ax.set_ylabel(r"score")
  22. ax.set_xscale('log')
  23. ax.set_title("LinearSVC")
  24. ax.legend(loc='best')
  25. plt.show()
  26.  
  27. # 调用 test_LinearSVC_C
  28. test_LinearSVC_C(X_train,X_test,y_train,y_test)

吴裕雄 python 机器学习——支持向量机线性分类LinearSVC模型的更多相关文章

  1. 吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

  2. 吴裕雄 python 机器学习——支持向量机非线性回归SVR模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

  3. 吴裕雄 python 机器学习——支持向量机线性回归SVR模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

  4. 吴裕雄 python 机器学习——局部线性嵌入LLE降维模型

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...

  5. 吴裕雄 python 机器学习——数据预处理流水线Pipeline模型

    from sklearn.svm import LinearSVC from sklearn.pipeline import Pipeline from sklearn import neighbor ...

  6. 吴裕雄 python 机器学习——K均值聚类KMeans模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import cluster from sklearn.metrics ...

  7. 吴裕雄 python 机器学习——混合高斯聚类GMM模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import mixture from sklearn.metrics ...

  8. 吴裕雄 python 机器学习——超大规模数据集降维IncrementalPCA模型

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...

  9. 吴裕雄 python 机器学习——数据预处理正则化Normalizer模型

    from sklearn.preprocessing import Normalizer #数据预处理正则化Normalizer模型 def test_Normalizer(): X=[[1,2,3, ...

随机推荐

  1. 10.3 c++ STL 初步

    #include<Windows.h>#include<iostream>#include<algorithm>  // sort  swap   min   ma ...

  2. 记录 Docker 的学习过程 (单机编排)

    容器的编排 什么是容器的编排?就是让容器有序的启动并在启动的过程加以控制 docker-compose -f bainpaiwenjian.yul up 如果编排文件为默认名称docker-compo ...

  3. 微信小程序自定义顶部导航

    注释:自定义导航需要自备相应图片 一.设置自定义顶部导航 Navigation是小程序的顶部导航组件,当页面配置navigationStyle设置为custom的时候可以使用此组件替代原生导航栏. 1 ...

  4. nginx 部署php项目 404

    服务器重启了一下 然后访问程序报错404的情况 文件存在位置没有问题 niginx配置根目录没有问题 最后检查到端口的时候发现php-fpm的9000端口未打开 service php-fpm res ...

  5. redis string类型 增删改查

    string一.设置 1.设置一个键值对时,如果该键已存在,那么就成了updata (key:value) 例: set name jiang 访问值:get name 2.设置值过期时间:setex ...

  6. eureka server 单节点与多节点部署演示

    环境搭建 目录结构(ad-eureka为子模块) --ad-spring-cloud --ad-eureka --pom.xml --pom.xml 主pom.xml <?xml version ...

  7. STL-priority_queue H - 看病要排队

    H - 看病要排队 看病要排队这个是地球人都知道的常识.不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的人病情有轻重,所以不能 ...

  8. 3ds Max File Format (Part 2: The first inner structures; DllDirectory, ClassDirectory3)

    Now that we understand the outer structure of the file, it's time to look closer to what's inside. T ...

  9. [一本通学习笔记] RMQ专题

    傻傻地敲了好多遍ST表. 10119. 「一本通 4.2 例 1」数列区间最大值 #include <bits/stdc++.h> using namespace std; const i ...

  10. MFC对话框常用操作文章收藏

    1.改变控件文本 参考链接:https://blog.csdn.net/active2489595970/article/details/88856235 所有控件的文本都可以用这种方式动态改变. 2 ...