使用pyplot中scatter画散点图

使用pyplot中scatter画散点图

        在机器学习任务中,为了更好地训练模型,我们通常会先可视化观察下数据集,比如如果我们的数据集不是线性可分的,那么此时你如果还是使用logistics regression等模型训练出来的效果也不会太好。(ps.多说一句,如果数据集不是线性可分的,一般选择使用神经网络,额。。好吧,绕不开的神经网络,但是三十年河东三十年河西,以后会是什么模型风靡江湖谁也不知道)。绕回正题,这篇博客主要介绍pyplot中的scatter画散点图。先看demo,再细致的讲解。
比如我载入sklearn中自带的乳腺癌数据集,这个数据集的具体情况如下所示(图片截自sklearn官网):

这里写图片描述

        能够看出每个样本共有50个特征,样本的类别是二元分类(0,1),我们只用前两个特征进行示例可视化:

import matplotlib.pyplot as plt
from sklearn import datasets

X_train,y_train = datasets.load_breast_cancer(return_X_y=True)#载入数据集
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, marker = 'o', s=40, cmap=plt.cm.Spectral)#c--color,s--size,marker点的形状
plt.show()

        画出来的图为:

散点图

        下面来看下scatter()这个函数的一些主要的参数(官网API地址: scatter()):
scatter

        具体的含义如下:

参数含义作用
x,y数组,输入数据
ssize,点的大小
ccolor,可以是颜色字符串如‘b’,‘y’,‘r’等,也可以是数组,如果是数组比较复杂,就像我举的这个例子里,c=y_train就是一个数组。如果是数组,就用后面的cmap参数,cmap参数颜色映射,当使用cmap=plt.cm.Spectral时,会自动的根据类别,比如这个例子里是一个二元分类问题,那么这个函数会给label 1一种颜色,label 0设置另一种颜色。同样对于多分类也是如此,下面还会展示一个多类别的图给大家看看。
marker点的形状,默认是’o’,可以设置为’*’,’v’,’+’,’x’等等
alpha标量,范围是(0,1),透明度
linewidths标量,点的边框的宽度
edgecolors点的边框颜色


下面来看一个多类别的图,数据集用鸢尾花数据集,这个数据集详情如下:

莺尾花数据集

代码如下:

import matplotlib.pyplot as plt
from sklearn import datasets

X_train,y_train = datasets.load_iris(return_X_y=True)
print(X_train.shape)
print(y_train.shape)
plt.scatter(X_train[:, 0], X_train[:, 1], c = y_train, marker = 'o', s = 40,cmap = plt.cm.Spectral)
plt.show()

结果如下:

多类别



以上就是pyplot中scatter()画散点图的一些内容。



  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值