机器学习(一) 数据可视化

前言:

1.开发环境:Anaconda3-5.2.0,点击这里下载所有版本

2.语言:python

机器学习是一个很大的概念,我会的也是其中的沧海一粟,我从基础的开始和大家一起分享一下学习心得。

为什么不先说别的,要先说数据可视化?

从日常工作中,机器学习的成果怎么展示?

有的是润物细无声系列,比如说Facebook的反爬虫策略就使用的机器学习分析用户行为,来判别你是正常的用户还是别人写的代码,你根本就感知不到。

但是很多情况下,机器学习处理后的结果还是需要通过直观的图表展示,当然这里还是对你python基础的再次熟悉。

1. matplotlib

如果想做简单的图形展示,比如说条形图、线图、散点图、直方图这些可以使用应用最广泛的matplotlib库。

因为matplotlib对中文支持不好,因此在开始前,需要安装一种中文字体。我这里添加的是黑体,当然你可以按照你的喜好添加其他中文字体,点击这里下载 (如果在这之前你使用过matplotlib,但是没有使用过中文字体,那么你可以将缓存删除,缓存是在/XX/XX/.matplotlib,将这个缓存文件夹删除。)

将下载好的字体放到/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf这个文件夹中。

这里使用anaconda中的jupyter notebook来进行代码和图表的交互。可以在shell界面,直接输入jupyter notebook就可以打开。

MacBook-Pro:data_analysis duke$ jupyter notebook

如果对jupyter notebook的快捷键不知道如何使用,点击这里

展示某种趋势可以使用线图,例中国从1967年至2017年的GDP,代码如下:

from matplotlib import pyplot as plt
years = [1967,1977,1987,1997,2007,2017]
gdp = [728.82,1749.38,2729.73,9616.04,35521.82,122377.00]
#指定中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']#创建一份线图,x轴是年份,y轴是gdp
plt.plot(years,gdp,color='red',marker='o',linestyle='solid')#添加一个标题
plt.title("中国名义GDP")#给y轴加标记
plt.ylabel("亿美元")
plt.show()

结果如下:

2.1 条形图

展示某些离散的项目的集合的数量变化,可以使用条形图。

2019年奥斯卡金像奖获奖情况

movies = ['绿皮书','罗马','波西米亚狂想曲','宠儿','假若比尔街能说话','黑豹']
num_oscars = [3,3,4,1,1,3]# 条形的默认宽度是0.8,因此我们对左侧坐标加上0.1,这样每个条形就被放置在中心了
xs = [i + 0.1 for i,_ in enumerate(movies)]#使用左侧坐标[xs]和高度[num_oscars]画条形图
plt.bar(xs,num_oscars)plt.ylabel("所获奥斯卡金像奖数量")
plt.title("2019年91届奥斯卡")#使用电影对名字标记x轴,位置在x轴上条形的中心
plt.xticks([i for i,_ in enumerate(movies)],movies)
plt.show()

结果如下:

条形图可以用来绘制拥有大量数值取值的变量直方图。

from collections import Counter           # Counter是一个继承了字典的类
grades = [75,0,62,100,95,89,0,55,73,82,85,77,61]
decile = lambda grade : grade//10 *10
histogram = Counter(decile(grade) for grade in grades)plt.bar([x for x in histogram.keys()],  histogram.values(),               # 给每个条形设置正确的高度8)                                # 每个条形的宽度设置为8plt.axis([-5, 105, 0, 5])                 # x轴取值从-5到105,y轴取值0到5plt.xticks([10 * i for i in range(11)])   # x轴标记为0,10,...,100
plt.ylabel("学生数")
plt.title("考试分数分布图")
plt.show()

结果如下:

plt.bar的第三个参数指定来条形的宽度,在这里我们选择宽度为8。

plt.axis调用x轴的范围是-5~105(使"0"到"100"这些条形可以完全显示。)

plt.xticks调用x轴的刻度放在0、10、20、….、100这些位。

2.2 线图

第一个例子就是简单的线图例子,可以用plt.plot()来制作线图。线图可以清楚的展示某种事物的趋势。

variance = [1,2,4,8,16,32,64,128,256]
bias_squared = [256,128,64,32,16,8,4,2,1]
total_error = [x+y for x,y in zip(variance,bias_squared)]
xs = [i for i,_ in enumerate(variance)]# 可以多次调用plt.plot以便在同一个图上显示多个序列
plt.plot(xs,variance,'g-',label ='variance') # 绿色实线
plt.plot(xs,bias_squared,'r-.',label='bias^2')  #红色点虚线
plt.plot(xs,total_error,'b:',label='total error') # 蓝色点线# 因为已经对每个序列都指派了标记,所以可以自由地布置图例
# loc=9指的是“顶部中央”
plt.legend(loc=9)
plt.xlabel("模型负责度")
plt.title("偏差-方差权衡图")
plt.show()

结果如下:

2.3 散点图

散点图显示成对数据集的可视化关系是比较好的,例如社交软件用户的朋友数和他们每天花在社交软件上的分钟数之间的关系。

friends = [70,65,72,63,71,64,60,64,67]
minutes = [175,170,205,120,220,130,105,145,190]
labels = ['a','b','c','d','e','f','g','h','i']plt.scatter(friends,minutes)#每个点加标记
for label,friend_count,minute_count in zip(labels,friends,minutes):plt.annotate(label,xy=(friend_count,minute_count), # 把标记放在对应的点上xytext=(5,-5),                  # 但要有轻微偏离textcoords='offset points')
plt.title("日分钟数与朋友数")
plt.xlabel("朋友数")
plt.ylabel("花在网站上的日分钟数")
plt.show()

结果如下:

以上对于入门可视化已经够了,接下来就是机器学习中需要用到的数学知识。

机器学习(一) 数据可视化相关推荐

  1. 机器学习PAL数据可视化

    机器学习PAL数据可视化 本文以统计全表信息为例,介绍如何进行数据可视化. 前提条件 完成数据预处理,详情请参见数据预处理. 操作步骤 登录PAI控制台. 在左侧导航栏,选择模型开发和训练 > ...

  2. matlab数据可视化总结,机器学习----Matlab数据可视化总结(plot篇)

    前言 通过资料的整理,使用Matlab语言的plot函数将数据可视化,plota函数也是一个比较常用的二维绘图函数,针对向量或矩阵.如果你也想试一试,初学者记得使用clf.close或close al ...

  3. ML之DataScience:基于机器学习处理数据科学(DataScience)任务(数据分析、特征工程、科学预测等)的简介、流程、案例应用执行详细攻略

    ML之DataScience:基于机器学习处理数据科学(DataScience)任务(数据分析.特征工程.科学预测等)的简介.流程.案例应用执行详细攻略 目录 数据科学的任务(数据分析.特征工程.科学 ...

  4. AI 开发者不容错过的 20 个机器学习和数据科学网站

    作者 | Oleksii Kharkovyna 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 如今,科技界最热门的话题莫过于最先进.最前沿.最令人兴奋的数据科学和机器学习 ...

  5. 数据时代程序员必备技能:数据可视化

    说到数据可视化,大家可谓耳熟能详,设计师.数据分析师.数据科学家等,都用各种方式各种途径做着数据可视化的工作......实际上,我们每一个人,天生具有可视化思维,甚至经常性地做一些可视化操作. 比如, ...

  6. 郑州数字孪生智能工厂,数字工厂智能车间建设,3d可视化工业建模,三维数据可视化交互大屏

    郑州数字孪生智能工厂,数字工厂智能车间建设,3d可视化工业建模,三维数据交互系统开发.在"中国制造2025"大战略背景下,结合和使用新一代信息技术和人工智能技术,实现物理世界和信息 ...

  7. 机器学习第6天:数据可视化神器--Matplotlib

    文章目录 一.Matplotlib简介 二.散点图 第1步:导入数据 第2步:拆分成训练集和测试集 第3步:使用简单线性回归模型来训练训练集 第4步:绘制散点图 二.线图 三.等高线图 第1步:定义一 ...

  8. 机器学习实用指南:如何从数据可视化中发现数据规律?

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 本系列为<Scikit-Learn 和 TensorFlow 机器学习指南>的第四 ...

  9. 数据可视化机器学习工具在线_为什么您不能跳过学习数据可视化

    数据可视化机器学习工具在线 重点 (Top highlight) There's no scarcity of posts online about 'fancy' data topics like ...

最新文章

  1. 一流的管理者,都具备非凡的洞察力
  2. C# 入门经典示例.
  3. [BZOJ]5018: [Snoi2017]英雄联盟 DP
  4. go json数据出现unicode_【Android】OkHttp、Retrofit拿到的json是Unicode,我要的是UTF-8呀...
  5. python列出文件夹所有文件_python列出文件夹下的所有文件的4种方法
  6. cmd无法运行python_通过Java-%1在cmd中运行python文件不是有效的Win32应用程序 - java...
  7. python理论知识选择题_python基础知识练习题(二)
  8. [Python+debug] 设置Python环境变量-Windows10
  9. 辩证法——自然观、自然科学方法论和科学观
  10. 序列化-Kryo的使用详解
  11. CSS3 实现3D特效
  12. 通用流量办什么卡划算?告诉你三大运营商该如何选择?
  13. ASC文件 - CAN报文回放
  14. VUE组件日时分秒倒计时
  15. pytorch 中的torch.bmm
  16. Kubernetes访问报错: No route to host
  17. conda搜索安装包时显示没有匹配No match found for: fastaqc. Search: *fastaqc* PackagesNotFoundError:
  18. Perl中的单行注释和多行注释
  19. x32dbg、x64dbg逆向微信发送信息
  20. 用Python批量修改hex文件的内容

热门文章

  1. html文字冒险游戏,AI文字冒险游戏《AI Dungeon》正式上架
  2. 【Microsoft Office】卸载 Office 365 捆绑软件 Publisher/OneDrive/Outlook/Access
  3. 从0开始学SQL注入(超详细)
  4. 那些年我们踩过的坑,SQL 中的空值陷阱!
  5. RDM6300 125KHz ID卡读卡器
  6. OpenERP库存管理的若干概念讲解(新增库存价值)
  7. 高铁招计算机专业吗,高铁乘务学校招生:对计算机应用技术专业的思考
  8. 明日方舟抽卡模拟器wiki_明日方舟wiki抽卡模拟器安卓手机下载-游戏大玩家
  9. 最小二乘法的拟合原理
  10. 【Windows】DNS优选(挑选最合适的DNS服务器)