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

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

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

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

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

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

 

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

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

[[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ù)專家。個人博客 http://fens.me, Alexa全球排名70k。著有《R的極客理想-工具篇》、《R的極客理想-高級開發(fā)篇》,合著《數(shù)據(jù)實(shí)踐之美》,新書《R的極客理想-量化投資篇》】

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

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

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

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

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

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

 

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

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

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

當(dāng)然,我們在解決實(shí)際問題的過程中,也不局限于用R語言。像張丹所說,技術(shù)并不是最核心的,思路才是關(guān)鍵。

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

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

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

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

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

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

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

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

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

2017-09-27 22:23:08

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

2015-05-25 14:11:50

民生銀行華為

2018-02-10 10:54:32

銀行金融科技民生銀行

2019-08-16 10:04:40

民生銀行數(shù)據(jù)中臺數(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ù)庫

2019-04-17 22:01:32

存儲

2017-04-28 10:37:41

辦公外設(shè)

2016-11-09 15:49:28

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

2014-05-30 13:39:06

2017-03-16 10:30:43

聯(lián)想

2013-12-02 13:41:56

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

2017-07-21 13:33:18

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

2009-03-31 13:38:33

2012-06-21 16:49:53

視頻會議飛視美

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ù)棧公眾號