一、配置虚拟环境
这里选用命令行方式创建虚拟环境
- 首先打开cmd,输入命令
conda create -n exam1 python=3.8
exam1 是虚拟环境的文件名,python 版本 3.8
中间记得输入y,如图说明安装成功
- 输入命令进入 exam1 虚拟环境
activate
conda activate exam1
- 进入虚拟环境后,下载实验所需包
pip install numpy -i "https://pypi.doubanio.com/simple/"
pip install pandas -i "https://pypi.doubanio.com/simple/"
pip install sklearn -i "https://pypi.doubanio.com/simple/"
至此,基本环境配置成功
二、支持向量机SVM
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
inearSVC(Linear Support Vector Classification)线性支持向量机,核函数是 linear,不是基于libsvm实现的
参数:
- C:目标函数的惩罚系数C,默认C = 1.0;
- loss:指定损失函数. squared_hinge(默认), squared_hinge
- penalty : 惩罚方式,str类型,l1, l2
- dual :选择算法来解决对偶或原始优化问题。当nsamples>nfeatures时dual=false
- tol :svm结束标准的精度, 默认是 1e - 3
- multi_class:如果y输出类别包含多类,用来确定多类策略, ovr表示一对多,“crammer_singer”优化所有类别的一个共同的目标 。如果选择“crammer_singer”,损失、惩罚和优化将会被被忽略。
- max_iter : 要运行的最大迭代次数。int,默认1000
三、开始实验
(1)打开Jupyter Notebook
之后会弹出一个窗口和网页,如果没有弹出网页,则复制1、2、3中某一项在网页中打开
(2)打开之后如图,创建一个新项目
(2)原始数据
在编辑框内输入如下代码输入如下代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
iris = datasets.load_iris()
X = iris.data
y = iris.target
X = X [y<2,:2] # 只取y<2的类别,也就是0 1 并且只取前两个特征
y = y[y<2] # 只取y<2的类别
# 分别画出类别 0 和 1 的点
plt.scatter(X[y==0,0],X[y==0,1],color='red')
plt.scatter(X[y==1,0],X