机器学习— 获取数据,绘制图表

作者: 姜康 | 来源:发表于2017-03-20 13:51 被阅读369次

获取数据


用requests,请求网络数据,然后写入csv文件。

import requests
#从远程获取数据
url = "http://aima.cs.berkeley.edu/data/iris.csv"
response = requests.get(url)
#写入文件
local_file = open("iris.csv","w")
local_file.write(response.text)
local_file.close()

从文件中读取数据


from numpy import genfromtxt,zeros
#特征集
data = genfromtxt("iris.csv",delimiter=",",usecols=(0,1,2,3))
#分类标签
labels = genfromtxt("iris.csv",delimiter=",",usecols=(4),dtype=str)

数据为csv格式,以“,”分隔,分别为花萼的长宽,花瓣的长宽。
这里为了便于分析,学习,就叫特征0,1,2,3,最后一列为分类标签,数据格式如下:


数据样式

查看样本数据的维度,标签的种类


#查看矩阵大小,标签种类
print(data.shape)
print(labels.shape)
print(set(labels))

结果:

矩阵大小,标签种类

根据数据开始绘图


这里需要引入package

from pylab import plot,show,figure,subplot,hist,xlim
import matplotlib.pyplot as plt

二维散点图

  • 特征0,特征1
    plot(data[labels=="setosa",0],data[labels=="setosa",1],"bo")
    plot(data[labels=="virginica",0],data[labels=="virginica",1],"ro")
    plot(data[labels=="versicolor",0],data[labels=="versicolor",1],"go")
    show()

结果:

特征0,1

从上图看,好像并不能很好的区分种类。

  • 特征0,2
    plot(data[labels=="setosa",0],data[labels=="setosa",2],"bo")
    plot(data[labels=="virginica",0],data[labels=="virginica",2],"ro")
    plot(data[labels=="versicolor",0],data[labels=="versicolor",2],"go")
    show()

结果:

特征0,2

这个就比较明显了

  • 特征0,3
      plot(data[labels=="setosa",0],data[labels=="setosa",3],"bo")
      plot(data[labels=="virginica",0],data[labels=="virginica",3],"ro")
      plot(data[labels=="versicolor",0],data[labels=="versicolor",3],"go")
      show()
    
结果:

![特征0,3](https://img.haomeiwen.com/i1797187/1ae59f7b1f0f51bd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
同理,可以用其他的特征量来生成二位散点图

####三维散点图
---
- 特征0,2,3

ax = plt.subplot(111,projection="3d")
ax.scatter(data[labels=="setosa",0],data[labels=="setosa",2],data[labels=="setosa",3],c="b")
ax.scatter(data[labels=="virginica",0],data[labels=="virginica",2],data[labels=="virginica",3],c="r")
ax.scatter(data[labels=="versicolor",0],data[labels=="versicolor",2],data[labels=="versicolor",3],c="g")

plt.show()

结果:
  
![特征0,2,3](https://img.haomeiwen.com/i1797187/008f5382e3aad86b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####直方图
---

特征0

subplot(441)
hist(data[labels=="setosa",0],color="b",alpha=0.7)
xlim(xmin0,xmax0)

subplot(445)
hist(data[labels=="virginica",0],color="r",alpha=0.7)
xlim(xmin0,xmax0)

subplot(449)
hist(data[labels=="versicolor",0],color="g",alpha=0.7)
xlim(xmin0,xmax0)

subplot(4,4,13)
hist(data[:,0],color="y",alpha=0.7)
xlim(xmin0,xmax0)

特征1

xmin1 = min(data[:,1])
xmax1 = max(data[:,1])

subplot(442)
hist(data[labels=="setosa",1],color="b",alpha=0.7)
xlim(xmin1,xmax1)

subplot(446)
hist(data[labels=="virginica",1],color="r",alpha=0.7)
xlim(xmin1,xmax1)

subplot(4,4,10)
hist(data[labels=="versicolor",1],color="g",alpha=0.7)
xlim(xmin1,xmax1)

subplot(4,4,14)
hist(data[:,1],color="y",alpha=0.7)
xlim(xmin1,xmax1)

特征2

xmin2 = min(data[:,2])
xmax2 = max(data[:,2])

subplot(443)
hist(data[labels=="setosa",2],color="b",alpha=0.7)
xlim(xmin2,xmax2)

subplot(447)
hist(data[labels=="virginica",2],color="r",alpha=0.7)
xlim(xmin2,xmax2)

subplot(4,4,11)
hist(data[labels=="versicolor",2],color="g",alpha=0.7)
xlim(xmin2,xmax2)

subplot(4,4,15)
hist(data[:,2],color="y",alpha=0.7)
xlim(xmin2,xmax2)

特征3

xmin3 = min(data[:,3])
xmax3 = max(data[:,3])

subplot(444)
hist(data[labels=="setosa",3],color="b",alpha=0.7)
xlim(xmin3,xmax3)

subplot(448)
hist(data[labels=="virginica",3],color="r",alpha=0.7)
xlim(xmin3,xmax3)

subplot(4,4,12)
hist(data[labels=="versicolor",3],color="g",alpha=0.7)
xlim(xmin3,xmax3)

subplot(4,4,16)
hist(data[:,3],color="y",alpha=0.7)
xlim(xmin3,xmax3)

show()

**这里代码为了便于理解,学习,就没进行封装**

![直方图](https://img.haomeiwen.com/i1797187/6a56c0fdb0d8f326.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • 机器学习— 获取数据,绘制图表

    获取数据 用requests,请求网络数据,然后写入csv文件。 从文件中读取数据 数据为csv格式,以“,”分隔...

  • Mac使用VSCode远程调试Linux服务器的可视化输出

    好久不见~废话不多说,上教程。 在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表...

  • 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X

    在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计、绘图的程序常常是跑在...

  • 【机器学习实战】第1章 机器学习基础

    第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息。 获取海量的数据 从海量数据中获取...

  • 【机器学习实战】第1章 机器学习基础

    第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息。 获取海量的数据 从海量数据中获取...

  • Android自定义控件:动态绘制图表

    之前写过一个简单的图表绘制demo:Android图表绘制,但是实际应用中只是简单的绘制数据并不能达到最好的效果。...

  • NNI 博文1

    NNI与其他自动机器学习工具的比较: 根据各个自动学习工具特点绘制以下图表: 由上图所示,NNI相较于其他自动学习...

  • 边际分布曲线图的绘制

    思路和方法,学习重点是数据的筛选拆分、用多个表格的数据绘制分组图表,图层(Layer)的管理。 数据的筛选与拆分 ...

  • Excel是一个集数据处理和图表绘制于一身的优秀软件。运用Excel的“图表向导”来绘制图表也不算麻烦。但是,如果...

  • 100天写机器学习代码

    100天写机器学习代码 Siraj Raval提出的100天机器学习编码 从这里获取数据集 数据预处理| 第1天 ...

网友评论

    本文标题:机器学习— 获取数据,绘制图表

    本文链接:https://www.haomeiwen.com/subject/gnbbnttx.html