英文语法 知乎复杂句 怎么学 知乎

深度学习中:”多层的好处是可以用较少的参数表示复杂的函数“这句话该怎么理解?
深度学习通过增加隐含层的层数提高了特征学习的能力,为什么多层的效果会好呢?我看到过一种说法:”多层的好处是可以用较少的参数表示复杂的函数“这句话该怎么理解?
按投票排序
我谈一下我的看法:从复杂度来考虑,deep network 和 “shallow network” 相比层数更多,相对每层所需要(注意,是所需要的,不是我们 design 的,这里有不少方法可以检验)unit 个数会少一些。但是从训练的角度看,如果整体一起训练 deep network (以用 MCMC 训练为例),出现的困难主要在于收敛时间长而且有陷入局部极小的可能 (关于 MCMC sampling 的缺陷可以参见 Max Welling 等人做 Herding 的讨论)。所以提高层数从而提高学习能力,主要从两点来说:一个是提高了 feature representation 的能力,也就是说利用更简单的形式表示更多的可能性。一个简单的例子就是考虑真假逻辑的表示,两层的结构(一阶逻辑)就可以表示一张真值表。第二就是把整体训练改成了逐层训练,这样的做法是吸收了 "shallow network" 相对容易训练的好处。我们现在提出了另一种训练模式(当然这里就不透露了年内会发表),并且分别讨论了它运用在整体训练和逐层训练上的效果,这里可以说的是整体训练在底层可能比较顺利(因为抽象程度离原数据不远),但是在中上层收敛会逐渐变慢。逐层训练的好处就是让它随时都处于一个“靠近底层的抽象”的状态,非线性的影响会小不少。总体而言,决定 network 训练效果的,一个是数据预处理的抽象程度,另一个是网络非线性的影响。Deep network 的好处是它自己帮我们做好了数据预处理(而且是非人工设计的),但是对于一个我们已经根据经验正确设计好的数据预处理,它相对 "shallow network" 的优势就不明显了。不过大部分时间的难点就在于如何找到正确的数据预处理,所以这也是 deep network 发展出 representation learning 的由来之一。最近在 arxiv 上有篇论文 argue 到底我们需不需要深层网络,可以参考一下。Do Deep Nets Really Need to be Deep?当然在实践中,只要有足够的计算资源和训练数据,"shallow network" 的效果也不会差到哪里去。
神经元的数量,决定了神经网络非线性的程度。(为何NN需要非线性函数可以参考这个提问:)过多参数使得计算量增加很多。同时容易过度拟合。多层确实可以减少参数的数量,与此同时不减少神经元的数量。参看下图:但是多层也有坏处,比如太多层优化起来很困难,在BP的时候会出现导数消失/爆炸的情况(vanishing/exploding gradients)。这也是导致像RNN (recurrent neural network)这样深层,表达力很强的网络很多年都没有很好的成果。另外一个原因是当时的计算机计算能力太差。现在出现了更好的优化方法,比如每一层逐层BP,最后再微调;再比如一些二阶的优化算法等等。加上计算机计算能力加强,所以深层网络又重新回到了人们的视野。
直觉上可以这样理解多层神经网络:深层的神经元识别的是更为抽象的信息。由于有了更为抽象的神经元来表示信息,所需要的参数就少,就好比人类的学习过程,经过不断的总结归纳,需要死记硬背的东西就少了。
说的直白点就是加层可以提取公共子表达式,减少函数中表达式的数目,所以参数少
已有帐号?
无法登录?
社交帐号登录该如何学习 R 语言?
背景金融小硕,想学习R语言却不知道应该如何学习,应该按何种步骤,看哪些书或者视频资料等东西,所以提问这个问题,希望知道学习R语言的一般过程是怎样的,谢谢大家~~希望大家可以按以下的内容来回答,如不适合则无视。在每个阶段应该看哪些书,有哪些网络上有的视频资料比较好,应该从事什么样的练习加以巩固。
按投票排序
由于R语言主要是和统计、计量、数据挖掘等领域相互联系,因此核心是这些领域中的问题,R的任务就是帮助你花更多的精力在思考和解决这些问题,而不是做计算上或者技术上的底层架构,或者不断重造轮子,并且不丧失灵活性(可编程性)。因此,学习R可能并不像学习纯粹的一门编程语言一样,最好需要在这些问题的上下文中学习,脱离了数据科学的背景学习R,仿佛就是学习如何使用扳手,却根本不认识螺丝钉。根据我自己的经验,学习R比较有效的过程基本上是:看在线互动教程、打代码,了解R的最基本的东西,大概能做哪些事情(比如计算一些线性回归),自己根据这些教程去做各种变化,做许多实验,探索一下这个语言的基本语法和构造。看一些入门书籍,比如 Introductory Time Series with R等等,给你展示怎样用R来比较完整地解决一个问题。可以根据你的领域选择类似的书籍。开始用R解决一些统计、计量相关的计算性问题,比如用自己的数据跑一些模型,探索这些数据里面可能有趣的东西。在数据较为复杂一些的项目中使用R,发现数据操作能力太弱,开始接触更深层的R概念,比如可以看 Data Manipulation With R (Phil Spector),形成更加系统的概念,逐渐掌握操作复杂一些的数据和对象的能力。学习最流行的R扩展包的使用方法,发现整理数据和建模中的许多工作都大幅简化,工作效率出现质的提升。逐渐开始做更为复杂的项目,形成一整套数据处理、建模的技术和技巧,形成较为系统、完整的认识和知识结构,有较强的社区检索能力,遇到问题能够自行解决或者通过社区解决。阅读进阶的书籍,例如 Hadley 的 Advanced R Programming,对R的底层和开发有了更加深刻和全面的认识,形成了使用R的基本直觉。参与到开源社区,不断跟进最新的发展和技术。参与到R会议,结交更多的朋友,交流使用经验,进一步提升视野和能力。=== 原答案 ===R语言有很多国外的书籍,建议就你的研究领域或者工作领域来选择书籍。假如你做的是时间序列分析,那么作为入门你就可以看《Introductory Time Series with R》,里面有很多生动的例子,数据也可以直接获取。把书里的例子和练习都做掉,每个例子用自己的数据去多做些实验,自己探索一下涉及到的函数还能做些别的什么,并且看看这些函数的文档。此时对R已经有了初步的了解。如果做到一定程度,开始用于自己的项目,就会发现自己用R处理数据的能力很弱,一般表现为想把一种数据处理成另外一种样子,但是不知道如何实现。此时,需要补充一下用R整数据的基本方法,可以读《Data Manipulation With R - Phil Spector》,里面通俗易懂地介绍了R数据处理的基本观念和方法,让你大概知道R处理数据时是什么样的机制。这样你在写代码时就有更高的预见性,否则很容易出错。接下来需要比较系统的应用,这就需要你把R作为主要的生产语言来完成你的项目,在此之前如果为了练手,如果你是研究者那么你应该找几篇你的研究领域的论文并用R复制出来,再次过程中你会修补很多缺漏和不熟悉的地方,也会对数据处理和分析建立起一些直觉。之后就是不断地积累了。(PS: 建议使用RStudio来做R开发,目前的Release Preview版本有了不错的调试能力,严重推荐)最近的一篇英文文章谈了这个:===
更新 ===最近密集地用R做较为复杂一点的金融交易相关的项目,有很多资源值得大力推荐。首先,如果想从 R user 成长为 R programmer,要走了路还是很长的,这不仅涉及到了R的基本应用,还涉及到用R语言作为主要语言开发较为复杂一点的项目。如果项目开发涉及到团队合作,并且希望项目能够实现代码重复利用、使用灵活、提升代码的运行效率、加快产品开发周期等等,那就不简单是学习R的问题了,还有许多工具需要使用,下面列出一些需要掌握的东西:版本控制系统 Git,面向团队开发可以将项目托管在GitHub或者Bitbucket?网站上一些编程本身方面的技能,例如函数式编程等等充分利用已有的成熟扩展包做一些较为复杂的数据操作和可视化,例如plyr做data.frame拆分——变换——整合, reshape2做long format和short format数据表之间的转换, data.table, lubridate, stringr, ggplot2等等掌握一定的数据库使用方法,例如用RSQLite扩展包操作简单易用的SQLite数据库程序调试(debugging),能够找到程序不完善的或者有错误的地方和比较根本地解决错误根源遇到问题能快速自己解决,解决不了或者认为解决方案不太好能够在stackoverflow上发现解决方案或者提出问题根据 Hadley Wickham 的说法,R目前面临的一个主要挑战就是R的主要用户群都是业余使用者(R user),而不是专业开发人员(R programmer),这两者写出的项目从质量到运行效率、可扩展性、可重复性、开发周期、共享度都天差地别。如果希望自己的项目实现上述特性,你自己或者自己的团队必须能够升级到 R programmer的水平,一个要旨就是大量的使用、参与社区讨论,有问题多自己解决或者在社区寻求帮助,发现扩展包的问题直接去github或者其他社区提出issue或者直接fork项目提交改进方案。虽然使用R的人群中大部分不是专业的IT从业人员,而是研究者、金融领域相关人员,但是提升自己的技能到专业水平有诸多益处。有一定经验的使用者,建议读一下 Hadley Wickham 的
里面的全部文章,内有许多很有价值的东西,值得花时间思考的学习。另外,我的博客()也在缓慢更新自己使用R的一些心得。===
更新 ===我在GitHub上写的一个帮助学习R的开源项目learnR ()最近一个月增加了大量内容,从初级到高级、常用扩展包、数据可视化等等。R最强大的地方是扩展包,例如stringr, reshape2, plyr, dplyr等等用来做数据操作速度很快很好用,比起R base提供的函数要方便得多,因此掌握一些流行的扩展包是非常有必要的。最近做了一个模仿F# pipeline operator的R扩展包 pipeR(),可以大幅简化流程化的数据操作,欢迎使用!===
更新 ===最近发布了一个新的扩展包
其实相对于常见的编程语言,R语言还是非常容易上手,并不需要很多年的编程经验。而且可以在数据分析领域大展身手。前言我当初学习R的时候在网上搜到一则流传很广的R语言学习路线图(),我在微信圈,微信公众平台上也见多次,写的确实很详细。但是对一些没有编程经验的童鞋来说,学习的难度还是太大了。后来自己浏览了很多R语言书籍,尝试了一些门槛比较低的书籍。自此,R语言学习才走上正轨。以下涉及内容包括R语言书籍的推荐,以及R语言相关课程的推荐,学完这个教程的内容之后足以应付工作学习中遇到的统计分析的问题了。经典书籍推荐
R语言有两类书籍比较“坑”,一类是Programming类,一般都带programing字眼,但不绝对。这类书籍一般是计算机背景的人写的,关注的重点是编程(鞋代码和编程不是一码事),底层的运行机制之类的,比较难以捉摸,典型的例子是《The art of R programming》。还有一类是讲统计知识比较多,而且喜欢推公式。虽然有所裨益,但是会分散很多学习R的精力,可以作为后期提高的书籍,但是作为入门不太合适,像《The R book》。
讲完了“不好的”R的学习资料,可以规避一些“误入歧途”的风险。下面介绍一下我觉得比价有用的学习资料。学习任何语言的捷径就是Learn by dirty。这里推荐一个网站,code school的Try R 课程,非常基础,从最基本的语句的赋值到最后的数据框的基本操作,手把手一步一步的教你,然后对你输入的语句,网页会给出判断,如果写错了,还有很详细的解释。网页全部是英文的,英语过了四级的童鞋应该可以应付了。
R的入门书籍,比较好的是Learning R , 中文名是《学习 R》。第一章到第五章的数据的基本入门,必须要细看的,而且要读好几遍的,这是R的最基本的东西,需熟练掌握,多家练习。别觉得看懂就行了,只有自己敲出来运行正确才行。第六章环境和函数这一章建议直接跳过,比较抽象,等回头R学的差不多了,再回头看比较好。大多数人,平时基本不涉及到这一样的内容。第七章 字符串和因子也是很重要的一章,特别是医学领域。第八、九章的循环,量力而行。第八章的内容其实大多数其他编程语言都会涉及。但是在R里面,这些显循环,用的较少。其实主要还是向量化的操作为主,也称隐循环。第九章的隐循环非常有用,是R最精华的东西,就是学习起来有点困难。其主要内容是 apply族函数,包括lapply, sapply, tapply, apply, mapply等。这本书最优秀的地方在于数据的subset部分,各种方法讲的非常详细,也有很多的例子。这也是R语言比较难入门的地方。《R in Action》 确实一本非常优秀的书籍,我看喝多大神都推荐这么书,我大概学了一遍,确实非常不错。这本书非常好的地方在于围绕具体的问题展开,教你如何利用R进行操作,而且选取的例子也非常具有代表性,所以建议每个例子都要详细研究。但是这本书学习曲线比较陡峭,可能上一章的内容还没有消化,又要开始新的内容了。遇到问题时建议多点耐心,谷歌或者请教别人,把这些知识点掌握了,这是R的基础。还有一本书,《R cookbook》,这本书是围绕具体的问题进行设置的。所以可以作为一个遇到困难时候的快速翻阅手册,里面特别有用的章节是如何运用apply组函数,上面两本书都讲得不是很详细。R绘制统计图的功能非常强悍(你见过这么令人心神荡漾的图嘛!)(你见过这么令人心神荡漾的图嘛!)你见过的没见过,想到的,没想到的,都可以绘制出来哦。哈哈,心动不如行动,几行代码一敲,令人心神荡漾的图片就出来啦。R绘图非常简单的,就是一个简单的学习记忆的过程。R语言绘图发展的非常快现在有三大绘图系统,基础绘图系统,Lattice绘图系统,ggplot2绘图系统。虽然各有其使用价值,但个人推荐ggplot2绘图系统以及基础绘图系统。 Lattice对于多分组的数据的展现比较好,但是ggplot2是可以很大程度上替代其功能,不学习也可以,非要用的时候依葫芦画瓢就可以了。下面主要介绍R的基础绘图系统和ggplot2绘图系统的学习路线。R基础绘图系统《R in Action》中,花了很大的篇幅介绍了基础绘图系统,如果学习完了,工作中碰到的很多统计图就可以胜任了。如果你喜欢钻研,可以看看谢益辉(Knitr包的作者)的《现代统计图形》,讲的非常详细和透彻。不仅如此,更是讲解了图形的选择,图形的设计方面的知识。学有余力,不妨学习一下ggplot2绘图系统, 推荐《R graphics cookbook》一书。书中不仅有ggplot2的绘图代码而且还将其与基础绘图系统进行了比较。介绍的图形非常实用,而且ggplot2的扩展性非常强,可以发挥你的想象力,创造一些新奇的图形。
(R语言书籍全家福)
(R语言书籍全家福)R语言学习网络课程推荐:1. Datacamp,learn by coding类型的网站,课程设置非常用心,难度合适,内容丰富,最好的R语言学习网站之一。2. 国内的视频课程国内的R语言网络课程最丰富的应该是炼数成金(dataguru)平台,课程包括《R语言数据分析、展现与实例》,《R七种武器之交互化展示包shiny》,《R七种武器之文本挖掘包tm》,《R七种武器之数据可视化包ggplot2》、《R七种武器之数据加工厂plyr》、《R七种武器之金融数据分析quantmod》、《R七种武器之网络爬虫RCurl(第四期)》等。其中比较适合入门的课程是《R语言数据分析、展现与实例》3. MOOC课程Coursera John Hopkins 专题课程不错;还有edX上MIT的The Analytic Edge课程也不错。其他答案有详细介绍不赘述了。4. 强烈推荐Swirl包,你值得拥有。
今年年初开始接触R语言,自学兼修课,学了一个学期,暑期在某上市互联网公司找了一份纯粹用R语言工作的的数据分析实习,现在应该可以说熟练掌握R语言了。我的学习路径如下:名师指导——学习coursera公开课;巨人肩膀——浏览技术博客+几本入门书籍;社区帮助——很多牛人只是比你更善用搜索引擎;三人行——找到一个一起学习的小伙伴;实践实践实践——用R完成Assignments,做助研,找一份数据分析实习。一.公开课推荐。公开课首推上约翰.霍普金大学的数据科学系列课程。该系列完全使用R作为分析工具,轻松引领你从R的初学者转变为R的开发者。该系列课程包含如下几门课。1.《数据科学家的工具箱》该课程主要介绍了数据科学家常用的一些工具。包括R、 RStudio、 Git 、Github ,这里强烈推荐RStudio,作为R的一个集成开发环境(IDE), 它可以在Latex、 PDF、 markdown、 html 中游刃有余,并且是个强大的Literate Programming 工具。除了以上提及的强大工具之外,还介绍了数据的类型、数据分析的方法过程、以及数据科学的一些知识点。2.《R语言程序开发》主要内容包括:1)R概述,R的数据类型和对象,数据的读写操作;2)R中的控制流,函数式编程,作用域,时间数据类型;3)循环函数,检查代码漏洞的方法;4)数据模拟实现,代码风格规范。3.《获取和整理数据》完成这门课程将获得技能:1)从各种资源获取数据;2)数据清洗的原则;3)数据整理的工具与技巧。4.《探索性数据分析》完成这门课程将收获:1)运用R中的base,lattice,ggplot2等绘图系统进行数据的可视化展示;2)对不用类型的数据运用基本的数据展示原则创造丰富多样的分析图;3)基于特定问题出发,运用探索高维数据的统计技巧,创造多维度数据的可视化方式。5.《可重复性研究》通过这门课程,你将学会:1)使用Rmarkdown撰写文档;2)在分析报告中嵌入R代码;3)用knitr等相关工具编译Rmarkdown文档;4)进行可重复性的数据分析研究。6.《统计推断》这门课主要介绍统计推断的基础。可以收获:1)统计推断的概览;2)进行统计推断的模型假设;3)复杂统计推断的技巧。7.《回归模型》这门课教会学生:1)如何进行拟合线性模型,如何进行残差分析;2)进一步探索如何引入哑变量解决特殊的模型设定问题;3)介绍广义线性模型,特别是Poisson回归和Logistic回归。8.《实用机器学习》完成这门课将收获:1)经典机器学习算法;2)如何应用多种机器学习工具;3)如何对真实数据进行模型评估和预测。9.《数据产品开发》内容涵盖:1)如何创造统计产品以进行交互式探究;2)重点学习如何探究不确定性的统计结果;3)如何创造Shiny应用,以及数据产品相关的R扩展包。二.技术博客和书籍推荐R-bloggers:R and Data Mining: 老师的个人博客:,肖凯老师推荐了十几本R参考书。书籍:《R语言实战》,《R语言编程艺术》,《机器学习——实用案例解析》,《ggplot2数据分析与图形艺术》,这些书都有中文版。三.社区帮助l R自带的帮助文档;l R Journal: ,对研究某个包非常有帮助;l 一个神奇的网站:,牛人聚集,99.9%的R问题都可以在上面找到你想要的答案;l R Mailing List: l Talk Stats: ;l Google,善用英文搜索;四.小伙伴找到一个志同道合的同学一块学习,一块在coursera上刷Assignments,互相帮助检查代码,互相督促看书敲实例代码进度,比较容易坚持下去,在此,感谢。五.实践实践实践我在学校选修了两门R数据分析相关的课程,并且给老师做研究助理,用R完成老师布置的编程任务,学以致用,非常高效率。暑期的时候找了一份数据分析实习,实践两个月,对代码的规范化和可重用性的重要性有了更深刻的理解。------------------------------------------------------------------------------------------------------------------------更新:最近才刚开始在知乎答题,没想到会有这么多的人点赞,真的非常感谢大家的认同。评论区有的同学反馈了几个问题,在这里罗列并补充说明一下。公开课很boring,你居然刷完了?没有统计学基础,可以按这个路径学习R吗?刷个课就能找着数据分析实习?对于问题1,我非常认同,其实我也没有刷完整个系列。主要是因为进度太慢,内容太少,并且我是统计专业出身,课程的很多内容我已经有了一定的把握。但是,我认真的刷完了第2门和第8门,完成了相应的Assignments。我相信这个系列课程对欠缺一定的统计学基础的同学一定会更有帮助。对于问题2,我的回答是“definitely yes!”.对于问题3,我想这位同学应该没有仔细看完整个答案。我虽然是用一个学期从开始接触到掌握,但是花的时间也还挺多的。其中,花时间最多的时候是给老师做助研,研究一些R的新奇功能,以及一些R包源码。另外,我用R完成了四门课的小论文(报告)的编程。突然想到在Quara上曾浏览到的一个回答:有一定基础的同学我觉得是可以借鉴学习的。Hadley大神是这样回答的(我想谁是Hadely应该不用解释了吧(●'?'●)):Writing. I have worked really hard to build a solid writing habit - I try and write for 60-90 minutes every morning. It's the first thing I do after I get out of bed. I think writing is really helpful to me for a few reasons. First, I often use my writing as a reference - I don't program in C++ every day, so I'm constantly referring to @
every time I do. Writing also makes me aware of gaps in my knowledge and my tools, and filling in those gaps tends to make me more efficient at tackling new problems.Reading. I read a lot. I follow about 300 blogs, and keep a pretty close eye on the R tags on Twitter and Stack Overflow. I don't read most things deeply - the majority of content I only briefly skim. But this wide exposure helps me keep up with changes in technology, interesting new programming languages, and what others are doing with data. It's also helpful that if when you're tackling a new problem you can recognise the basic name - then googling for it will suggest possible solutions. If youdon't know the name of a problem, it's very hard to research it.Chunking. Context-switching is expensive, so if I worked on many packages at the same time, I'd never get anything done. Instead, at any point in time, most of my packages are lying fallow, steadily accumulating issues and ideas for new feature. Once a critical mass has accumulated, I'll spend a couple of days on the package.Finally, it's hard to over-emphasise the impact that working full-time on R makes. Since I've left Rice, I now spend well over 90% of my work time thinking about and programming in R. This has a compounding effect because as I built better tools (cognitive and computational) it becomes even easier to build new tools. I can create a new package in seconds, and I have many techniques on-hand (in-brain) for solving new problems.我觉得R的入门门槛是比较低的,即使你没有编程基础,只要你集中一段时间(几个月?)投入,你应该就能享受到它带给你的便利。但是,要想成为一个R开发者,是需要持续的付出一定的时间和精力的。
首先R是一种专业性很强的统计语言,如果想学得快一些的话,基本的统计学知识要懂,不然很多东西会掌握的比较慢。
掌握基本语法和操作,推荐国内的已经翻译的比如《R语言实战》《R语言编程艺术》,这个过程中最好结合一些小例子来做一些分析的东西。如果需要可视化的话,强烈不推荐学习R本身的作图系统,实在是太不友好了.....还是用ggplot2吧。
掌握了上面的,就可以深入一些了,如果是做数据分析和可视化,推荐《ggplot2:数据分析与图形艺术》,这个才是作图的神器啊.....如果是空间分析相关的,推荐《Applied Spatial Data Analysis with R》,这个如果可以的话看英文版,而且要有地学的一些知识背景,中文版翻译的太次了,尽量不要看。数据挖掘机器学习之类的,可以看看比如《数据挖掘与R语言》、《机器学习——实用案例解析》,不过我觉得这几本书没上面的那几本好,但是可以大概看看是咋回事,最好还是看看专门的相关书籍,熟悉各种算法和流程,到时候搜索R的package,照着文档和例子搞定,不是特别难。
最后,强烈推荐R-bloggers,统计之都以及谢益辉、肖凯、刘思喆等人的博客(自行Google以及到上面的网站找链接),订阅一下,会很有帮助,RStudio是个很棒的IDE,用起来很爽,功能很强大。
安装好R、Rstudio1、入门推荐这个帖子,把里面的代码敲几遍,先对R有个基本的了解看一下这个视频:接下来学习vector、list、dataframe、matrix,string、int、float、factor这些数据结构、数据类型,学习控制流语句(if for while repeat break)、apply族函数,导入数据,导出数据,推荐&R语言实战&,如果认真学完这本书,足够用R解决一些问题。不管你用什么学习资料,数据结构,数据类型,控制流语句是一定要学的。资料不用多,&R语言实战&足矣。不要找学习资料,&R语言实战&足矣!coursera上面的课程也暂时不用学!2、用R入门以后,不要忘了你想用R做什么。如果是统计专业学生,推荐吴喜之老师的&统计学--基于R语言&课本,这本书上的例子和习题超多的,动手敲代码,动手做课后习题,敲完代码,肯定会对统计学有新的理解(统计图,假设检验、置信区间,p值等),对R的操作也会更加熟练,接下来的统计课程,全都可以用R。多元统计分析,推荐暨大王斌会老师的多元统计课本(忘记叫什么名字了),时间序列分析,貌似潘虹宇的&时间序列分析——基于R语言(第二版)&很不错,不过因为我时间序列方面学的不怎样,学着学着有点迷糊,所以对这本书的评价一般。另外一本吴喜之老师写的&时间序列分析&应该也不错(没看过),吴喜之老师写的书通常例子习题多,较为容易理解。我在学R走过很多弯路,找了很多资料现在还看不到1/4.其实只要学 、&R语言实战&,剩下的用到再学,交给时间慢慢沉淀。学习是以需求驱动,解决问题为导向的,当然我们没有那么多需求,不会遇到那么多的问题,把&R语言实战&、&统计学--基于R语言&这两本书的例子敲一遍,习题自己做一遍,R语言入门了!R语言的帮助系统特别强大,以后想学什么,多看帮助文档。这是我走了那么多弯路总结出来的办法,算是比较高效的。学一门语言,别人能帮的只有推荐资料,规划好学习路线,剩下的靠自己。如果时间比较充裕,推荐这种学习方法。
上有很多R的课程,从入门到专家,不过要用英语------------------------即使对一个经验丰富的程序员,R语言也有很多坑,比如应该尽快熟悉apply系列函数,避免使用循环;在数据操作上有很多函数可以简洁快速地帮你完成任务,可是你不知道他们的存在。多看高人的代码,与同学交流是一个很好的办法,循序渐进、循序渐进、循序渐进。推荐几门网络公开课程:R的基础编程,R Programming, Johns Hopkins University R与统计基础,Data Analysis and Statistical Inference, Duke University R与数据分析,The Data Scientist’s Toolbox, Johns Hopkins University 多看课程的论坛,多学习好的编程风格。可以加入R for Data Analysis Q群
竟然没人提到这个技能:打开google,在搜索框输入 filetype:r -rebol 空格一下,加上需要搜索的关键词,比如这样:lm 是要搜索的关键词,点开下面的链接,可以直接看到代码。个人觉得这是学习R最好用的技能,没有之一,有事没事多问问google。RSeek和R site search也很不错,试试就知道,就这样子吧。lm 是要搜索的关键词,点开下面的链接,可以直接看到代码。个人觉得这是学习R最好用的技能,没有之一,有事没事多问问google。RSeek和R site search也很不错,试试就知道,就这样子吧。#----------------------------补充-------------------------------------------------- 牛掰大哥弄的,不用翻墙也可以使用google这段时间忙毕业论文,一直在学习R,等闲下来,我会试着整理下学习心得吧,先占坑
我第一次接触R是在学校,浅尝辄止。至于系统地学习是之后的事了,为什么学习R?这篇文章说的很好前面的答主已经分享了很多,我就分享一些我学习R时候的书单:1. 入门由R语言的用途所决定的,脱离了实际用途的语言书都是耍流氓(曾经看过一本纯讲R语法的),我只能跪了。《R语言实战(R in Action)》,,这本书是从统计学出发,按难度从低到高讲述了如何用R语言来实现统计分析。《The Art of R Programming》,,这本书是从编程的角度写的,能比较系统的了解R语言的特性。《learning R》,这本书从数据分析角度入手,将数据获取→整理清洗→数据分析→数据报告这一整个数据分析流程和R语言结合。看起来很过瘾。2.进阶进阶方面我着重分享些关于数据挖掘和数据可视化的书《Data Mining with R Learning with Case Studies》《Machine Learning for Hackers》这两本书都是关于数据挖掘的,亮点在于都是以案例为基础,提供大量的示范代码,跟着学下来受益匪浅。结合《learning R》最后几章,对于写出漂亮的R代码很有帮助。说到数据可视化不得不说说ggplot2,这几乎是装了R Studio以后第一个装的东西,R中最好的绘图包。《ggplot2 Elegant Graphics for Data Analysis》此书详细介绍了ggplot2绘图包,不过缺点在于书有时候跟不上绘图包的升级速度。3. 参考手册我手边上只有一本参考手册,这是像词典一样的存在(用途及厚度皆是)。《R in a Nutshell》4. 其他还有很多不同的书,比如高级编程的《R Programming for Bioinformatics》,《Advanced R programming》,科学计算的《Introduction to Scientific Programming and Simulation Using R》等,在下不才,无法说出优劣。书只是进步的垫脚石,我觉得学习R在看书的同时一定要结合相关领域去实践:算法的实现,工具的上手,甚至参加些相关的案例比赛,学会如何将语言用在实践中(数据挖掘的话我推荐,上面的101的比赛拿来练手很不错)
使用Swirl。我在Coursera上面报了一门的R语言课程,老师照着PPT将,讲的跟一坨翔一样。Assignment都不会做。然而在这门口的week1,的最后一个视频,老师推荐了一个package,叫做swirl,安装上以后,整个世界都和谐了~你要做的只有几步,剩下的Swirl全部会教你的~1、安装R2、安装RStudio3.在RStudio下输入以下命令:install.packages("swirl")
安装Swirl4、调用Swirl:library(swirl)
install_from_swirl("R Programming")
然后就可以开始使用Swirl了。附一张Swirl的课程列表~使用Swirl,包你3天轻松入门R语言,入不了门你过来打我脸,我包你飞机票。P.S.附上我的R语言交流群:(仅限参加了Coursera上面R语言课程的同学加入,请备注在申请理由中~)
大致来说说。未必全对,但肯定至少有一部分是对的。一句话:“学习”R,重要的不在于选择哪一本教材。重要的是,学会自己给自己提问题。只有提出了问题,再尝试着自己去回答这些问题,才能不断进步。对于“研究”生来说,提出问题的能力,往往比解决问题的能力要重要得多。在“学习”R之前,想想你打算用R来做什么?换句话说,要“学习”的内容是什么?1.数据的常规操作。2.回归。3.数值模拟,仿真。4.绘图分类之后,工作就简单一些了。1.可以进一步细分为1.1 数据操作1.2 数据的保存1.3 不同格式数据的读入与导出这部分,此前默认的方式是用excel可视化表格来处理的。于是你的问题就可以近似变为:如何能让我用R实现此前一直用excel实现的常规功能?1.1 以下几个小练习一组时间序列数据,比如GDP,定义为Y(t),,在excel中这么保存,在R中怎么搞?R中,如何测算?R中,如何测算?R中,如何将Y(t)进行指数化处理,以Y(,其他年份依次调整?假定根据价格水平对Y(t)作平减,变成不变价格指数?将上述源代码写出来,保存,并且添加相对应的注释,以后就可以类似的使用了。下一个有意思的问题:如果2012年的数据出来了,你的源代码是否可以直接测算出上述数值?如果不能,需要对源代码做出怎样的调整?1.2 R中的数据,如何保存成一个合适的格式,可以发给其他人,供他们读取并使用?1.3 R中的数据,怎么快速切换成CSV txt之类?反之如何操作?我手头有一组R数据,怎么能够让它快速被其他软件比如stata读取?python呢?如果数据很大,我是不是需要用mysql postgresql之类的数据库了?如果是的话,我该怎么设置?怎么操作?2.回归线性回归,lm()的用法,我掌握的熟练么?dt &- lm(y~x1+x2, data=datatest)dt.sum &- summary(dt)dt.sum$ 后面的那一系列参数,我都熟悉么?拟合优度如何调出来?x1 x2的系数和t值,怎么方便查找?把源代码写好之后,我更换另一组datatest数据,是不是依然可以用这组源代码,将新一组数据对应的回归内容搞出来?非线性回归,logit probit 怎么做?nls()gls()或者其他?这方面应该注意些什么?3.不多说了,这方面更复杂一些4.绘图我该用什么命令?plot()还是更复杂的ggplot2?plot()如何改变线条颜色?实线虚线渐变线怎么搞?线段粗细如何设置?x和y轴的取值范围,坐标定义?main title?x轴和y轴的取名?如何在一个图中画两条以上的线?par(new=TRUE)如何输入中文?如何定义legend?如何在图中加入OLS回归式?拟合优度?t值?如何在图中加入一条垂直线?我在图中还想再多说几句话,怎么打进去?我打中文行么?我打latex风格的数学公式怎么搞?我该如何让程序自动将生成的图保存输出成pdf/png格式?subfigure怎么搞?子标题和子栏怎么搞?
已有帐号?
无法登录?
社交帐号登录}

我要回帖

更多关于 语法 知乎 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信