2018.1
这次的总结主要是对自己完成状况的评价吧。
到现在来说有的时候会陷入一种比较迷茫的状态;不知道现在所学的对以后有没有用处,所以会上很多的课,但是有的时候又不是很有动力。实际上编程的课仍然不难,但是总会自己寻找理由去拖延。希望3月开始能继续之前的习惯每周按时完成,要时刻提醒自己一件事情只要开始了就不会太难。
其他的话,还在机器学习的课程里面,完成了一周。另外尝试了学习论文写作的课程,但是觉得不是很适合自己,还是在老师的指导下完成一个实际的任务比较适合我的学习习惯。遵循这个原则,我也报名参加了一个meetup,每周一在一家小公司的场地里面自由编程,如果有问题可以问其他人。我觉得这样的氛围比较好,也可以让自己和别人交流,学到一些新的东西。课程本身的话,让我觉得机器学习和回归的界限渐渐变得模糊了起来,实际上线性回归也是寻找比较适合的一组数字去描述我们所拥有的数据,所以也可以看作是一种“学习”。但是机器学习的特殊之处在于它用不同层中复杂的关系来描述数据,使得我们不需要思考什么样的模型是适合的。这当然能为我们提供一个功能强大的黑盒子,不过有的时候会让我们知其然而不知其所以然,还是需要留意一下的。当然最好的办法就是完全从模型出发,然后再用模型描述观测数据,由此不断修正模型。
2017.12
这个月有一点忙,所以完成的质量不是很高;不过至少完成了python的matplotlib课程。 稍微简单总结一下吧,matplotlib是一个画图的软件包。画图虽然看起来很简单基本上而且是研究的最后一步,但是它却比一般想象中的重要。首先我们要思考的是我们需要用什么样的图去表达我们的数据;如果是时间序列那很显然不应该用柱状图而应该用点线来表达,如果是比例大小那就应该用饼图。选定了图表种类之后应该考虑的是如何准确地表达数据。如果柱状图中不同的柱子相差很小,那么将y轴范围设到刚好小于最小值与刚好大于最大值可以“显著地”拉开它们的差距,给人一种相差很大的感觉;这招在16年美国大选的时候被媒体用来误导读者川普的支持率很低。在准确性之上还有图表的配色,比如我是应该用不同的颜色去区分不同的线还是用不同的线型;两组不同的线可以再用什么风格去区分?这里的原则是能尽量不用彩色就不用彩色;不仅是因为印刷的时候更费油墨,也是考虑到色盲/色弱读者的情况。第二是面对不同的读者群体使用不同的风格。如果是同行/研究者,图标应该越简单越好,有利于同行尽快得到信息。而如果是面对普通读者,那么可以考虑加一些令人印象深刻的元素,比如用男女身体曲线来表达数据,会让看过的人很难忘记这组数据。
当然现在matplotlib里面已经内置了不少画图的包,拿来用就好了。不过从默认到真正合适的图表还是要花不少心思的。
2017.11
这个月完成了Coursera网页前端基础系列课程之中的两个。
说起网页制作和设计,这是一直以来都挺想学的内容。第一它的实质仍然是编程,将代码转化为网页,自己对编程比较熟悉;第二它又和一直以来接触的数据处理不一样,主要负责呈现,也就是处在数据处理前面的内容。在数据可视化的过程中,一般平常用到编程语言的UI都是不怎么好看的,而且依赖于语言本身;但是通过网页前端呈现内容可以将两部分分离,也就是说不管后端用的是什么语言,只要输出格式正确,都能套到同一个网页中;而且网页的呈现方式基本上统一,HTML5+CSS3+JS,这就保证了在不同的平台/设备上都能获得相似的体验。
这个月主要跟的是密歇根大学的Web Design for Everybody系列课程,从HTML5到JavaScript。实际上课程难度非常小,基本上只是教了语言最基本的用法;但是其中的思考方式和数据处理是很不一样的。作为网页,HTML5+CSS3将内容和样式分离,给与了一个网页无限多的可能;同时也给代码赋予了很大的灵活性,可以将某个元素多次定义,浏览器只会显示最后定义的样式。而在数据处理中,我们总是希望(至少在一个模块内)一个变量由始至终代表同一个数据而且尽量不去改变。当然JS的确就回到了传统意义上的编程,而且也通过程序给网页带来了非常多的可能性。
有人监督的确更有动力去学,看着列表里面完成了的课越来越多挺有成就感的。下个月继续往网页设计方向稍微学深一点。
同时推荐CSS Zen Garden,看看别人是怎么将同一个网页通过不同的CSS3玩出花来的。