手把手教会机器学习(二)——数据可视化

Python机器学习(二)——数据可视化

Python机器学习(一)——特征工程
Python机器学习(三)——回归
数据可视化我们要用到的Matplotlib
我们要引入Matplotlib库,代码一般写作:

import matplotlib.pyplot as plt

1.折线图(Line Chart)

x = [3, 4, 7]
y = [7, 2, 8]
plt.plot(x, y)
#这一步是在绘制折线
plt.show()
#这一步是在展示图形

在这里插入图片描述在上述代码中绘制图线’plt.plot()'这里可以添加一些参数,

plt.plot(a, b, color = 'Red', ls = '--', lw = 4, marker = '2', mew = 3)
#plt.plot()参数

在这里插入图片描述'color’为颜色(可以依次数组输出),'lw’也可以写作’linewidth’为线宽,单位是像素,'ls’也可以写作’linestyle’为线型,'marker’是定义标记,'mew’是定义标记宽度。
为了可以用线形图呈现Y与X的数学函数关系,我们常常会从NumPy库中引入一维数组经行数学运算

import numpy as np
import matplotlib.pyplot as plt

x1 = np.array([1, 2, 3, 4, 5])
y1 = x1**2
plt.plot(x1, y1, color = 'Blue')
y2 = math.exp(x1)
plt.plot(x1,y2, color = 'Red')
plt.plot(y1, y2)
plt.show()

如果你写出的代码与上式相似,会得到下面这样的报错,这个错误在前期也会经常遇到,在这里我们的’x1’是用NumP得到的一个矩阵,我们引用自然对数的时候就要用np.exp()处理而不能使用math.exp(),这涉及到一个匹配的问题。

在这里插入图片描述然后我修改一下代码就得到了我们想要的图形
在这里插入图片描述

2.绘制条形图(Bar Chart)

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [9, 4, 2, 3, 5, 5]
plt.bar(x, y)
plt.show()

在这里插入图片描述其实,你或许已经发现这些图像的绘制过程是类似的,只是绘制过程用到的函数有所区别。

3.散点图(Scatter Plot)

import matplotlib.pyplot as py
import numpy as np

x = np.random.rand(100)
y = np.random.rand(100)
#从[0, 100)中随机生成x, y
plt.scatter(x, y)
plt.show()

在这里插入图片描述

4.直方图(Histograms)

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(10000)
#生成10000个服从正态分布的数据
plt.hist(data, bins = 40, edgecolor = 'black')

plt.show()

在这里插入图片描述

5.饼图(Pie Chart)

pie = [1, 3, 9, 8, 2]
colorsList = ['Red', 'Blue', 'Black', 'Yellow','Grey']
plt.bar(pie, labels = ['A', 'B', 'C', 'D', 'E'], colors = colorsList)
plt.show()

在这里插入图片描述

6.箱线图(Box Plot)

import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(10)
plt.boxplot(data)
plt.show()

在这里插入图片描述

7.分布图(Distplot)

这后面几个图就需要使用到seaborn,Seaborn是基于Matplotlib的Python包,提供了更加专业的统计图形方法。

import seaborn
import numpy
random_num_1 = numpy.random.normal(25, 10, 500).astype(int)
#随机生成数值
seaborn.distplot(random_num_1, bins = 10)

在这里插入图片描述

8.双变量分布(Jointplot)

import seaborn
import numpy
random_num_1 = numpy.random.normal(25, 10, 500).astype(int)
random_num_2 = numpy.random.normal(20, 6, 500).astype(int)
seaborn.jointplot(x = random_num_2, y = random_num_1)

在这里插入图片描述Joinplot()中有一个参数kind,当“kind = ‘kde’”时可以执行内核密度估计,

import seaborn
import numpy
random_num_1 = numpy.random.normal(25, 10, 500).astype(int)
random_num_2 = numpy.random.normal(20, 6, 500).astype(int)
seaborn.jointplot(x = random_num_2, y = random_num_1, kind = "kde")

在这里插入图片描述
成对的双变量分布结果

import pandas
import seaborn
import numpy
random_num_1 = numpy.random.normal(25, 10, 500).astype(int)
random_num_2 = numpy.random.normal(20, 6, 500).astype(int)
random_num_3 = numpy.random.normal(30, 12, 500).astype(int)
data = pandas.DataFrame({"A":random_num_1,"B":random_num_2,"C":random_num_3})
seaborn.pairplot(data)

在这里插入图片描述

9.分类散点图(Categorical Scatterplot)

import pandas
import seaborn
import numpy
random_num_1 = numpy.random.normal(25, 10, 500).astype(int)
random_num_2 = numpy.random.normal(20, 6, 500).astype(int)
random_num_3 = numpy.random.normal(30, 12, 500).astype(int)
data = pandas.DataFrame({"A":random_num_1,"B":random_num_2,"C":random_num_3})

#创建分类数据
data_classify = ["AWM", "98K", "M24"]
data['gun'] = numpy.random.choice(data_classify, 500, p = [0.5, 0.2, 0.3]).tolist()

#创建类变量
data['aim']=numpy.random.choice(['T','F'],
500,p=[0.6, 0.4]).tolist()
seaborn.stripplot(x = 'gun', y='A', data = data, jitter = True)

在这里插入图片描述

10.小提琴图(Violinplots)

seaborn.violinplot(x = 'B', y = 'gun', data = data)

10.点图(Point Plot)

点图可以显示沿轴高度,连接它们的是类变量

seaborn.pointplot(x = 'A', y= 'gun', hue = 'aim', data = data)

在这里插入图片描述以上就是数据可视化的内容,其中还有许多技巧需要的是大家在实践中积累经验,比如如何去添加文字说明【plt.title()可以添加标题、plt.xlabel()和plt.ylabel()可以为x\y轴添加标签】、如何去添加图例【使用plt.legend(loc = ‘upper/lower left’)#设置图例位置为左上/下角,这里要注意:若要添加图例需要在绘制图像时设置标签:plt.plot(x1, y1, label =‘y=x+1’)】、如何去做双坐标轴【plt.teinx()】等等。这些需要在实践中继续探寻,以及结合需求优化数据可视图。
下一章,我们将进入机器学习的算法编程部分,我相信这足以使人激动,而回归(Regression)作为最基础且经典的手法,将会是我们下一章探讨的对象。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ultimo2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值