selfteaching-learning-notes / selfteaching-learning-notes.github.io

自学营学员学习笔记
https://selfteaching-learning-notes.github.io
15 stars 83 forks source link

1901050017-自学数据营-每日学习体会 #63

Open kagamiqyah opened 5 years ago

kagamiqyah commented 5 years ago

学员信息

学习笔记

学习心得:

作业的前半部分,是自行查找数据分析所需要的一些统计学知识。不论是看khanacademy的教学视频还是在wikipedia,Google自行查找相关知识,在实际执行的过程中我渐渐明白了这种布置作业的的好处:概念随着反复搜索,不断地加深印象和巩固。

无论是选择wikipedia去了解概念还是选择khanaacademy观看视频,我都会选择英文界面读,虽然这无形中拉长了完成作业时间,但好处确实显而易见:都是一手资料,英文wikipedia是不断更新的,扩充知识比中文多;在khanacademy网站上看比网易公开课收录的版本要更全,而且还有练习题帮助巩固概念;毕竟统计学这些知识,英文版本是一手资料,随着以后需要学的知识越来越多,早早地完成全英文阅读比较好。

屏幕快照 2019-08-03 上午11.43.44

屏幕快照 2019-08-03 上午11.44.12

目前,我已查找补充完10个统计学概念,并看完了相关视频。接下来是学会使用tableau的部分了

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 01

学习天数:002

学习时间:5小时

学习心得

学习体会:

查找汇总统计学知识

用flowchart把概念串起来

在全部查找完时,我还是一知半解,于是我决定再去看一遍wikepedia和khanacademy。

忽然看到网页最下方的分类,这才意识到视频里总说起的central tendency和dispersion,原来是这次作业的两大阵营啊。这个时候做个思维导图应该最容易把脑子里的知识串起来了。想起来就得动,去google如何在typora上做思维导图,研究了一会,做出来了,于是技能包里又多了一个mermaid语句包。 屏幕快照 2019-08-04 上午2.16.02

Snip20160816_4

LR是从左到右

TD是自上向下

[],(),(()),{}分别会显示节点形状

| |: 360截图20180101093806706.jpg

A-->B: 360截图20180101093806706.jpg

A==>B: 360截图20180101093806706.jpg

以后有机会再深究typora

用箱型图把中位数、全距、极值、四分位数串起来

作业当中要求写每个概念的应用场景,上面这四个明显都会应用在同一种场景里,经常结伴出现,而随着研究地深入,无论是网页还是视频,都会出现箱型图box plot这个概念。我绕过了一次,但心里总是不舒服,于是决定延长作业时间,把它研究出来。现在khanacademy把视频看完,练习做完,然后试着用matplot把箱型图展现出来,又一次“赶鸭子上架”,于是把box plot语句的写法研究了半天,最后终于调试成功,这些统计学概念在这一次次的知识汇总中总算熟悉了。 Figure_1

使用tableau prep和 desktop

tableau是新工具,打开初期,又一次感受到了紧张的感觉,于是我一边仔细的 看视频,一边小心翼翼地点击按钮,脑子里总是提醒自己要一字不差地阅读 ,在“聚合”,“流程”,“清理”,“移除”等等这些陌生字眼中我完成了入门练习,算是有惊无险吧,学习新知识,总也改不了紧张的毛病。

紧接着开始尝试完成tableau prep的作业。

作业要求并没有像入门指南里把使用者当小学生一样很详细地标识每一步骤,而是非常简单明了地给予指示。抱着只字不差地阅读方针,一次完成任务。过程里后背一直在冒汗。。。。。 屏幕快照 2019-08-04 上午1.26.59 到了tableau desktop这步卡壳了,两个轴无法合并,已经一个小时了。一会问教练,我现在得去健身房了,昨天就在奋战,忘了去。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 01

学习天数:003

学习时间:3小时

学习心得:

作业终于完成了,心情放松不少。

在tableau desktop,条形图📊部分卡壳:

  1. 不会双轴合并。在教练的帮助下,右键选择,点击完成。

  2. 仔细和作业示例图比较,发现很多细节都没完成,于是开始按照作业示例图匹配,难点真不少。 屏幕快照 2019-08-04 下午11.47.27

上面图里用红色画的线都是比较之后发现的:

好多小细节不检查不知道,检查了以后更不知道。只有踏下心来看资料,一步步解锁。

p.s.做完作业,仔细看了条形图,自从有了期货市场,btc的交易量增长真快呀。

小总结:

统计学真是一门好玩的学科,掌握这些概念的人简直是能对数据玩弄于股掌之中,让它无论如何都能按照自己的利益显示出来。

无论是统计学的概念还是tableau这种图表工具,都是为了把数据提炼出来,为己所用,那么怎么用,用在哪是关键。看到群里同学写出的应用场景,觉得好玩极了,我得向他们多学习,多想想。

keqi-jj commented 5 years ago

看得到学习过程当中思考的过程,而且把知识串起来,这个思路很好!

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 02

学习天数:004

学习时间:3小时

学习心得:

​ 教练发邮件说01作业还有一些不完善的地方,需要修改一下。屏幕快照 2019-08-05 下午10.27.40

​ 季度在筛选器里只需留一个;黄框标题去掉。

​ 改完以后就正式进入exercise02的学习了。

了解tableau的关键基础知识

李笑来老师说过一个概念:最少必要知识

学任何东西,想要“速成”从来都是妄想。但是,用来起步的那一点“最少必要知识”不仅是可以迅速获得的,也是必须迅速获得的。

“最少必要知识”起码要包括“阅读能力”。

“如何使用Google。”

锁定“最少必要知识”,是一种能力,它可被习得,可被锻炼。

那么这次的tableau肯定也是有这种知识的,阅读并习得以后,就可以快速展开工作了。当然阅读指的是快速通读一遍以后,只字不差地阅读。 那么tableau desk里有什么关键基础知识呢,在学习文档里都已经列了出来。说了那么多,其实第一遍‘速读’的时候,由于很多名词眼生,我的注意力一直想要溜走,费劲留住以后,终于来到了第二遍‘认真阅读’。在这次阅读时,我在想,把它全且当成Excel吧,所有的操作也都是如何运用数据的,同时搭配统计工具来展现出我想要呈现出来的,正如tableau官方文档里所说:

此过程可能会按您认为有用的方向形成视图,或者您可能更愿意转向不同的方向 — 例如,通过向视图中添加时间维度,或者通过引入趋势线或预测。一切都由您决定。

类比成Excel后,瞬间能看进去了,虽然还是对有些名词搞不懂,但至少能沉浸进去了。况且官方档案很贴心地会在一堆概念说明后,附上操作案例,按照步骤,实际操作起来会明白很多。无论是散点图的制作还是快速表创建,都会对概念更了解一些。

创建表

屏幕快照 2019-08-05 下午10.01.21

散点图制作

屏幕快照 2019-08-05 下午10.12.08

解聚

屏幕快照 2019-08-05 下午10.13.41

快速表创建

屏幕快照 2019-08-05 下午10.24.10

熟悉了关键基础知识,明天就可以进行作业的第二部分了。

十分期待。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 02

学习天数:005

学习时间:4小时

学习心得:

为什么使用tableau?

白皮书上写到:

使数据囿于孤立、静态的图形中,会限制您能够回答的问题数量。让数据把来龙去脉娓娓道来,成为决策的核心所在。把相关图表结合起来。添加地图。设置筛选条件向更深层次挖掘。结果如何?以风驰电掣的速度获得商业洞见以及问题的答案。

我的理解就是数据很多,但能看懂或者说能让其他人看懂,并能提供给决策一些重要信息很难。于是tableau的出现,让展示商业决策的依据和结果就变得容易了。

在学习使用过程中,发现使用它其实比excel的数据图要简单很多,“拽拉点”就是大部分的操作。难点是得理解底层逻辑,才能展现出合理的结果。比如:将某个数据拽到“行”上,指的是Tableau将此度量聚合为总和并创建垂直轴。而拽到列呢?则是代表把这个数据聚合,并创建一个水平轴。还有拽到标签上,也都是根据这个数据来展现某种特征,颜色,大小之类的。

看文字就能学会的技能我没有掌握,所以还是老老实实地动手操作吧。

作业的第二部分要求完成17个图表,第三部分要求总结。边按步骤制作图表,边写总结的话,可能会加深印象。于是我把优点和应用场景都做成了表格,方便自己查阅和理解,同时呢,按照要求完成了17个图表。

今天的完成度还算可以,明天再战。

屏幕快照 2019-08-06 下午10.45.52

屏幕快照 2019-08-06 下午10.46.13

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 02 + 数据分析、统计学资料

学习天数:006

学习时间:1小时

学习心得:

这几天看屏幕时间太长,眼睛受不了了,疼得很厉害。于是今天没有选择用电脑来玩成作业,用kindle把周边书和资料看了看。

《深入浅出统计学》:

表现单类数据里各个所占比例时用饼图最好用。

比较各个类别的大小频次时用条形图更好。

在一定范围内计算范围频率数范围时,可以用直方图来表示,它和条形图长得差不多,但有很大区别,直方图长条之间时没有间隔的;直方图中的长条面积和得分数也就是频率数成比例。

《利用python进行数据分析》

数组聚合和分组运算:

比如说分组,就是把一个字典里的key和value分开,再根据key的类别分组,根据实际应用再合并,这就是分组再聚合。不过字典可以是列表或数组,甚至是函数。 屏幕快照 2019-08-08 上午12.57.29

这时我想起来tableau,它简直是太方便了,清洗、聚合、分组,应用都可以直接进行,只需要清楚地知道自己想表达的目的即可。

吃完止痛药,休息了一天,明天再开始应对屏幕。

keqi-jj commented 5 years ago

看到了对生活有规划,追求上进。是个有智慧的人!

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 02 + 数据分析、统计学资料

学习天数:007

学习时间:3小时

学习心得:

今天的作业内容是制作仪表盘。

询问教练之后,知道表格、仪表盘、故事这三者之间的关系,我自己的总结就是俄罗斯套娃,表格是最基础的部分,然后把相关数据的表格放到一个仪表盘里,最后汇总到故事里去。

仪表板(dashboard)的定义:是多个工作表和一些对象(如图像、文本、网页和空白等)的组合,可以按照一定方式对其进行组织和布局,以便揭示数据关系和内涵。

引用官方档案里的一句话

创建有效仪表板的最佳做法

精心设计的仪表板可以协调组织的工作,帮助发现关键的见解,并加快决策速度。

目前,我联系起来了几组表格,制作成了三个仪表盘。本来应该接着往下做的,但是在查看完有关资料后,又觉得做的不好,看到资料中实例仪表盘做得非常好,再看看我做的。。。。。于是我开始学着制作好看有用的仪表盘,我想数据之间是有联系的,甚至应该是交互的,也就是说点击某一个仪表盘上的表格,和它相关的表格应该是联动状态,以多个角度分析这才是数据分析的根本,看完了以下的例子,我确定了这不是个简单的作业,至少对我来说,我想做出交互式的仪表盘。

屏幕快照 2019-08-09 上午1.16.44

屏幕快照 2019-08-09 上午1.17.14

我总结了自己一些做仪表盘时需要注意的地方,方便明天继续做作业时注意。

  1. 我发现仪表盘不能一次放很多张工作表,并且在第一次做仪表盘时,要先把布局布置好,再放置工作表。
  2. 在有日期或者数量的工作表时,要注意刻度纸,保持精确
  3. 选择筛选器,可以更加方便看清楚一些数据的关系。

参考资料《tableau desktop 官方档案》、《tableau官方可视化极速》、《人人都是数据分析师》

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 02 + tableau dashboard 资料

参考书《tableau官方资料》、《tableau可视化之极速》 视频《 Do it yourself tableau》、《tableau官方教程》

学习天数:008

学习时间:3小时

学习心得:

仪表盘知识学习了两天,终于有了一些进展。

仪表盘最重要的一点就是找出工作表们的内在联系,使之交互,以观看者或者决策者看懂并展现出隐含的、对决策有潜在价值的模式和关系。

在之前做出的工作表是分别按照“superstore”和“世界发展指标“这两个数据源做出的。经分析,和前者有关的工作表是一系列的销售、物流数据,要按其类来分别做出仪表盘;和后者有关的工作表是综合性数据,并且有关的工作表只有两个,可以都放到一个仪表盘里。

在superstore行业,需要从海量数据中快速找出有价值的信息,在作业中的一系列工作表中,有展示销售量和利润的,有展示各区域和各时间段航运模式趋势的,有展示商品细分的利润的,有展示各商品之间的销售量比例的。所以我以此做的仪表盘,是以各数据之间的联系做依据的,当然最重要就是交互性。

步骤:

  1. 确定布局大小,在哪种设备上播放
  2. 布局与流畅度: 左上角是重点,全局概述
  3. 交互性与标签: 标题明了清晰,共同显示内容
  4. 颜色与杂乱: 没有不必要的颜色,干脆整齐
  5. 性能、数据查询性能: 越复杂,越影响性能

需要大量规划,才能创建仪表板

截了两个昨晚的dashboard图 1 屏幕快照 2019-08-10 上午12.30.27

2 屏幕快照 2019-08-10 上午12.48.45

动手并不是最难的,难得是在动手做仪表盘之前的构思和观察,找出数据间的联系,才能做好仪表盘。

话说可能是沉迷仪表盘太久,于是有了孕妇效应,在哪都能看到数据可视化。比如今天的台风利奇马的降雨量图和雷达图。我做仪表盘时,发现地图是非常好用的仪表盘数据之一,利用经度和纬度做出的地图,和任何数据都能产生交互。

1565270740840

屏幕快照 2019-08-10 上午12.39.24

明天应该能完成exercise 02的作业了,争取把故事攻克。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 02 + storytelling data资料

参考书《The non-designer's design book》、coursera course《Dashboards and storytelling with tableau》

《Stroytelling with data》

学习天数:009

学习时间:2小时

学习心得:

现在到故事了,我发现数据分析不光包括数据清洗、整理,还有如何找到数据间的联系,从而发现隐含的消息,甚至可视化数据的制作也有很多门道,如何让数据有效交互,排版,最后在 演示过程中简洁高效表现出来,其中的知识真的是太多了,越想做好一点,越会发现学习的知识就要更多。

数据可视化:

  1. 选择好图表。根据目的来选择度量值,选择适合该度量值的图表。

    A. 折线图:时间序列、相关序列、自然完全相同的数据

    B. 条形图:数据比较、对于数据范围需要特别的关注

    C. 散点图:显示出数据的规律

    D. 直方图:数据的频率

    E. 饼图: 同类事物的组成比例

    F. 树状图: 通过颜色来表现矩阵,或者表现出异常值或数据的规律

    G. 盒形图:数据的分布,异常值和数据范围

  2. 设计图表。正如语言有规则,写作有规则,设计也有规则。

    A. 相近性。数据相近就会使之看起来是一组的,哪怕形状、大小十分不同

    B. 相同性。相同的数据倾向于同组出现。

    C. 归纳性。数据被划归一组,就会被看成一个整体。

    D. 连续性。被连成线的点就会显出流畅感。

  3. 规划好一系列相关数据的图表在仪表盘中的组合。

    要做成一个表现力强、可读性高、有意思的仪表盘,有四个要素:图表组合、文本、图表形式和颜色。

    逻辑性、组合方式来简洁地表达出来,这是关键。

    图表形式要适合数据。

    图表组合要有逻辑性。

    颜色要有对比性,背景要避免干扰数据表现力。

    文本,标题要简单明了,副标题要简单地表达出图表的关键信息。

    图表相关元素也要在仪表盘中显示出来。

故事讲述:

  1. 要针对听众来做好演示准备。

  2. 逻辑性要强。

  3. 传达出数据的关键信息,而不是全部数据。

    “The shortest distance between truth and a human being is a story. ”

    – Anthony de Mello, One Minute Wisdom

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:总结exercise02知识

学习天数:010

学习时间:2小时

学习心得:

exercise02作业今日已完成。

涉及到的知识,进行思考总结

数据类型的图表实现

此次作业的第一部分是制作图表,不过是按照例子按步骤做。后来我在想,如果要是自己拿到一堆数据,又该选择哪些图表呢,哪些会更适合呢?教练提前想到了我们做作业时的顾虑,于是到了第二部分,就开始整理各个类型的图表的优点、主要用途和适用场景。总结完以后,心里没那么慌了,毕竟学是为了实践嘛,能用才是关键。

昨天找到一个网站,能为数据图表化提供非常好的思路: D.V.P

如果按照功能分类图表的话,可以分类成几种

屏幕快照 2019-08-12 上午10.52.48

屏幕快照 2019-08-12 上午10.52.58

屏幕快照 2019-08-12 上午10.53.57

屏幕快照 2019-08-12 上午10.54.31

屏幕快照 2019-08-12 上午10.55.09

屏幕快照 2019-08-12 上午10.55.25

屏幕快照 2019-08-12 上午10.56.05

屏幕快照 2019-08-12 上午10.56.15

屏幕快照 2019-08-12 上午10.56.57

版面设计的四大原则:

比如汽车仪表盘,就能很好地展示数据,接近、对齐、对比、重复原则都包含其中,使开车人能及时准确地掌握所需要的信息。

moderncarinstrumentdashb_398357

我也找到一些好看的dashboard图片:

Parameterized-Scatter-Plot-in-Super-Sample-Superstore-Tableau-Workbook

Tableau-visuals-640x424Super-Sample-Superstore-Tableau-Dashboard-with-Date-Period-Notification

从以上图片,我发现仪表盘的制作,是整个数据可视化非常重要的一个环节,在日后的学习中还需要不断地练习和强化。

演绎数据---需要故事

很好地去表现图表中的数据,需要去演绎,去构建一个故事。

tips:

切入点要实际,有用

换位思考:作为观众需要听到的故事要简洁,阐述明了,吸引注意力

句子不要太长,用词简单,keep it simple and plain, 特朗普的tweeter就是我用来学习简单表达的地方。

素材网站

每周都有练习的数据,还可以在tweeter上得到反馈makeovermonday

有建设性的数据可视化文章eager eyes

各种新闻和话题的数据可视化fivethirtyeight

用故事来讲述数据stroytellingwithdata

素材书籍在之前的学习心得里

Newonefromhere commented 5 years ago

厉害👍,向你学习

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 03

学习资料:tableau官方地图视频+其他纸质、视频学习资料

学习天数:011

学习时间:5小时

学习心得

收到exercise03的资料,大致看了一遍,理了一下学习思路。

  1. 看官方地图视频。
  2. 看视频同步pdf
  3. 查缺补漏。辅助看其他版本的资料,网易云课堂+coursera

看视频时,我是顺便在家用走步机做有氧,一举两得。tableau的官方视频讲得非常明白,从基础到进阶,即使是英文无字幕,也能听进去。

概念

地图:地理信息的数据化

统计地图: 数据的正确对应

地图种类:

还有很多diy地图,这次作业主要是用静态背景地图这个知识点:设定相应图片为地图的背景图像,设定纵横轴相对应的变量,以及变量的取值范围。

作业完成情况

按照tableau入门指南,先跟着示例做了一个一摸一样的工作表,之后按照作业第一部分的要求做了一个按华东华南城市分组的工作表。

做到作业第二部分时,遇到了困难。没有相应的数据源,于是去网上找了半天,也没找到合适的,耽误了半天,去询问了教练,这才发现是教练疏忽,忘记发给我数据源了,真是让我好找啊。好在是顺利完成了作业,这次的作业没有像上次作业那样用时很久。总结经验,就是在恶补tableau知识时,把能找到的资料都提前备好了,得空就看一看,拿到新作业时,就知道了方向,不会抓瞎,不过也不好说,也许下次作业还是需要大量时间来做功课。

另外我得准备mac excel了,我的Mac mini上没有excel,我为了编辑站点x,y坐标,只能传到手机上,更改完再传回电脑,有点麻烦。

作业要求上有点模糊:

  1. 第一张工作表“名为”后面没有要起的名字,第二张就给要求了
  2. “在北京地图中绘制 东直门,三元桥,T3航站楼和T2航站楼”里的北京,我到后来猜测应该是背景,背景地图,正好这次绘制的北京地铁的作业,我觉得容易引起困惑。

可能教练们也很忙,疏忽了

屏幕快照 2019-08-14 上午1.03.45

屏幕快照 2019-08-14 上午1.03.56

MaryShu commented 5 years ago

一早醒来,初步看完了王晓镜同学的自学数据营的学习心得体会,大致能明白学霸的学习路径与思考方式。 谢谢你的分享,让我能如此真实且同步地看到,感受到榜样的力量!

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 04

学习资料:tableau官方预测视频教程+高级图表制作视频,wikipedia,其他补充学习资料

学习天数:012

学习时间:2小时

学习心得

exercise 03已完成,用时1天。

今天开始exercise04的学习。

拿到作业,第一时间查看要求,确定学习方向和步骤。

概念

高级图表
  1. 布林线:Bollinger Bands,一种指标技术工具,通常用于金融市场。应用上结合了移动平均和标准差的概念,形态是由三条轨道线组成的带状通道:上、中、下三轨。中轨通常为20天平均线。

    计算公式 • 中轨线 MB=N日的移动平均线 • 上轨线 UP=中轨线 + 两倍的标准差

    • 下轨线 DN=中轨线-两倍的标准差

    images

  2. 本福德定律图:Benford's law,一种用于检查数据是否有欺瞒之处或是否欺骗检测的工具。说明一堆从实际生活得出的数据中,以1为首位数字的数的出现几率为总数的三成。

    在十进制中,首位数字出现的概率为:

    d 1 2 3 4 5 6 7 8 9
    p 30.1% 17.6% 12.5% 9.7% 7.9% 6.7% 5.8% 5.1% 4.6%

    这个定律非常神奇,从世界人口数量,账本,物理化学常数等等都符合本福特定律。

    images

  3. 控制图:Control chart,也成“质量管理图”,是统计过程中,确定制造或业务流程是否在统计控制状态下的一种工具。它的基本结构是在直角坐标系中画三条平行于横轴的直线,中间一条实线为中线,上、下两条虚线分别为上、下控制界限。

    控制图可用于:①诊断:评估一个过程的稳定性。②控制:决定某一过程何时需要调整,何时需要保持原有状态。③确认:确认某一过程的改进效果。

    引申知识:控制图是质量管理七个工具的核心。这里,质量管理七个工具分别为:因果图(cause-efective diagram)、排列图(pareto diagram)、直方图(histogram)、散布图(scatter diagram)、控制图(control chart)、分层抽样(stratification)、检查表(check list)。

    1920px-ControlChart.svg

    控制图示例

  4. 漏斗图:funnel plot,漏斗图适用于业务流程比较规范、周期长环节多的单流程单向分析,通过漏斗各环节业务数据的比较能够直观地发现和说明问题所在的环节,进而做出决策。漏斗图用梯形面积表示某个环节业务量与上一个环节之间的差异。漏斗图从上到下,有逻辑上的顺序关系,表现了随着业务流程的推进业务目标完成的情况。

    适用场景:流程流量分析,转化率问题。

    eArJFAYwiiFeJpk

  5. 凹凸图:排序图,可以用来分析特定产品某度量指标的排序变化情况。

    微信图片_20190408164814

  6. 瀑布图: Waterfall Plot,瀑布图采用绝对值与相对值结合的方式,适用于表达数个特定数值之间的数量变化关系。瀑布图通过巧妙的设置,使图表中数据点的排列形状看似瀑布。这种效果的图形能够在反映数据多少的同时,更能直观地反映出数据的增减变化过程。本质上瀑布图是甘特图的变形。

    适用场景:连续的数值加减关系、两个及以上的数据点之间数量的演变过程时,并最终形成累计值。

    waterfall_viz

预测

新学期开始了,要开始提前准备工作了,需要适当把作业完成时间拉长。本来想今天一天就完成exercise04,但是工作上的事情还有很多,健身定投还需要俩小时,所以就留待明天吧。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 04

学习资料:tableau官方预测视频教程+高级图表制作视频,wikipedia,其他补充学习资料

学习天数:013

学习时间:4小时

学习心得

昨天查阅了资料,今天完成了exercise 04

遇到的困难:

  1. 按照作业第一部分,跟着官方视频做图表。发现没有相关数据源,毛毛躁躁地在官方网站上找了一通,google半天,又给教练发信息,就在灰心丧气之时重新打开视频,发现视频讲解了数据源在哪,就在视频下方,可以直接下载exercise book。这就属于不仔细看视频。
  2. 做完了第一部分后,又发现一个问题,都是一个个的单独数据,把他们汇总在一张表上时,出现了读取数据源失败的情况,而且是阵发性的。没办法,挨个保存吧,最终成功地体现在了一张表上。

收获:

  1. 貌似找到了高效学习的流程。先去总结相应概念,当然不是照抄,而是理解后总结成概念表格,包括主要用途和应用场景。再接着看视频,顺着感兴趣的点不停地挖,也许会走歪,但是知识肯定能理解地相对透一些。

  2. 遇到障碍,不要着急,哪怕很想解决,也可以放一放,其实这时脑子里还是会给障碍留些位置。吃饭,工作,运动的时候都会想着它,并行开展,不知道哪个时候就会找到解决办法,正好其他事情也都做完了。

  3. 今天实践了一把新技能,我用手头的简单数据可视化了。其中思考和数据整理的过程,正好是强化概念的好机会。

    a4e471c795d653ce04397afac392928f

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 05 安装

学习天数:014

学习时间:8小时

学习心得:

卡在了第一步安装,大约8小时,现在晚上21:58分,终于搞定了。屏幕快照 2019-08-16 下午9.59.28

在readme里给了github安装地址,但是本身我就对终端有抵触,基础不太好,所以一看到是终端安装,心里就咯噔一下。之后就开始了漫长的尝试-错误,再尝试-再错误的循环。

屏幕快照 2019-08-16 下午10.08.23

屏幕快照 2019-08-16 下午9.59.28

总结一下,对终端不熟悉,在心情紧张的情况下,大脑完全停摆,其实早就应该在github行不通的情况下,去google上搜索,又加上总怕在终端上瞎试会导致死机,畏手畏脚。好在最后鼓捣成功了,又给自己上了一课,真的不能自己吓自己,恐惧是学习路上的绊脚石。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 05 "hello word to Machine Learning"

学习天数:015

学习时间:4小时

学习心得:

通过看《Your First Machine Learning Project in Python Step-By-Step》、《 Machine learning-Iris classification》了解了机器学习的大概。

机器学习:就是让本来不知道某事物的机器来通过其特征来了解该事物,进而能预测未知数据是否为该事物。

问题描述
分类
有名的鸢尾花数据集

机器学习中不得不提鸢尾花数据集,在机器学习过程中,它就和python学习里的“Hello World”一样出名,它有三类,在数据集里有150个样本,每个样本有4个特征:花萼长度,花萼宽度,花瓣长度,花瓣宽度,非常适合入门机器学习。

屏幕快照 2019-08-17 下午9.40.56

教练已经把准备工作都做好了,在给的代码中,包括导入相关库,导入样本数据,切分训练和测试数据,我看到了,是按照八二分的,样本数据集中20%用做测试数据,把预测函数传到tabpy服务器。

KNN算法

我看到是用Knn邻近分类算法来预测测试样本,它是用欧式距离来确实测试数据属于样本数据中的哪类。

欧式距离:在数学中,欧式距离是欧几里得空间中两点间“普通”(即直线)距离。

欧式距离公式:{\displaystyle d(https://wikimedia.org/api/rest_v1/media/math/render/svg/806256b11a1f290cc759b94145a456fc74e77b09):={\sqrt {(x_{1}-y_{1})^{2}+(x_{2}-y_{2})^{2}+\cdots +(x_{n}-y_{n})^{2}}}}

那么knn算法中参数k值也就是代码中n_neighbors的值需要提前确定,值越大,分类边界越平滑,在鸢尾花这个数据中,也就是三类样本数据分布图中,这三类的边界线越平滑。

屏幕快照 2019-08-17 下午10.23.20

knn算法的优点:简单直观,易于实现,只需要依靠样本本身就可以实现。

完成作业

教练布置的作业指令步骤很清晰,按照要求就能完成作业。

其中有一项,是要求观察终端窗口的活动,来尝试理解tableau调用python的过程。

我调试四个参数时,随着参数变化,窗口的变化。

屏幕快照 2019-08-17 下午10.52.13

kagamiqyah commented 5 years ago

学号:1901050017

学习内容:exercise 06 Numpy 入门

学习天数:016

学习时间:5小时

学习心得:

Numpy最少必要知识

readme里给出了官方入门的链接,读的时候发现有ipython版本,在jupyter lab里打开后,发现太方便了,代码可以随时运行,就像李笑来老师说的,任何编程书籍都用ipython版本来看的话,编程学习就变得具象化可执行了。(但是有一点numpy tutorial里的print没有加括号,如果在jupyter lab里用python 3直接运行,会有错误。我没有安装python2.7,只能用最笨的方法,在想运行的代码块的print加括号,如果是多个print,就用cmd 点击多处,可以一次性在多个地方加括号。)

它先介绍了学习numpy所需的python最少必要知识,很快就进入了numpy学习,高效简洁。顺便记录一下,因为最近都是看英文文档和文献,在看其他英文书籍的时候,发现无论是单词掌握和阅读速度都大幅提高,甚至是和大女儿聊天时,她都说我的口音好了很多,但其实我一直都是默读的。所以我更加要坚持以英文为主,中文为辅。

先回答两个问题:

  1. 数据的维度:一维数据、二维数据、多维数据、高维数据

    Numpy很重要,是因为它可以高效处理大数组的数据。而数据按维度分有以上几类。

    • 一维数据:只有一个轴的数据
    • 二维数据:两个轴相交组成的数据
    • 多维数据:多个轴组成的数据
    • 高维数据:海量数据,如证券市场交易数据、多媒体图形图像视频数据、航天航空采集数据、生物特征数据等,这些数据在统计处理中通常称为高维数据。
  2. 已有列表类型,为什么需要一个数组对象(类型)? • 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据 • 设置专门的数组对象,经过优化,可以提升这类应用的运算速度 • 数组对象采用相同的数据类型,有助于节省运算和存储空间

NumPy是数据处理及可视化时的利器。在 Python的圈子里,NumPy 的重要性和普遍性日趋增强。换句话说,为了高效地使用基于 Python 的用来科学和数学计算的工具,就需要知道如何使用 numpy 数组。

在通过readme里的文档连接学习中,了解了numpy数组的相关知识。有两个问题不太明白,通过问教练,大致了解了,并顺利完成了作业6.

查找相关知识时,了解到学习numpy都是为了数据分析来做准备,例如数组函数、数组的索引和切片,数组转置和轴对换以及数组运算。

ArrayFlowChart

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:"numpy"深入学习

学习天数:017

学习时间:1小时

学习心得:

exercise07作业下午收到了,但是由于工作有些忙就没有开始做。

但是在上午的时候,一直在看mooc的numpy课程,学习了各种函数的用法,提前学习的好处就是拿到作业7的时候,发现内容和上午学的重合了,不会那么紧张。 IMG_4973

明天或者后天开始做作业7。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 07 Numpy 函数学习

学习天数:018

学习时间:2小时

学习心得:

07作业是Numpy函数的深入学习。

我该用jupyter notebook来学习和总结Numpy函数,因为可以用概念和代码结合的方式来更好地总结。

Numpy随机模块

屏幕快照 2019-08-22 上午12.10.27

屏幕快照 2019-08-22 上午12.13.09

屏幕快照 2019-08-22 上午12.13.21

屏幕快照 2019-08-22 上午12.28.26

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 07 Numpy 函数学习

学习天数:019

学习时间:4小时

学习心得:

07作业已提交。

jupyter notebook太好用了,赞美啊!真的是学习、教学利器。

Screen Shot 2019-08-22 at 3.13.04 PM

Screen Shot 2019-08-22 at 3.32.13 PM

Screen Shot 2019-08-22 at 3.32.35 PM

Screen Shot 2019-08-22 at 3.33.02 PM

Screen Shot 2019-08-22 at 3.33.26 PM

Screen Shot 2019-08-22 at 3.33.43 PM

Screen Shot 2019-08-22 at 3.33.56 PM

Screen Shot 2019-08-22 at 3.34.09 PM

Screen Shot 2019-08-22 at 3.34.25 PM

Screen Shot 2019-08-22 at 3.34.38 PM

Screen Shot 2019-08-22 at 3.34.54 PM

Screen Shot 2019-08-22 at 3.35.05 PM

Screen Shot 2019-08-22 at 3.35.23 PM

Screen Shot 2019-08-22 at 3.35.39 PM

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 08 Numpy 高级操作学习

学习天数:019

学习时间:2小时

学习心得:

  1. 作业7有两个错误,今天在深刻理解以后,改正并通过了。
    • 一个是获取两个数组共同的元素的位置。 我之前以为是获取数组的各自元素位置了。虽然用了np.where()。 把正确答案贴一下
      a = np.array([1, 2, 3, 2, 3, 4, 3, 4, 5, 6])
      b = np.array([7, 2, 10, 2, 7, 4, 9, 4, 9, 8])
      np.where(a==b)

      (array([1, 3, 5, 7]),)

  1. 作业8的作业还在进行中。 最近的重心放在了理解kaggle上,作业进度就刻意慢了下来。 机器学习和数据可视化有很多学习的地方,需要好好规划以下。 明天提交新的概念总结。
kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 08 尝试完成作业

学习天数:020

学习时间:2小时

学习心得:

根据作业顺序,学习了numpy高级函数:numpy.ptp,numpy.bincount,numpy.vectorize,numpy.cumsum,numpy.linalg.norm,numpy.isnan,numpy.where 急于完成作业,今天的心得没有概念总结。明天一定。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 08 总结高级函数概念+作业8完成

学习天数:021

学习时间:5小时

学习心得:

Numpy这些高级函数在以后的数据分析中都很有用处,我研究了一下pandas和matplot都经常会用到numpy的高级用法。 最近拉长作业完成时间和深入学习时,有一个感受,学习热情降低了。看来我还是适合沉浸式学习体验,等到周末的时候好好体验一把。

屏幕快照 2019-08-26 下午10.06.37

屏幕快照 2019-08-26 下午10.06.46

屏幕快照 2019-08-26 下午10.06.55

屏幕快照 2019-08-26 下午10.07.05

屏幕快照 2019-08-26 下午10.07.13

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 09 Numpy在图像中的应用

学习天数:021

学习时间:2小时

学习心得:

卡住了。 在macbook进行作业的第一步--运行给定代码时,出现了错误 14_51_45__08_27_2019 试了一种在文件里添加函数的方法,没有成功。

回到家用台式机运行时出现了另一种错误---提示没有opencv。 于是尝试安装:pip install opencv, 显示错误,于是去stackflow寻找答案,发现应该这样安装:pip install opencv-python,于是运行成功,在笔记本上的运行错误也没有在台式机出现。 今天就到这里,明天再开始作业和尝试概念总结。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 09 学习图像和图库

学习天数:022

学习时间:2小时

学习心得:

<Numpy 图像数组表示及应用>

图像

图像一般都采用一种颜色模式:RGB色彩模式。 RGB三个颜色通道的变化和叠加得到各种颜色:

R:red,红色。取值范围:0-255 G:green,绿色。取值范围:0-255 B:blue,蓝色。取值范围:0-255 RGB形成的颜色包括了人类视力所能感知的所有颜色。

图像的数组表示

实际上,图像是由一个像素组成的二维矩阵,每个元素是一个RGB值。

图像是一个三维数组,纬度分别是高度、宽度和像素RGB值。

什么叫矩阵?Matrix:The matrix class is a Python subclass of the ndarray and can be used as a reference for how to construct your own subclass of the ndarray. 为什么叫numpy.mat, 因为mat是matrix的别名:The name “mat “is an alias for “matrix “in NumPy.

绘图库

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 09 做作业

学习天数:023

学习时间:40分钟

学习心得:

依然没有解决笔记本的问题,只能等到回家用台式做作业。而用笔记本来先学习知识,回家实践。

  1. 翻转彩色图像

  2. 图像剪裁

  3. 图像边框

这些opencv会用到多点。 对于计算机来说,所有图像都是数值矩阵,那么各种操作大多围绕着使用矩阵。所以其实又可以说是数字图像。 基于此我展开了学习。 明天把学习笔记发在这上面。最近无法平衡工作和学习,导致进度变慢很多,希望周末能好好沉浸沉浸。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 09 做作业

学习天数:024

学习时间:2小时

学习心得:

历时7天完成了作业09。一方面是开学初工作繁忙,家庭琐事放在首位,于是作业就拖到了现在。

难点:

作业顺序

  1. 导入第三方库:报错后,安装相应的库,在前面的心得里我记录了在笔记本里我卡死在了这步,好在是台式机没有问题。
  2. 查看给定的位置值,当时只是出于直觉写的答案,现在回头看其实就是给定像素的值
  3. 回答输出的三个值分别属于什么。这是需要注意image在matplot读取时和opencv读取时RGB的位置,是不一样的。python加载opencv图像时是BGR模式,而matplot是RGB模式
  4. 找出图片中灰度值的最大值和最小值。。。。这时需要用上opencv的统计函数,去依次提取相关值
  5. 用数组的方法来翻转图片。这对于当时做作业的我来说有些难度,因为我对数组和图片的关系没有掌握得很好,于是我好好地研究了一番,包括翻转的定义(是和旋转图片不一样的)。左右翻转和上下翻转如何运用numpy数组。
  6. 给定像素的值➕1。利用item来进行运算。
  7. 讲图像剪裁为正方形。这个看起来有点难,一旦掌握了图形行和列,就知道了如何解答
  8. 添边框。opencv的copyMakeBorder函数会用到,里面的参数按照题目设定就可以了。
  9. 讲像素值设置为制定颜色。把颜色赋值即可。
  10. 打马赛克。按照为整张图像打马赛克的思路走就可以了,提取眼睛位置,然后为眼睛打马赛克。
  11. 替换对应像素。马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内左上像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓。按照这个定义:要替换的图[行起点+马赛克行*10:行止点+马赛克行*10,列起点+马赛克列*10:列止点+马赛克列*10] = 马赛克图[马赛克行,马赛克列]
  12. 分离通道。在彩色图像/RGB图像中,图像是一个三维矩阵,利用opencv的split函数可以把rbg值提取出来,再赋值就可以得到三色通道了
  13. 柯基图片。掩码中柯基的位置这一题目可以参考“将masked_image中与掩码中柯基所在位置之外对应的值设置为0“的提示;合并图像这一要求,会利用到opencv的图像合并函数,加权值可以自行设定,根绝图片展示效果增减。

总结

短期专注和长期专注都很重要,在完成作业的时候,需要认真看资料,以完成作业为目的。但是长期的专注,是在其他时间,仔细看所有的有关文字和视频资料,有关作业的,无关作业的都会看。其实,就算在做其他事情,这时关于作业的部分也不会停止思考,有时会突然灵光一现,难题解开了,下午我就经历了一回。还是得提醒自己,不要被陌生的名词吓到,什么掩码,分离通道等等,细心研究资料,答案都在里面。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 10 pandas

学习天数:025

学习时间:5小时

学习心得:

时隔一周多,又重启学习心得的更新。

作业做到了10,就遇到了不可抗力的终止。但是思考一下,自学是不可能被终止的,除非自己想终止。那么我的学习又继续开始了。

作业10 早已完成,现在为概念总结。

pandas

Pandas 是基于 NumPy 的一种数据处理的第三方库,该工具为了解决数据分析任务而创建,提供了高性能易用的数据类型和使用工具。

Pandas拥有自己的读写.csv文件的函数,尤其在数据清洗任务中有着优势。它是对数据有索引作用的

Screen Shot 2019-09-09 at 4.06.56 PM

​ 还可以自定义索引

Screen Shot 2019-09-09 at 4.14.49 PM

Screen Shot 2019-09-10 at 9.44.06 AM

Screen Shot 2019-09-10 at 9.58.56 AM

​ 注意:切片加冒号,b[:3]是value+index

总结:

Series是一维带标签的数组

基本操作和ndarray、字典类似,是基于索引,而不是维度。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 10 DataFrame

学习天数:026

学习时间:2小时

学习心得:

dataframe

dataframe是一种表格类的数据类型,每列值类型各有不同。既有行索引,又有列索引。

dataframe常用于二维数据,又可用于多维数据。

从二维数据创建

Screen Shot 2019-09-11 at 10.17.19 AM

从一维字典创建

Screen Shot 2019-09-11 at 10.26.33 AM

从列表类型的字典创建

Screen Shot 2019-09-16 at 8.37.51 AM

DataFrame是二维带标签的数组。

DataFrame类似于Series,依据行列索引。

DataFrame的其他用法

重新索引:增加或重排

Screen Shot 2019-09-16 at 10.14.12 AM

Series和DataFrame的索引都是index类型,index对象是不可修改类型。

索引类型有一些常用方法:.append,.diff,.intersection,.union

算数运算法则:

Screen Shot 2019-09-16 at 2.00.49 PM

Fill_value参数替代NaN,替代后参与运算。

Screen Shot 2019-09-16 at 2.12.07 PM

​ 一维Series默认在轴1参与运算

Screen Shot 2019-09-16 at 2.16.24 PM

​ 一维Series可以在参数的帮助下在轴0参与运算

比较运算法则:

Screen Shot 2019-09-16 at 2.48.47 PM

Screen Shot 2019-09-16 at 2.50.28 PM 不同维度,默认在1轴。

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:exercise 10 DataFrame

学习天数:027

学习时间:1小时

学习心得:

pandas数据排序

索引排序

利用sort_index来进行索引排序,默认升序。

Screen Shot 2019-09-17 at 1.40.13 PM

Screen Shot 2019-09-17 at 1.40.22 PM

数值排序

利用sort_values来进行数值 排序,默认升序。

Series.sort_values(axis = 0, ascending = True)

DataFrame.sort_values(by,axis = 0, ascending = True)

by是axis轴上某个索引或索引列表。

Screen Shot 2019-09-17 at 1.56.42 PM

注:NaN统一放到排序末尾

kagamiqyah commented 5 years ago

学员信息

学号:1901050017

学习内容:pandas groupby

学习天数:028

学习时间:1.5小时

学习心得:

Pandas的groupby函数

读取文件

.read_csv

引入一个数据集

url = 'https....'
chipo = pd.read_csv(url. sep = '\t')

.groupby()操作

在使用pandas进行数据分析时,groupby()函数将会是一个数据分析辅助的利器。

当对Groupby调用时返回的不是DataFrame或者Series对象,而是DataFrameGroupBy对象。

groupby参数

groupby(by=None, axis=0, level=None,as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)

  1. by:mapping, function, str, or iterable。

用于确定groupby的组。如果by是一个函数,那么会调用对象索引的每个值。 如果传递了一个dict或Series,则将使用Series或dict的值来确定组。 一个str或者一个strs列表可以通过自己的列传递给group。

  1. axis:轴,int值,默认为0

  2. level:如果axis是一个MultiIndex(分层),则按特定的级别分组。int值,默认为None

  3. as_index:对于聚合输出,返回带有组标签的对象作为索引。as_index=False实际上是“SQL风格”分组输出,boolean值,默认为True。

  4. sort:排序。关闭此功能以获得更好的性能。boolean值,默认True。

  5. group_keys:当调用apply时,添加group key来索引来识别片断。boolean值,默认True。

  6. squeeze:尽可能减少返回类型的维度,否则返回一致的类型。boolean值,默认False。

举例

c = chipo.groupby('item_name')
pring(c)

<pandas.core.groupby.groupby.DataFrameGroupBy object at 0x11c0bd358>

从结果可以看出是DataFrameGroupBy对象,那么需要按照GroupBy对象中具有的函数和方法进行调用。

.sort_values

c = chipo.groupby('choice_description').sum()
c = c.sort_values(['quantity'], ascending=False)
c.head(1)

以‘quantity’排序,这里面的sort_values是groupby的操作。