社交网络分析
过去几十年信息技术的发展,现在人们已经生活在一个充满各种各样复杂网络的社会。你也许无法想象人类社会和网络有什么关系,举几个例子你就会明白,比如:使用微信或微博所涉及的社交网络;一到早晚高峰就堵车的城市交通路网;定期检修的电网与自来水管网等等。这些不同领域的背后都涉及到一个复杂的网络,而这些都属于网络科学的范畴。而社交网络分析,只是其中的一个方向。
社交网络分析有很多应用场景:
- 最常见的是购物软件或视频应用中的推荐,通过分析一类用户的行为去推测可能喜欢的商品或视频;
- 其次是识别社交网络中不同的圈子,俗话说物以类聚,人以群分;
- 在将网络划分为不同圈子后,即可对不同的群体进行精准营销,或者强化消息的传播;
- 通过分析社交网络中的关键节点,及时切断关键节点以阻止负面信息的传播等等。
R 简介
作为一个 R 语言的初学者,没有人会关心 R 的发展历史,因为学习一门语言的最终目的还是为了将其作为一种工具使用。你问我知道吗,我当然也不知道。为了让本章的内容更加的充实,我从维基百科摘录了一些内容。
R 语言是一种自由软件编程语言与操作环境,主要用于统计分析、绘图以及数据挖掘。R 本来由来自新西兰奥克兰大学的统计学家罗斯·伊哈卡和罗伯特·杰特曼开发,现在由 R 开发核心团队负责开发。伊哈卡与杰特曼两人名前缀字母都是 R,R 语言因此得名。同时,R 这个单一字母的名字也表明 R 语言与 S 语言一脉相承。通常用 S 语言编写的代码都可以不作修改地在 R 环境下运行。R 的语法来自 Scheme。R 的后台程序大多由 C 语言、FORTRAN 语言和 R 自己写成。
R 语言第一次正式发布于 1995 年。第一次正式的“稳定测试版”(v1.0)于2000年2月29日发布。
R 与 Python
根据 StackOverflow 2021 年开发者报告的数据来看,排除掉“全世界都在写前端”的这个原因,Python 当之无愧“天下第一”的称号,曾经的“天下第一” PHP 也已经排在了第 11 名的位置,至于 R 语言,则排在了 20 名开外。那么这是不是就意味着我们要去学习 Python?
当我们需要去学习一门新的编程语言时,自然是我们掌握的工具、资源已经无法满足解决新问题的需要,那么新学习的语言必然要拥有丰富的解决方案供我们使用。对于社交网络分析而言,Python 与 R 都拥有非常优秀的类库,像 Python 中的 NetworkX , R 中的 igraph 。但 R 语言起家于统计分析,因此关于数据科学的类库也更多,对于数据分析也更优秀些,同时还可以制作精美的图表。
其次要考虑学习成本。Python 作为一个万金油,加上一个“容易学习”名头,足以吸引大部分人的目光。但是我认为初学 Python 上手很慢,Python 丰富的语法糖特性很容易造成初学者理解困难。R 作为一个面向对象的语言,但由于其存在不同实现面向对象的类型(S3、S4……),某种程度上来说 R 的面向对象不强。对初学者来说,面向对象通常很难理解,而 R 语言常用的功能大部分是以函数提供的,很容易实现面向过程的编程,这样就能专注于解决问题本身,而不是去弄明白程序为什么要这么写。
最终不管是选择 R 还是 Python ,解决问题是关键,语言只不过是过程中的一个工具。如果你有 Python 基础,好好学习 NetworkX 包就能达到目的;如果你其他语言基础较弱,也不清楚什么是面向对象,那么 R 语言可能是更好的选择。
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/293367.html