医学生的编程学习:R & Python— — 前言

是否值得掌握一门编程?

这是个数据大爆炸的时代,开源的骑士精神总是不断被提及;这也是个焦虑的时代,知识在网络唾手可及的便利让大家时刻害怕被互联网抛弃。IT成了这个时代的弄潮儿,并渗透到了各个行业,交叉学科由此兴起,各个学科似乎都可以和计算机搭配交叉,包括传统行业——医学。在现代,一个医生优秀的标准不仅是看好病,还要做好科研,而现代的行业科研是离不开计算机的,尤其是对于临床大量数据的处理。故此,我推荐医学生能掌握一门自己熟悉的编程语言。
临床医学生科研上常用的知识就是医学统计学,一般的人选择用spss。但是spss虽然简单易用,但远远谈不上好用。当面对很多变量,两个以上的组别,或者需要批量进行t检验的时候,spss就相形见绌了,尤其是像我的毕业论文,要从48×50×10=24000的数据集里批量进行参数检验和统计分析,从中找到目标数据与疾病最关联的变量,我很难想象出不用R的话如何能完成。其次,对于论文的画图,对于数据集的探索等等,我可以很轻松的通过几行代码实现我的idea,然后简单评估这个idea的有效性,而在spss要通过点击多次,更多的操作会使人厌烦(更别提鼠标手和腱鞘炎),因此,掌握一门编程语言是我觉得值得花费一定时间去学习的,并且将在后面的科研路上不断收益。

Python还是R?

当说到掌握一门编程语言,那么初入科研领域的医学生都是会面临一个深刻的问题:Python还是R?这个问题不会对一些特定的医学生人群产生困扰,例如流行病学的学生和生物信息学的学生当然是用R,检验学的学生当然是用python等等。那么,对于其他领域——尤其是临床医学的学生,这个问题就值得好好思考了。
我自己是先学R,再学Python,从我的角度来说,我是推荐两个一起学的。对于这个问题网上存在很多答案,大部分的答案都是说学python,但是就我个人体会,对于临床医学生,R是很难放弃的。就像别人描述的那样,R就是瑞士军刀,对于我们半路学编程的人来说,用起来非常舒服,尤其是大量现成的统计包,可以轻松的复现出spss的结果,用瑞士刀形容简直太合适不过了。当用代码随心所欲的雕琢数据集,然后进行批量统计,批量作图,最后输出期望中的结果文件,这种感觉美妙无比。
但是为什么我要学Python呢?其实我觉得一般临床医学生,做临床随机对照实验的那种,是可以只用R的。但是我是神经影像学方向的,我主要是运用神经影像学研究针刺效应和对中风病的机制,这个领域没办法脱离Python,例如FSL中就是通过python的脚本来进行一些数据预处理的,还有一些机器学习方面Python都用起来比R舒适,因此我还是决定从R转向了Python,从此就两条腿走路。
对于一般的医学生,我推荐学习R就够了;对于涉及到核磁领域,或者想结合机器学习的方法去拓宽科研思路的医学生,我推荐还是可以学Python。Python的好处不仅仅是scikitlearn好用的API,更重要的是它是一门正规的编程语言,包括可以调用系统的函数,这一点matlab也是可以实现的,但是R不能(可能是我不知道?)。当我用linux对核磁数据进行预处理时,常常对shell的不熟悉而头疼,而R又不能调用系统命令,因此不得已还得打开matlab,然后处理数据的一个步骤,再关掉matlab,这种操作是痛苦的。对于一个严谨的数据分析来讲,最好的方式是写一个自动化脚本,将原始数据一步步处理到最终的结果输出并保存,这个方式不仅提高了结果的复现,而且可以再日后回头检查当初的处理步骤有没有错误,这个习惯是非常棒,而且非常有必要具备的。因此,光冲这一点,我就可以毫不惋惜的直接转向Python。
但是R不好吗?并不是,我也非常不后悔花费很多时间去学习R。
讲一个我最近思考的问题:近几年网络上在各种地方大张旗鼓的出现AI,神经网络,机器学习,深度学习这些专有名词,人工智能逐渐成为网络热词,这也激起了我的一点兴趣,我也时常在想能不能通过机器学习和深度学习去挖掘我研究领域内的一个难题,即识别或验证真穴与假穴不用的穴位特异性,或者寻找真穴的神经影像穴靶标。因此我也兴致勃勃的钻入了这个领域,通过几天的学习,也熟悉了基本的scikitlearn的调用。 后来我参加了一个机器学习的比赛(小众范围的一个小比赛),通过PCA和KNN完成了对疾病的预测(都是调用包,代码很简单),准确率也达到了92%,但是完成后我却陷入了深思,并思考了整整一天。我在想,我做出的这个模型,它是怎么实现的呢?我发现没有办法去用数学公式去表达这个模型,它是一个黑箱子,但这个黑箱子却让我对它的准确率抱有强烈的怀疑感和害怕感。在统计学里,我可以通过P值的显著性来作出一些令人信服的推断,而没有P值的机器学习,其结果很难使人信服。假如我用这一批变量能很好的预测疾病,然后也能用另一批变量很好的预测疾病,那这两批变量有相同和不同吗?到底它是通过某个变量或者某几个变量来实现预测结果的呢?
医学的科研关注是机制,专注于对于疾病机制的探究,当明白机制以后,就能通过机制来指导临床,帮助我们更好的治疗疾病,而这恰恰是机器学习的弱点,它的可解释性很差(除了线性回归模型)。当然我对这个领域还是充满信心的,它毕竟最近才开始大范围兴起,也吸引了大量的人才去建设这个领域。但是在机器学习的可解释性大幅度改善以前,我觉得医学统计学还是临床医学生要掌握的重中之重,所以从这个角度来说,R是要掌握的。当然,也不是说python不能做统计推断,有一些包是可以做的,但是实现途径对于R来说还是复杂了点,毕竟统计领域是R的强项(也只有这个强项了,天生的)。相反来说,对于机器学习,R也能做,不过它的API比较混乱,咱们医学生还有临床的压力,所以混乱的API要求的是记忆各种包的调用,这就增加了很多额外的负担,另一方面,很多论文里都是用python实现机器学习,会给出现成的代码,如果再去用R实现一遍,其意义就小了很多。
因此,我个人是极力推荐临床医学生先学R,再学Python的(没有需求的时候也可以不学)。

怎么学

解决了学什么的问题以后,接下来就是如何去学了。我觉得R的学习是比较简单的,比Python简单很多。R的代码比较贴近数学思维,虽然旁人总是说R的代码写的很简陋,但是毕竟只是自己用,能跑起来就行了,即使代码不规范都无伤大雅。我认为临床医学生的学习R的路径应当是:R的基础知识—R的数据结构—R的统计分析包—ggplot2的作图。当把这一系列学完以后,剩下的就很简单了,当需要画某个特定的图,或者完成某个特定的分析时,直接去百度搜代码,大部分都是有人在博客里说的。R的入门可能比较困难,但是入门以后,就一路平坦了。因为我只是调用包,所以目前还没遇到过一些底层的bug。慢的话1个月,快的话半个月或者数十天,这个时间花费是值得的。
并且在学习R的过程中,你也会在不经意间不断摄入医学统计学的知识。例如当你用t.test()的时候,你没有加参数var,然后你算出来的结果和spss不一样,那么你可能就会去寻找答案,为什么两个结果不一样,然后你就会发现,原来spss的t检验默认的是student t 检验,而R的t.test默认的是welch t检验(统计专业的学生不会有这些疑惑,临床医学生可能遇到这些坑,因为我们本科教育里对医学统计学讲的知识点很少)。当你做了一个单因素方差分析,那么你可能就会想去了解协方差,那么在这期间,你就会不断的充实你医学统计学的知识库。到现在我也越来越觉得,R其实就像小时候学习自行车一样,入门了,会了就够了,剩下的是在使用中不断的进一步学习,它只是起到一个工具的作用,想当年我学自行车也花了1周的时间,学游泳也是。
Python的学习相对而言比R难一点点,因为它是一门标准的编程语言,还有差一原则(从0开始计数)。例如R调用数据框里的数值,就是用$或者[]就好了,但是Python则有索引,切片,位置等等多种方法,比R要复杂很多,尤其是我最近学习Python碰到的class、_、lambda等等知识点,让我一瞬间有点头大,包括习惯了Rstudio,所以开始的时候不太适应jupyter lab没有工作区来显示变量的界面;以及R中与spss一样,将分类变量变成因子factor,而python则没有这种操作(它有分类函数);还有Python的元组,R中都没有等等。个人觉得R与spss思维相近,而Python和matlab思维相近。当然,从一门语言切换到另一门语言,刚开始的时候就会有这些难处。但是我觉得还是那句话,我们要清楚自己的定位,即临床医学生,所以我们暂时没有必要去学习和了解什么网络爬虫啊,web开发啊,游戏制作啊等等,我推荐的临床医学生学习Python的路径就是:Python的基础操作—Python的数据结构—numpy, pandas, scikitlearn, matplotlib包的API—机器学习。把这些熟悉就够了,以后遇到问题再百度怎么去调包。
在后面的章节里,我会通过上面说的这几个路径,来带领临床医学生熟悉R和python,争取让大家能够熟悉并运用。先讲R,再讲Python对应的操作。这些内容看起来多,其实很少,掌握起来不需要花费很多时间,毕竟都是调包侠,不需要去了解底层或者公式,就节省了非常多的时间。不过我也会在课余时间充实自己的线性代学的知识,我觉得这个基础还是需要扎实打牢,这样会对统计分析和机器学习帮助很多。这个要不要学就仁者见仁了,不推荐给大家。

#############分割线################################
趁着没人的时候讲一讲自己的领域把。我是研究针刺的脑效应的,针刺是一个古老的话题,与它伴随而生的是经络的存在性问题。经络和针刺相伴而生,其因为临床上对于一些特定疾病有显著效果而被人津津乐道。受益过的人会对针刺疗效抱有强大的崇拜,有时候也会产生不经意间的夸大和吹嘘;而未受益过的人,就将它批判到地底下,认为是子午须有。我知道自己作为一名医学生,本身带有立场预设,我说的话会让非该领域的人下意识的抵触。但是我平心公正的说,从我做过的科研项目来说,对于我研究的疾病,针刺是有疗效的,并且疗效显著。现代医学飞速发展的时候,中医学并不是停滞不前的,它也是飞速发展的,我们以及周围的同学都在努力的用现代医学的方法去尝试研究和证明针刺的有效性和穴位特异性的存在,而并不是仅仅依靠临床经验和专家经验。就我而言,我觉得神经影像学在研究针刺效应方面具有很大的潜力。中国的脑科学计划诞生自2015年,我有幸能搭上其快车,进入该领域。我的研究成果,包括我的毕业论文结果,都充分的让我从神经影像学领域去相信针刺的有效性,因此我对该领域信心非凡。我一直致力于针刺脑效应的研究,我希望有一天能通过该领域公认的方法,来证实真穴与假穴的特异性,以及期望能找到一个神经影像学指标,来评估真穴刺激后的穴位效应大小,从而建立起一套标准,来规范和评估各种针刺手法的作用大小,最终达到指导临床诊断治疗的目的。目前我课题的部分研究结论是真穴和假穴均具有有效性,而真穴的疗效更为显著,假穴的疗效有限,这也可以解释既往有些随机对照实验的结果表示真穴与假穴疗效类似。当然,受限于经费,我的研究样本量还不够,我也在努力的攒数据,同时也希望能借助机器学习的算法,能够加速找到上述的影像学指标,然后用统计学去论证它。科研漫漫,一切都“在路上”。希望各位看客对我们这个传统医学这个领域少一分责骂,多一份理解,我和我周围的同学正在不断的努力去传承和创新,给我们一点时间,未来,会越来越美好。
这一段单纯的说给自己听,给自己坚定信心。最近遇到了很多伤心的事儿,不断的受到各种打击,而只要谈到自己的科研,我就能充满力量。网络是个大地方,各种头部的网红争抢着流量,我觉得应该给我们这些平凡的人一个角落,让我们可以有倾诉的地方。每个人的发光发热,才能成就中国梦的实现。
Love & Peace

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
文化传播视野下的图形用户界面设计研究 随着计算机技术和网络新媒体的出现与发展,界面设计已成为艺术设计领域一个崭新而重要的成员。界面设计大致可分为结构设计、交互设计和视觉设计三个部分。本文所研究的图形用户界面就属于界面设计的视觉设计范畴,是数字产品呈现给用户最直观的部分,也是用户与数字产品互动操作的接口。作为现代科学技术日新月异和文化传媒产业飞速发展的产物,一种特殊的新媒介,图形用户界面承载着丰富而复杂的文化信息。图形界面设计的一个重要目的是传达信息,其本身就是一种信息传播现象。图形用户界面设计不仅是一种信息传播行为,也是一种文化符号行为,其过程可以看作是一个文化信息传播过程。它与文化传播虽是两个不同领域的概念,本文仍将二者紧密地联系在一起。文章从文化传播角度对图形用户界面设计进行全新的思考与探索。追溯图形用户界面设计发生发展的历史轨迹,厘清图形用户界面设计的概念、疆域和艺术特点,通过对具有典型意义的代表性作品进行分析,深入探讨图形用户界面设计发展过程中涉及的现代文化环境与传统文化资源,分析应对跨文化传播活动中的各种问题,挖掘图形用户界面设计的理论价值,从而更好地把握图形用户界面设计与新技术融合后的发展趋势和动向,这对丰富我国图形用户界面设计的理论研究,促进我国图形用户界面的设计创作,充分发挥图形用户界面的媒介优势,使我国图形用户界面设计准确定位于国际图形用户界面设计发展轨道之中以及对于我国数字产品的发展和传统文化的发扬都将具有较为深远的意义。本文由七个部分组成: 第一部分引论简要介绍了本文研究的前提、起因,研究目的、意义及方法,并对论文研究的相关概念和国内外研究状况进行了精练的阐述; 第二部分概括说明了图形用户界面的形态变迁与应用内容,并从文化传播的角度对图形用户界面进行了认识剖析; 第三部分主要介绍了基于文化传播的图形用户界面设计环境,主要包括全球化传播语境、地域文化环境和消费文化环境; 第四部分回顾了全球视野与中国传统文化的现代转向,在阐述中国传统文化与图形用户界面设计的基础上,探索了中国传统文化在图形用户界面设计中的再生问题; 第五部分为全球传播语境中图形用户界面设计的跨文化传播思考,涉及文化差异、冲突、霸权、沟通、融合、认同等影响文化传播的因素,基于文化多元化和消费时代的文化融合现实,用“和而不同”的态度构建文化身份以实现文化归属; 在上述论述的基础上,第六部分对未来
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

clancy_wu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值