成人激色综合天天,中文亚洲av片在线观看,又粗又大又硬毛片免费看,国产aⅴ精品一区二区三区久久,亚洲欧美自偷自拍视频图片

民生銀行張丹:如何用R語(yǔ)言打開面向數(shù)據(jù)的思維模式

原創(chuàng)
CIOAge
揭底R(shí)語(yǔ)言如何快速幫助我們構(gòu)建出能賺錢的數(shù)據(jù)產(chǎn)品。

【51CTO.com原創(chuàng)稿件】2017年12月01日-02日,由51CTO主辦的WOTD全球軟件開發(fā)技術(shù)峰會(huì)將在深圳中州萬(wàn)豪酒店隆重舉行。本次峰會(huì)以軟件開發(fā)為主題,數(shù)十位專家級(jí)嘉賓將帶來(lái)多場(chǎng)精彩的技術(shù)內(nèi)容分享。屆時(shí),張丹先生將在“編程語(yǔ)言與框架”專場(chǎng)與來(lái)賓分享"面向數(shù)據(jù)的思維模式和R語(yǔ)言編程"的主題演講,為大家詳細(xì)闡述“如何用R語(yǔ)言高效、優(yōu)雅地解決數(shù)據(jù)分析中的問題,進(jìn)而拓展編程思維。”51CTO誠(chéng)邀您蒞臨大會(huì),與我們共享技術(shù)帶來(lái)的喜悅。

科技變革讓更多IT人迎來(lái)了職業(yè)生涯的“好年景”。但就在大家都熱情高漲地去研究怎樣用Java、Python、C等編程語(yǔ)言寫出更多好玩或大熱的互聯(lián)網(wǎng)產(chǎn)品時(shí),另有一種小眾編程語(yǔ)言卻猶如華麗的魔術(shù)師,能給工程師們帶來(lái)不一樣的編程體驗(yàn)——它就是R語(yǔ)言。

“R語(yǔ)言可以快速地幫助我們構(gòu)建出能賺錢的數(shù)據(jù)產(chǎn)品。”說(shuō)到R語(yǔ)言,具有10年IT編程背景的張丹深有體會(huì)。目前在民生銀行從事高級(jí)數(shù)據(jù)分析師的張丹,長(zhǎng)期從事金融大數(shù)據(jù)研究,在他看來(lái),掌握數(shù)據(jù)“密碼”,在工作中多采用面向數(shù)據(jù)的思維模式,可以從程序員、算法工程師、分析師的自身價(jià)值方面帶來(lái)巨大的提升。

 

認(rèn)識(shí)R語(yǔ)言,感受它的獨(dú)特魔力

“R語(yǔ)言的價(jià)值主要體現(xiàn)在數(shù)據(jù)分析的效率上。當(dāng)我們了解一項(xiàng)業(yè)務(wù)后,經(jīng)常會(huì)從數(shù)據(jù)的角度提出一些對(duì)業(yè)務(wù)提升的想法,那么你可以嘗試用R語(yǔ)言花半天時(shí)間,先驗(yàn)證你的想法是否可行。當(dāng)然,你也可以用其他的語(yǔ)言來(lái)驗(yàn)證,只是可能要花很長(zhǎng)的時(shí)間,之后可能變成一個(gè)工程問題,遠(yuǎn)離了最初的目標(biāo)。當(dāng)你的想法被快速驗(yàn)證后,就可以決定是否要去做這件事了,后面你可以招一個(gè)團(tuán)隊(duì),再用C++/Java等語(yǔ)言重寫R語(yǔ)言的原型。”張丹說(shuō)。

[[207538]]

 【張丹,《R的極客理想》系列圖書作者,前況客創(chuàng)始人兼CTO。10年IT編程背景,精通R ,Java, Nodejs 編程,獲得10項(xiàng)SUN及IBM技術(shù)認(rèn)證。豐富的互聯(lián)網(wǎng)應(yīng)用開發(fā)架構(gòu)經(jīng)驗(yàn),金融大數(shù)據(jù)專家。個(gè)人博客 http://fens.me, Alexa全球排名70k。著有《R的極客理想-工具篇》、《R的極客理想-高級(jí)開發(fā)篇》,合著《數(shù)據(jù)實(shí)踐之美》,新書《R的極客理想-量化投資篇》】

其實(shí),R語(yǔ)言的獨(dú)特性與這門語(yǔ)言的出身密切相關(guān)。對(duì)此,張丹給出了更詳盡地解讀:首先,R語(yǔ)言與其他編程語(yǔ)言的出身是有區(qū)別的。其他編程語(yǔ)言,不管Java、Python、C++,還是Node.js,都是由工程技術(shù)類的人研發(fā)的,而R語(yǔ)言最早起源于統(tǒng)計(jì)學(xué)家。“統(tǒng)計(jì)圈跟互聯(lián)網(wǎng)這兩個(gè)群體的思維模式是非常不同的?;ヂ?lián)網(wǎng)在中國(guó)已蓬勃發(fā)展了十多年,像Java、Python等語(yǔ)言通過(guò)互聯(lián)網(wǎng)傳播很快,流行度也很高,而R語(yǔ)言在統(tǒng)計(jì)圈中傳播就顯得很慢了。盡管已經(jīng)發(fā)展了20多年,但目前它依然屬于小眾語(yǔ)言。”

其次,在2013年前后,當(dāng)大數(shù)據(jù)變成人人都在聊的事情時(shí),R語(yǔ)言借著大數(shù)據(jù)的興起,也在這個(gè)時(shí)候被大家所認(rèn)識(shí),小火了一段時(shí)間。原因是R語(yǔ)言是做統(tǒng)計(jì)的,利用它的一些統(tǒng)計(jì)計(jì)算能力,大家認(rèn)為可以很容易基于大數(shù)據(jù)去做分析。盡管當(dāng)時(shí)只是一個(gè)噱頭,不過(guò)確實(shí)將R語(yǔ)言給炒了起來(lái)。“現(xiàn)在來(lái)看,其實(shí)R語(yǔ)言能做的事遠(yuǎn)遠(yuǎn)不是那么簡(jiǎn)單,我們要認(rèn)識(shí)R語(yǔ)言,就需要有一個(gè)思維模式的改變。”張丹認(rèn)為,這個(gè)思維模式跟R語(yǔ)言的根有極大關(guān)系,“你到底要用R語(yǔ)言干什么!”

事實(shí)上,R語(yǔ)言擅長(zhǎng)的事有很多,包括做數(shù)學(xué)計(jì)算、數(shù)據(jù)處理、統(tǒng)計(jì)分析、可視化等,但它并不擅長(zhǎng)做Web開發(fā)的工程項(xiàng)目。“做工程的人可能用任何一個(gè)語(yǔ)言都會(huì)比用R語(yǔ)言來(lái)得順手,但如果是做建模、做策略的人,可能會(huì)覺得R語(yǔ)言更為方便。”那么,對(duì)于從事編程的人來(lái)說(shuō),如何轉(zhuǎn)換一種思維模式能更好地支持業(yè)務(wù)?

張丹認(rèn)為,“數(shù)據(jù)很重要,要想把業(yè)務(wù)做好,需要有更高質(zhì)量和更好來(lái)源的數(shù)據(jù)。如果要做好數(shù)據(jù)產(chǎn)品,我們的思維模式是需要發(fā)生轉(zhuǎn)變的。一個(gè)工作5年的工程師,他已經(jīng)熟練掌握了某種編程語(yǔ)言,當(dāng)他接到一個(gè)項(xiàng)目需求,他可以快速寫代碼完成開發(fā)任務(wù)。如果把項(xiàng)目目標(biāo)變一下,不是如何做出來(lái),而是如何讓這個(gè)事情變現(xiàn),或者能夠產(chǎn)生看得見的價(jià)值,那么要怎么去寫代碼?這體現(xiàn)的就是一種思維模式的變化。如果你早就有了這種想法,那么在跟業(yè)務(wù)部門溝通中肯定會(huì)聊得非常融洽,因?yàn)槟阕龅木褪撬麄兿胍?。可這樣一來(lái),你跟你的整個(gè)技術(shù)部門可能就會(huì)聊不到一塊去,因?yàn)榇蠹蚁氲氖?lsquo;我如何少寫幾個(gè)Bug,我的程序性能怎么能快一點(diǎn)。’”

還有,比如在解決性能問題的時(shí)候,其他語(yǔ)言基本都是基于傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和算法理論進(jìn)行算法優(yōu)化,所采取的常規(guī)做法是將時(shí)間復(fù)雜度為O(N^2)的算法優(yōu)化成時(shí)間復(fù)雜度為O(Log(N))。那么,這種優(yōu)化在數(shù)據(jù)領(lǐng)域是如何解決的?

張丹解釋說(shuō),“換個(gè)視角來(lái)看,O(N^2)的算法是二維的,實(shí)際上就是一個(gè)矩陣,或者叫一個(gè)‘面’。如果我們能一次算一個(gè)面,一次循環(huán)就是一個(gè)面,兩次循環(huán)就是兩個(gè)面……以此類推,基于這個(gè)思路,我們就可以試想用O(1)來(lái)取代O(N^2)了。這種方法其實(shí)是從數(shù)學(xué)的角度,用線性代數(shù)的思路來(lái)提升性能效率。而這種計(jì)算效率提升方式,要比原來(lái)的處理方式能夠直接提升2個(gè)數(shù)量級(jí)。之所以產(chǎn)生這樣的效果,是因?yàn)槟阍谝粋€(gè)領(lǐng)域去想方法,接近極致的效率也是有限的。如果能拓展新的思維角度,那么就有機(jī)會(huì)做出巨大效率的提升。”

 

轉(zhuǎn)換思維,就是給自己更多的成長(zhǎng)空間

寫過(guò)R代碼的人,都覺得R語(yǔ)言的代碼書寫很隨意。這既是缺點(diǎn)也是R語(yǔ)言代碼高效的體現(xiàn)。不管是用Python,還是用Java,開發(fā)者在寫代碼的過(guò)程中都需要沿用既有的一些代碼工程類的格式規(guī)范,比如寫Java程序時(shí),要先定義class類,在類的代碼塊中才能寫method方法,但R語(yǔ)言沒有這種強(qiáng)語(yǔ)法規(guī)范的限制,所以它的代碼就較之其他語(yǔ)言要短小很多。

其次,R語(yǔ)言與其他語(yǔ)言出身的差異導(dǎo)致它與其他語(yǔ)言的定位有所不同。如張丹所言,R語(yǔ)言的定位就是解決數(shù)據(jù)問題,而不是解決工程化問題,所以R語(yǔ)言更偏向于建模。那么,開發(fā)者如果想要在解決建模問題的過(guò)程中表現(xiàn)更加出色,不妨試著多關(guān)注R語(yǔ)言。不過(guò),一旦你掌握了R的語(yǔ)法后,你還需要更深入地去了解業(yè)務(wù),理解業(yè)務(wù)產(chǎn)生的數(shù)據(jù),并去思考更多與之相關(guān)的東西,比如這個(gè)業(yè)務(wù)為什么會(huì)產(chǎn)生這個(gè)數(shù)據(jù)?這類產(chǎn)生的數(shù)據(jù)是否有規(guī)律?如果業(yè)務(wù)突然發(fā)生了轉(zhuǎn)變,那么在數(shù)據(jù)中會(huì)如何變化,我該如何處理?

當(dāng)然,我們?cè)诮鉀Q實(shí)際問題的過(guò)程中,也不局限于用R語(yǔ)言。像張丹所說(shuō),技術(shù)并不是最核心的,思路才是關(guān)鍵。

“要做好一件事,如果我們思路很清楚,邏輯也很清楚,哪一種語(yǔ)言都可以做,只不過(guò)是代價(jià)的問題。”比如,寫一個(gè)簡(jiǎn)單的數(shù)據(jù)模型,用Java可能會(huì)上千行,用Python可能是上百行,用R語(yǔ)言寫可能只有幾十行,這是一個(gè)開發(fā)的效率問題;其次,從它們面向的領(lǐng)域來(lái)看,Java、Python等語(yǔ)言都會(huì)有很多第三方開發(fā)包,Java和Python的包或其他語(yǔ)言的包一般都是支持Web開發(fā)的、數(shù)據(jù)庫(kù)調(diào)用的、緩存處理的、網(wǎng)絡(luò)通信的這些包。R語(yǔ)言也有這些包,但R語(yǔ)言更重要的則是對(duì)業(yè)務(wù)領(lǐng)域的支持。好比對(duì)于量化投資這個(gè)領(lǐng)域,如果我們要交易債券,R語(yǔ)言有支持計(jì)算債券久期的包;如果要交易股票,R語(yǔ)言有支持選股的包;如果要做投資組合,R語(yǔ)言有支持做資產(chǎn)配置的包;如果要進(jìn)行風(fēng)險(xiǎn)控制,R語(yǔ)言也有支持計(jì)算風(fēng)險(xiǎn)價(jià)值的包。核心就在于因?yàn)镽語(yǔ)言是面向業(yè)務(wù)的。所以,作為開發(fā)者,如果很了解這個(gè)業(yè)務(wù),使用R語(yǔ)言就會(huì)非常順手,通常只需幾行代碼結(jié)果就出來(lái)了。如果用其他編程語(yǔ)言,不僅整個(gè)業(yè)務(wù)邏輯需要重寫一遍,還不一定能寫得對(duì)。

在當(dāng)前科技更追求解決應(yīng)用問題的這樣一個(gè)快速開發(fā)時(shí)代,特別是開發(fā)者遍地的情況下,怎樣能快速成長(zhǎng)為一名優(yōu)秀的開發(fā)者也是一個(gè)顯著的問題。張丹指出,其實(shí)現(xiàn)在很多技術(shù)人都是停留在語(yǔ)法上。比如這個(gè)語(yǔ)法我會(huì)了,但是不知道能干什么。出現(xiàn)這種問題的關(guān)鍵就在于他們還是停留在那種工程化語(yǔ)言的思維角度,即你要給我一個(gè)需求,并且告訴我這個(gè)東西怎么做,我才能做下去,自己是沒有想法的,包括很多企業(yè)的數(shù)據(jù)部門的工程師實(shí)際上已淪為了一個(gè)BI工具。

“我一直提倡要做跨學(xué)科的人。你想突圍,變得不同,想變得比別人牛,你就需要做跨學(xué)科的結(jié)合,而不是沉浸在一個(gè)單獨(dú)的學(xué)科領(lǐng)域里。可能那個(gè)領(lǐng)域已經(jīng)有很多大神,你不可能顛覆他們的位置,但一旦你帶著原有的東西進(jìn)入到另一個(gè)學(xué)科,或者多結(jié)合幾個(gè)學(xué)科,就沒有那么多大神了。而且現(xiàn)在社會(huì)就需要這種人才。”張丹說(shuō)。因此,他認(rèn)為,這個(gè)時(shí)代開發(fā)者轉(zhuǎn)變思維模式很重要。

既然要轉(zhuǎn)變思維,首先需要開發(fā)者具備跨學(xué)科的知識(shí)。這不僅體現(xiàn)在對(duì)R語(yǔ)言的認(rèn)知。更多的,是需要我們建立三個(gè),甚至更多維度的視角:做技術(shù)是一個(gè)維度,做業(yè)務(wù)是一個(gè)維度,通過(guò)數(shù)學(xué)又是另一個(gè)維度。

“對(duì)技術(shù)人而言,思維模式的轉(zhuǎn)變其實(shí)提供了一個(gè)未來(lái)可提升的途徑。”張丹說(shuō),“我原來(lái)也做Java,寫了七八年時(shí)間,雖然自已覺得寫Java代碼已經(jīng)寫得很漂亮了,但在這條路上前面不僅有無(wú)數(shù)的大神,而且做了這么多年,感覺沒給自己真正積淀下來(lái)什么價(jià)值。通常就是業(yè)務(wù)有什么需求,我都能給做出來(lái),但是自己卻提不出來(lái)需求。”

他進(jìn)一步說(shuō),“如果我們換一種思維模式,當(dāng)我有了數(shù)據(jù),就會(huì)有一些想法,而且是可以變現(xiàn)的想法。這種面向數(shù)據(jù)的思維模式其實(shí)就可以轉(zhuǎn)為面向一種變現(xiàn)能力的模式。當(dāng)你具備了一種面向變現(xiàn)的能力,你的價(jià)值就會(huì)很大。你去一家公司,告訴決策者,你給我分幾個(gè)人,我一年耗費(fèi)五百萬(wàn)的成本,一年能賺回一千五百萬(wàn),那你還擔(dān)心找不到工作嗎?所有地方都會(huì)搶你,會(huì)給你輸入更多資源。而不是進(jìn)入某個(gè)公司后,只限于我會(huì)Java,我只能編程。所以,如果我們依然是原來(lái)的那種思維模式,那么你在企業(yè)里的價(jià)值始終就只是一個(gè)成本因子,你能干出來(lái)多少,自己衡量不了,公司也不好給你衡量,只能按照平均行業(yè)水平給你發(fā)工資。但如果你知道自己能干什么,怎么做產(chǎn)品,用戶是誰(shuí),怎么變現(xiàn),還懂技術(shù),那么你就放心大膽地要價(jià)吧!”(完)

使用優(yōu)惠碼[2017WOTDSZ],和我一起去WOTD全球軟件開發(fā)技術(shù)峰會(huì)。8折優(yōu)惠,僅剩48小時(shí)!

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

責(zé)任編輯:wangxuze 來(lái)源: 51cto.com
相關(guān)推薦

2017-09-27 22:23:08

R語(yǔ)言數(shù)據(jù)

2015-05-25 14:11:50

民生銀行華為

2018-02-10 10:54:32

銀行金融科技民生銀行

2019-08-16 10:04:40

民生銀行數(shù)據(jù)中臺(tái)數(shù)據(jù)體系

2014-03-06 10:11:21

IBMSequoiaDB民生銀行

2014-03-12 10:25:00

大數(shù)據(jù)民生銀行

2018-12-18 18:28:05

數(shù)據(jù)庫(kù)

2019-04-17 22:01:32

存儲(chǔ)

2017-04-28 10:37:41

辦公外設(shè)

2016-11-09 15:49:28

大數(shù)據(jù)金融WOT2016

2017-03-16 10:30:43

聯(lián)想

2014-05-30 13:39:06

2013-12-02 13:41:56

民生銀行巨杉數(shù)據(jù)庫(kù)

2012-06-21 16:49:53

視頻會(huì)議飛視美

2009-03-31 13:38:33

2017-07-21 13:33:18

互聯(lián)網(wǎng)銀行金融

2018-02-09 16:13:22

華為民生銀行

2017-07-05 11:53:45

民生銀行互聯(lián)網(wǎng)消費(fèi)金融

2014-06-23 15:15:31

WiFi

51CTO技術(shù)棧公眾號(hào)