Python与Anaconda安装&&鸢尾花数据集SVM线性分类练习

一、Python与Anaconda安装

这个博客写的很详细,超级推荐

python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解

二、Anaconda简单使用

  1. 打开Anaconda
    在这里插入图片描述

  2. 创建虚拟环境,要等待大概十分钟
    在这里插入图片描述

  3. 在虚拟环境下安装 numpy、pandas、sklearn包
    在这里插入图片描述

  4. 输入conda install numpy,我这里是已经安装好numpy了,所以显示是这样

输入conda install numpy安装有点久,可以换输入pip install numpy试试
pandas、sklearn包同理

在这里插入图片描述

三、Anaconda Jupyter notebook 使用

  1. 安装完成Anaconda后,在同一目录下找到Jupyter notebook点击
    在这里插入图片描述
  2. 启动之后自动弹出的页面
    在这里插入图片描述

如果没有自动弹出:请参考这个博客Jupyter notebook不自动弹出网页

四、鸢尾花数据集SVM线性分类练习

4.1 SVM算法

SVM的全称是Support Vector Machine,即支持向量机,主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。SVM要解决的问题可以用一个经典的二分类问题加以描述。如图1所示,红色和蓝色的二维数据点显然是可以被一条直线分开的,在模式识别领域称为线性可分问题。然而将两类数据点分开的直线显然不止一条。图1(b)和©分别给出了A、B两种不同的分类方案,其中黑色实线为分界线,术语称为“决策面”。每个决策面对应了一个线性分类器。虽然在目前的数据上看,这两个分类器的分类结果是一样的,但如果考虑潜在的其他数据,则两者的分类性能是有差别的。

4.2 鸢尾花数据集的分类可视化及预测
  1. 导入本次实验需要的库
#鸢尾花数据集SVM算法二分类
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, svm
import pandas as pd
from pylab import *
  1. 对各个变量进行赋值
mpl.rcParams['font.sans-serif'] = ['SimHei']
iris = datasets.load_iris()
iris = datasets.load_iris()
X = iris.data                  
y = iris.target                
X = X[y != 0, :2]             # 选择X的前两个特性
y = y[y != 0]
  1. 排列
n_sample = len(X)              
np.random.seed(0)
order = np.random.permutation(n_sample)  # 排列,置换
X = X[order]
y = y[order].astype(np.float)
X_train = X[:int(.9 * n_sample)]
y_train = y[:int(.9 * n_sample)]
X_test = X[int(.9 * n_sample):]
y_test = y[int(.9 * n_sample):]
  1. 运行结果
for fig_num, kernel in enumerate(('linear', 'rbf','poly')):  # 径向基函数 (Radial Basis Function 简称 RBF),常用的是高斯基函数
    clf = svm.SVC(kernel=kernel, gamma=10)   # gamma是“rbf”、“poly”和“sigmoid”的核系数。
    clf.fit(X_train, y_train)
    plt.figure(str(kernel))
    plt.xlabel('x1')
    plt.ylabel('x2')
    plt.scatter(X[:, 0], X[:, 1], c=y, zorder=10, cmap=plt.cm.Paired, edgecolor='k', s=20)
    # zorder: z方向上排列顺序,数值越大,在上方显示
    # paired两个色彩相近输出(paired)
    # 圈出测试数据
    plt.scatter(X_test[:, 0], X_test[:, 1], s=80, facecolors='none',zorder=10, edgecolor='k')
    plt.axis('tight')  #更改 x 和 y 轴限制,以便显示所有数据
    x_min = X[:, 0].min()
    x_max = X[:, 0].max()
    y_min = X[:, 1].min()
    y_max = X[:, 1].max()
    XX, YY = np.mgrid[x_min:x_max:200j, y_min:y_max:200j]   
    Z = clf.decision_function(np.c_[XX.ravel(), YY.ravel()])  # 样本X到分离超平面的距离
    Z = Z.reshape(XX.shape)
    plt.contourf(XX,YY,Z>0,cmap=plt.cm.Paired)  
    plt.contour(XX, YY, Z, colors=['r', 'k', 'b'],
                linestyles=['--', '-', '--'], levels=[-0.5, 0, 0.5])   # 范围
    plt.title(kernel)
plt.show()

在这里插入图片描述
在这里插入图片描述

五、参考资料

基于jupyter notebook的python编程-----机器学习中的线性分类器及相应判定方法(鸢尾花数据集的分类可视化)
基于Jupyter 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析(python)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值