<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          編程語言哪家強(qiáng)?4種數(shù)據(jù)分析領(lǐng)域語言優(yōu)缺點(diǎn)對(duì)比

          共 3135字,需瀏覽 7分鐘

           ·

          2021-04-14 17:17


          來源:大數(shù)據(jù)DT(ID:hzdashuju)

          本文約2600字,建議閱讀5分鐘

          “哪門語言更好”?本文介紹了4種數(shù)據(jù)分析領(lǐng)域語言的優(yōu)缺點(diǎn)。


          編程語言的好壞及排行之爭(zhēng)由來已久?!癙HP是世界上最好的語言”,這是一個(gè)流傳于程序員圈子的梗。

          筆者無意加入“哪門語言更好”的戰(zhàn)爭(zhēng)。每門語言的誕生,都有其特定的背景和需求,都能解決相應(yīng)的問題,脫離需求和背景爭(zhēng)論哪門語言更好是沒有意義的。

          最重要的是,我們需要搞清楚到底要解決什么問題,這樣才能更方便地找到對(duì)應(yīng)的工具。

          在數(shù)據(jù)分析領(lǐng)域(包括量化投資),編程語言具有兩大作用,一個(gè)是科學(xué)計(jì)算、統(tǒng)計(jì)等算法層面,主要用于業(yè)務(wù)的相關(guān)研究;另一個(gè)是系統(tǒng)應(yīng)用開發(fā),主要用來搭建基礎(chǔ)IT設(shè)施,比如數(shù)據(jù)庫(kù)、交易平臺(tái)等。

          Matlab和R主要用于業(yè)務(wù)層面的研究工作。C++和Java則主要是用于系統(tǒng)搭建工作。業(yè)務(wù)研究和系統(tǒng)搭建的區(qū)別還是很明顯的,每類語言適應(yīng)的場(chǎng)景都不太一樣,否則也沒有必要存在那么多種語言了。比如,使用Matlab搭建一個(gè)交易系統(tǒng),那么其速度一定會(huì)慢得讓人無法忍受。如果用C++或者Java做數(shù)據(jù)分析,那么其效率一定也會(huì)非常低。

          至于Python,其優(yōu)勢(shì)在于作為一種膠水語言,其適用面非常廣。換句話說,Python是可以同時(shí)完成數(shù)據(jù)分析和系統(tǒng)搭建兩種工作的,而且性能和效率有著非常好的平衡。使用Python既可以編寫機(jī)器學(xué)習(xí)的復(fù)雜模型,也可以搭建支撐億級(jí)別訪問量的網(wǎng)站系統(tǒng),又或者搭建微秒級(jí)的程序化交易系統(tǒng)。

          什么都能做,而且還能做得很不錯(cuò),這是Python能夠迅速流行的核心原因之一。

          下面將對(duì)上面提到的部分常見的語言做一個(gè)簡(jiǎn)單的介紹。

          01 Matlab

          截至目前,在國(guó)內(nèi)量化研究領(lǐng)域,Matlab的使用率應(yīng)該是最高的。這個(gè)數(shù)據(jù)來源于Wind,在他們的量化接口中,Matlab的使用率是最高的,Python其次。但是Python是增長(zhǎng)速度最快的。


          Matlab作為商業(yè)軟件,功能很全很強(qiáng)大,可靠性也很好。最早一批做科學(xué)計(jì)算和數(shù)據(jù)分析的,很多都是使用的Matlab。量化投資在國(guó)內(nèi)剛出現(xiàn)的時(shí)候,Python和R的社區(qū)生態(tài)還沒有像現(xiàn)在這樣完善,所以很多量化投資的業(yè)內(nèi)人士都更習(xí)慣于使用Matlab。

          如果不考慮授權(quán)費(fèi)用的問題,那么Matlab確實(shí)是一款非常好用的數(shù)據(jù)分析乃至量化投資分析的工具,畢竟有實(shí)力雄厚的公司在支持Matlab的開發(fā),性能和工具包都能得到保證。

          不過,Matlab與Python相比,除了費(fèi)用問題之外,還存在很多缺陷,而且是無法彌補(bǔ)的缺陷。特別是涉及系統(tǒng)級(jí)別的開發(fā)時(shí),比如交易系統(tǒng)、爬蟲系統(tǒng)等。在這些領(lǐng)域,Matlab不僅缺少相應(yīng)的庫(kù),而且速度非常慢,因此其很難在工業(yè)界得到廣泛應(yīng)用。

          02 R

          R是一個(gè)開源的數(shù)據(jù)分析軟件。實(shí)際上,R的誕生,就是為了協(xié)助完成統(tǒng)計(jì)和數(shù)據(jù)分析。由于R在研究機(jī)構(gòu)和大學(xué)非常流行,因此這些機(jī)構(gòu)反過來也開發(fā)了大量相應(yīng)的開源項(xiàng)目,這也使得R的各種統(tǒng)計(jì)功能和函數(shù)琳瑯滿目。


          R很多常用的統(tǒng)計(jì)功能都經(jīng)過了大量實(shí)踐的檢驗(yàn),是非常完善和成熟的,比如,時(shí)間序列分析、經(jīng)典統(tǒng)計(jì)模型、貝葉斯統(tǒng)計(jì)、機(jī)器學(xué)習(xí)等。R也有一些量化相關(guān)的庫(kù),比如quantmod。

          當(dāng)然,R也有它的缺點(diǎn),比如,對(duì)于大量的數(shù)據(jù)處理,R還是力有不逮。由于R更多的是由統(tǒng)計(jì)界人士完成的,所以偏底層的數(shù)據(jù)管理并不是R的強(qiáng)項(xiàng)。

          總體上講,R的統(tǒng)計(jì)和數(shù)據(jù)分析相關(guān)功能非常強(qiáng)大,更適合做研究,不適合開發(fā)大型的系統(tǒng)。

          03 C++

          C++最大的好處就是性能強(qiáng),速度極快。幾乎所有需要高性能的科學(xué)計(jì)算功能都是基于C++或者Fortran開發(fā)的。比如,Python的底層其實(shí)就是用C語言實(shí)現(xiàn)的。


          因?yàn)樗俣瓤?,C++在高頻交易領(lǐng)域也是獨(dú)占一席。然而,在進(jìn)行日常的數(shù)據(jù)分析和研究中使用C++其實(shí)是非常不方便的。因?yàn)镃++語言偏底層,對(duì)編程人員的要求很高,同樣的功能,開發(fā)難度高很多,調(diào)試起來也比較麻煩。

          所以除非是在對(duì)性能有極高要求的地方,一般不推薦使用C++進(jìn)行開發(fā)。

          04 Python

          Python語法非常易學(xué)易懂,很容易快速上手。很多人剛開始學(xué)習(xí)編程的時(shí)候,往往會(huì)選擇從Python入手。


          與Matlab、R一樣,Python也是腳本語言,寫好了就可以直接運(yùn)行,省去了編譯鏈接的麻煩,對(duì)于需要快速開發(fā)和進(jìn)行驗(yàn)證的程序,可以省去很多編碼和調(diào)試的時(shí)間。

          Python也是面向?qū)ο蟮恼Z言,但它的面向?qū)ο蟛幌馛++那樣強(qiáng)調(diào)概念,而是更注重實(shí)用。它能使用最簡(jiǎn)單的方法讓編程者享受到面向?qū)ο髱淼暮锰帯_@也是Python能像Java、C#那樣吸引眾多支持者的原因之一。

          雖然Python是一種腳本語言,但它的速度并不是很慢,特別是在一些庫(kù)經(jīng)過優(yōu)化之后(直接基于C語言編寫接口),速度比純C語言慢不了多少。在這方面,它遠(yuǎn)勝于R和Matlab。

          Python是一種功能豐富的語言,它擁有一個(gè)強(qiáng)大的基本類庫(kù)和數(shù)量眾多的第三方擴(kuò)展生態(tài)。

          Python幾乎在各個(gè)領(lǐng)域都有對(duì)應(yīng)的開源項(xiàng)目,因此我們不必重新造輪子。使用Scrapy,我們可以編寫網(wǎng)絡(luò)爬蟲系統(tǒng),爬取網(wǎng)絡(luò)相關(guān)數(shù)據(jù);使用各種數(shù)據(jù)庫(kù)接口,我們可以將數(shù)據(jù)的存儲(chǔ)、讀取工作標(biāo)準(zhǔn)化;使用PyAlgoTrader,我們可以構(gòu)建策略回測(cè)系統(tǒng)和自動(dòng)交易系統(tǒng)。

          Python還有很多優(yōu)秀的量化、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)(ML)工具,比如NumPy、SciPy、Pandas、Scikit-Learn和Maplotlib等。

          雖然Python在機(jī)器學(xué)習(xí)和一般的數(shù)據(jù)分析中非常出色,但仍然存在短板,比如,其在一部分傳統(tǒng)領(lǐng)域里表現(xiàn)就不算太好,包括很多傳統(tǒng)統(tǒng)計(jì)模型、時(shí)間序列分析等,Python就不如Matlab和R。

          簡(jiǎn)而言之,我們可以用Python構(gòu)建一條完整的量化投資生產(chǎn)線。當(dāng)然,不可否認(rèn)的是,對(duì)于某些環(huán)節(jié),有些語言相對(duì)于Python也有其優(yōu)勢(shì),比如R的統(tǒng)計(jì)庫(kù)、Matlab的科學(xué)計(jì)算、SAS的可靠性、C++構(gòu)建高速交易系統(tǒng)等。不過這些優(yōu)勢(shì)只是95分和90分的區(qū)別,除了少數(shù)極端業(yè)務(wù)場(chǎng)景之外,絕大部分工作Python其實(shí)都能勝任。

          在量化投資領(lǐng)域,大多數(shù)需求都可以用Python完成,這可以為團(tuán)隊(duì)節(jié)省大量的時(shí)間。畢竟在不同的語言之間不斷切換,也是一件很耗費(fèi)精力的事情。

          05 其他語言

          除了上面介紹的語言之外,其實(shí)還有很多其他的語言在量化投資領(lǐng)域中也都有應(yīng)用。比如Java、C#、Scala等,這些語言也都有其相應(yīng)的優(yōu)勢(shì)和特點(diǎn)。不過相對(duì)于上面介紹的語言來說,這些語言在國(guó)內(nèi)的使用群體仍然是偏小眾的。對(duì)于初學(xué)者來說,建議還是選擇Python語言。

          關(guān)于作者:趙志強(qiáng),金融量化與建模專家,目前在金融科技公司負(fù)責(zé)金融大數(shù)據(jù)產(chǎn)品工作,專注于研究Al在金融領(lǐng)域的落地應(yīng)用。曾在由諾獎(jiǎng)得主Robert Engle領(lǐng)導(dǎo)的上海紐約大學(xué)波動(dòng)研究所研究全球金融風(fēng)險(xiǎn),并和上交所、中金所合作完成多項(xiàng)科研項(xiàng)目。曾在摩根士丹利華鑫基金、明汯投資負(fù)責(zé)量化投資研究工作,內(nèi)容包括股票多因子、期貨CTA和高頻交易等。

          劉志偉,在中國(guó)銀聯(lián)云閃付事業(yè)部從事數(shù)據(jù)分析、數(shù)據(jù)挖掘等工作。對(duì)自然語言處理、文本分類、實(shí)體識(shí)別、關(guān)系抽取、傳統(tǒng)機(jī)器學(xué)習(xí),以及大數(shù)據(jù)技術(shù)棧均有實(shí)踐經(jīng)驗(yàn)。目前正在探索相關(guān)技術(shù)在金融場(chǎng)景內(nèi)的落地應(yīng)用,包括自動(dòng)知識(shí)圖譜、大規(guī)模文本信息抽取結(jié)構(gòu)化、異常識(shí)別等領(lǐng)域,關(guān)注人工智能行業(yè)前沿技術(shù)發(fā)展。

          本文摘編自Python量化投資:技術(shù)、模型與策略》,經(jīng)出版方授權(quán)發(fā)布。

          編輯:王菁
          校對(duì):汪雨晴
          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久综合五月丁香六月 | 国产欧美日韩视频 | 五月丁香六月婷婷久久 | 亚洲精品夜夜夜夜夜夜夜夜 | 亚洲第一精品在线观看 |