读取数据和简单的数据探索(四)

这里我们介绍一下如何从skit-learn自带的数据库总加载数据,结合之前的学习,玩一些数据,进行可视化展示。为我们后面进行机器学习做一些预热。

我们前面已经学习了numpy和matplotlib这两个库,这里我们只需再导入skit-learn,这里我们先不全部都导入,只需要导入他的 数据模块即可

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from sklearn import datasets

其实在datasets里面包含了很多的数据
datasets
这里我们先对其中的鸢尾花数据进行分析
我们首先获取数据

iris = datasets.load_iris()

现在iris中保存的就是鸢尾花的所有数据,但是其实我们现在获取到的数据是skit-learn已经封装好的一个鸢尾花的数据,他将数据做成了字典,我们可以看看他都分了哪些。

iris.keys()
Out[7]: dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])

[data’, ‘target’, ‘target_names’, ‘DESCR’, ‘feature_names’, ‘filename’]
数据 数据对应的标签 标签的名称 对数据的描述 特征

这里为了更好的理解数据,我们可以通过print(iris.DESCR) 查看数据的说明文档

print(iris.DESCR)

.. _iris_dataset:
Iris plants dataset
--------------------
**Data Set Characteristics:**
    :Number of Instances: 150 (50 in each of three classes)数量
    :Number of Attributes: 4 numeric, predictive attributes and the class特征数量
    :Attribute Information:特征
        - sepal length in cm
        - sepal width in cm
        - petal length in cm
        - petal width in cm
        - class:种类
                - Iris-Setosa
                - Iris-Versicolour
                - Iris-Virginica
                
    :Summary Statistics:
    ============== ==== ==== ======= ===== ====================
                    Min  Max   Mean    SD   Class Correlation
    ============== ==== ==== ======= ===== ====================
    sepal length:   4.3  7.9   5.84   0.83    0.7826
    sepal width:    2.0  4.4   3.05   0.43   -0.4194
    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)
    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)
    ============== ==== ==== ======= ===== ====================
    

要想查看具体的值,我们可以通过变量直接分别获取到具体的,大家可以看看,认识一下数据

iris.data
iris.data.shape
iris.target
iris.target_names
iris.feature_names

下面为了更加直观的看懂数据,我们可以先对数据进行一个可视化
我们知道要使用matplotlib绘制时候,需要二维的坐标,所以我们先对数据进行一个处理

X=iris.data[:,:2]
X.shape
Out[18]: (150, 2)
plt.scatter(X[:,0],X[:,1])
plt.show()

在这里插入图片描述
虽然所有的点都展示在图上了,但是我们并不知道哪些点属于同一类。那么怎么区分这些点属于哪一类鸢尾花呢?我们知道在数据中有target这个标签。是对数据已经划分好了结果。我们需要将这个数据利用起来

y=iris.target
plt.scatter(X[y==0,0],X[y==0,1],color='red')
plt.scatter(X[y==1,0],X[y==1,1],color='blue')
plt.scatter(X[y==2,0],X[y==2,1],color='green')
plt.show()

在这里插入图片描述
可以看到,我们使用faceindex的方式对数据进行了一个区分,将不同的花区分开来。我们再对点的样式进行一下设置,通过设置marker达到目的

plt.scatter(X[y==0,0],X[y==0,1],color='red',marker='o')
plt.scatter(X[y==1,0],X[y==1,1],color='blue',marker='+')
plt.scatter(X[y==2,0],X[y==2,1],color='green',marker='*')
plt.show()

在这里插入图片描述
这样我们就实现了不同的类别使用不同的颜色和不用的样式进行表示。散点的样式选择,大家可以查阅官方文档。

现在我们其实是对数据中的前两个特征进行绘制,就是萼片的长度和宽度。从图上来看,我们可以发现,其中一类是很明显自成一类,但是另外的两类却不太容易区分,交叉的数据挺多的。如果我们另外两个特征进行展示回是如何呢?

X = iris.data[:,2:]  取后两列
plt.scatter(X[y==0,0],X[y==0,1],color='red',marker='o')
plt.scatter(X[y==1,0],X[y==1,1],color='blue',marker='+')
plt.scatter(X[y==2,0],X[y==2,1],color='green',marker='*')
plt.show()

在这里插入图片描述
我们可以看到第一类依旧容易区分,但是对二三类也可以看到区别。

到这里我们也就完成了学习。
大家准备开始学习机器学习算法吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值