
基于Spark的機(jī)器學(xué)習(xí)經(jīng)驗(yàn)
Spark發(fā)展到1.5版本,算是全平臺(tái)了,實(shí)時(shí)批計(jì)算,批處理,算法庫(kù),SQL,hadoop能做的,基本他都能做,而且做的比Hadoop好。
當(dāng)然,這里我要提及的是,Spark依然是Hadoop生態(tài)圈的一員,他替換的也僅僅是MR的計(jì)算模型而已。資源調(diào)度依賴于Yarn,存儲(chǔ)則依賴于HDFS,是hadoop生態(tài)圈的一顆新星(其實(shí)算是老星啦)。
我 之前寫(xiě)文章說(shuō),Spark-Shell是個(gè)偉大的創(chuàng)新,加上牛逼的Scala語(yǔ)言,寫(xiě)spark程序就和寫(xiě)普通的shell腳本(或者類似python程序)一樣容易。問(wèn)題是,原來(lái)的shell,python只能在單機(jī)工作,現(xiàn)在你寫(xiě)的每一行代碼,都被放到了一個(gè)幾百臺(tái),幾千臺(tái)的規(guī)模上去做了。
以前的統(tǒng)計(jì)/機(jī)器學(xué)習(xí)依賴于數(shù)據(jù)抽樣,抽樣從統(tǒng)計(jì)的角度來(lái)看,如果足夠隨機(jī),其實(shí)可以很精準(zhǔn)的反應(yīng)全集的結(jié)果,但事實(shí)上往往很難做好隨機(jī),所以通常做出來(lái)也會(huì)很不準(zhǔn)。現(xiàn)在大數(shù)據(jù)解決了這個(gè)問(wèn)題,但不是通過(guò)優(yōu)化抽樣的隨機(jī)來(lái)解決,而是通過(guò)全量數(shù)據(jù)來(lái)解決。
要解決全量的就需要有強(qiáng)大的處理能力,spark首先具備強(qiáng)大的處理能力,其次SparkShell帶來(lái)了傳說(shuō)中的即席查詢。做算法的工程師,以前經(jīng)常是在 小數(shù)據(jù)集上跑個(gè)單機(jī),然后看效果不錯(cuò),一到全量上,就歇菜了,和單機(jī)效果很不一樣。雖然是小數(shù)據(jù),但是在你的筆記本上跑你幾個(gè)小時(shí),也是很正常的。
但 是有了spark后,不一樣了,尤其是有了spark-shell。 我后面的兩個(gè)例子,都完全是在spark-shell上寫(xiě)就的。邊寫(xiě)代碼,邊運(yùn)行,邊看結(jié)果。我研究的CSDN幾百萬(wàn)博文的時(shí)候,就是直接拿全量數(shù)據(jù)跑,直接看效果。spark 抽樣也很方便,一個(gè)sample函數(shù),你想要多少就多少。
幾 十個(gè)G的博文數(shù)據(jù),count一下也就十幾秒,cache了之后幾秒就count完了。所以說(shuō),如果docker顛覆了部署,那么spark-shell也應(yīng)該顛覆算法工程師的日常工作。我現(xiàn)在會(huì)和一個(gè)百度的朋友比,哇,最近我們spark集群內(nèi)存有9個(gè)T了,對(duì)方鄙視的看我一眼:百T的飄過(guò)…..
目前Spark已經(jīng)提供的算法,我用的最多的是貝葉斯,word2vec,線性回歸等。所以這里,作為算法工程師,或者分析師,一定要學(xué)會(huì)用spark-shell。
基于Spark做新詞發(fā)現(xiàn)
新詞發(fā)現(xiàn)是一個(gè)非常有意思的領(lǐng)域,用途非常多。譬如可以構(gòu)建垂直領(lǐng)域詞庫(kù),自動(dòng)發(fā)現(xiàn)新熱門詞匯。詞庫(kù)的重要性我不用強(qiáng)調(diào)了?;赟park強(qiáng)大的計(jì)算能力,我直接對(duì)200萬(wàn)+的博文進(jìn)行了分析,得到大概八萬(wàn)詞,包含中文、英文、中英文混合詞。
通過(guò)凝固度、自由度、詞頻、idf以及重合子串(比如 c1c2c3..cN c2c3..cN-1 這種形態(tài)的,我們認(rèn)為是重合子串,如果詞頻一樣,則都過(guò)濾掉,否則留詞頻高的)五個(gè)維度進(jìn)行閾值設(shè)置和過(guò)濾。
事實(shí)上,中間結(jié)果可以到幾百億,一個(gè)不小心就可以把Spark跑死,但是也在這個(gè)過(guò)程中慢慢對(duì)Spark有了更深的理解。 最終效果還是不錯(cuò)的,現(xiàn)在它已經(jīng)作為我們的基礎(chǔ)詞庫(kù)了。
基 本上就是用spark計(jì)算出詞的五個(gè)屬性: 凝固度、自由度、詞頻、idf以及重合子串。算法自然是參考論文的,凝固度、自由度的概念來(lái)源于這里重合子串能修正一類的問(wèn)題,但我感觸比較深的是,通常某篇論文只會(huì)在一個(gè)視角去focus某件事情,所以你需要參考多篇,從不同角度去理解這件事情的解決方式,最后通過(guò)實(shí)驗(yàn)綜合,得到一個(gè)更好解決方案。
我參考了兩篇論文,比如凝固度,自由度是出自一篇論文,而重合子串則來(lái)自另外一篇論文,然后自己觀察實(shí)際數(shù)據(jù),添加了很多規(guī)則,才得到最后的結(jié)果。
一說(shuō)到算法,大概很多人心里就是想著,恩,我把數(shù)據(jù)轉(zhuǎn)化為算法需要的格式,然后丟給現(xiàn)成的算法跑,跑著就出結(jié)果,或者出模型,然后反復(fù)嘗試,直到得到你認(rèn)為 能接受的或者最優(yōu)的結(jié)果。我一開(kāi)始也是這么想的,可是如果你真的做這件事情,就發(fā)現(xiàn)完全不是那樣子啊,需要注意的細(xì)節(jié)太多了。
新詞發(fā)現(xiàn)沒(méi)有現(xiàn)成的工具包,所以完全自己寫(xiě)了。第一步,你要獲取語(yǔ)料。這容易,基于現(xiàn)有的平臺(tái),我從我們資源中心挑出了200萬(wàn)篇文章id,然后根據(jù)id到數(shù)據(jù)網(wǎng)關(guān)獲取title,body字段。這個(gè)基于現(xiàn)有的平臺(tái),也就一個(gè)SQL + 幾行Scala代碼就搞定的事情。
SQL 其實(shí)就是用Hive 生成一個(gè)200萬(wàn)博文id列表。Scala代碼也就幾行。
因?yàn)槲覀兊男略~發(fā)現(xiàn)是沒(méi)有詞典的,需要枚舉所有組合,然后通過(guò)一定的規(guī)則判定這是不是一個(gè)詞。比如 ‘我是天才’,就這四個(gè)字, 組合有,‘我是’,‘我是天’,‘我是天才’,‘是天’,‘是天才’,‘天才’ 。
你想想,200萬(wàn)篇文章,這種組合得多夸張,問(wèn)題是你還要接著給這些組合做計(jì)算呢。這個(gè)算法可沒(méi)告訴你怎么處理的,你只能自己去想辦法。看到了,真正你做算法的過(guò)程中,不只是實(shí)現(xiàn),你需要面對(duì)的問(wèn)題特別多,我是怎么做的呢?
將所有html標(biāo)簽替換成空格。
通過(guò)小空格將一個(gè)大文本切分成無(wú)數(shù)小文本塊。
我們認(rèn)為一個(gè)詞的長(zhǎng)度最長(zhǎng)不能超過(guò)5個(gè)字。
對(duì)每個(gè)小文本塊再抽取出中文,中英文,英文。
將一些特殊字符,類似“!¥……()+{}【】的呀啊阿哎吧和與兮呃唄咚咦喏啐喔唷嗬嗯噯你們我他她,這是由于” 這些不可能成詞的字符先去掉。處理的過(guò)程中,你可能需要寫(xiě)中文,英文,中英文的抽取方法。
通過(guò)上面的五個(gè)處理,你計(jì)算規(guī)模會(huì)小非常多。如果不這樣處理,估計(jì)再大內(nèi)存都能讓你歇菜。接著就是按論文里的規(guī)則做計(jì)算了,比如算詞的凝固度,算重合子串。 這里面還會(huì)遇到很多性能,或者內(nèi)存的坑,比如Spark里的groupByKey,reduceByKey。我一開(kāi)始省事,用了groupByKey,歇 菜了,內(nèi)存直接爆了,為啥,你要去研究groupByKey到底是怎么實(shí)現(xiàn)的,一個(gè)詞出現(xiàn)幾十萬(wàn)次,幾百萬(wàn)次都很正常啊,groupByKey受不了這種 情況。所以你得用reduceByKey。
在spark 1.5里,已經(jīng)支持動(dòng)態(tài)調(diào)整worker數(shù)目了。我之前做這個(gè)的時(shí)候,會(huì)開(kāi)的比較大,如果集群規(guī)模比較小,可能會(huì)影響別人,而且用完要趕緊釋放,但釋放了重新再起,也還是很麻煩的,現(xiàn)在好很多了。
很好,實(shí)現(xiàn)了算法后得到了結(jié)果,可人家沒(méi)告訴你,他貼出來(lái)的結(jié)果都是好看的,那是因?yàn)樗前搭l次排的,但如果你拉到最后看,結(jié)果就不太好看了。這個(gè)時(shí)候你就需要觀察數(shù)據(jù)了,然后提出新的規(guī)則,比如最后得到的中文詞結(jié)果,我用了一些簡(jiǎn)單規(guī)則過(guò)濾下,都是哪些呢?
凡是詞里面包含‘或’的,或者’就’的或者上面羅列的,我都認(rèn)為這個(gè)詞是沒(méi)有意義的,經(jīng)過(guò)這個(gè)簡(jiǎn)單規(guī)則一過(guò)濾,效果好非常多,很多沒(méi)什么意義的生活詞,或者不成詞的詞就被去掉了。中文,英文,中英文混合,我都加了很多這種規(guī)則,最終才過(guò)濾出了八萬(wàn)計(jì)算機(jī)詞匯。
我 在做上面的方案時(shí),基本上就是在spark-shell中完成的。其實(shí)有點(diǎn)像ngram,就是對(duì)所有字符串做所有枚舉,只是會(huì)限制最終成詞的長(zhǎng)度。我這里 中文是最長(zhǎng)五個(gè)字,英文是四個(gè)字,中英文一塊的是五個(gè)字,接著要算出每個(gè)詞左右連接字。
重合子串,是這個(gè)算法的一個(gè)比較大的問(wèn)題,比如 c1c2c3…cN c2c3…cN-1,因?yàn)槭菑慕y(tǒng)計(jì)的方案做的,c1c2c3…cN c2c3…cN-1 他們兩算出來(lái)的分?jǐn)?shù)可能就是一樣的,所以如果我們發(fā)現(xiàn)他們的分值或者出現(xiàn)頻率是一樣的,就可以直接排除掉了。
基于Spark做智能問(wèn)答
其實(shí)我做的智能問(wèn)答算不上智能問(wèn)答,但是內(nèi)部一開(kāi)始這么叫的,所以也就這么順帶叫下來(lái)了。 其實(shí)做的事情非常簡(jiǎn)單:
比較兩個(gè)標(biāo)題的相似度
如果我們能知道兩個(gè)句子說(shuō)的其實(shí)是一件事情,那么就能打通各產(chǎn)品的互通鴻溝了。之前試水的項(xiàng)目是打通問(wèn)答到博客的通道。具體效果大家可以看看CSDN的問(wèn)答產(chǎn)品,里面的機(jī)器人,背后用的算法就是這套。
當(dāng)用戶問(wèn)一個(gè)問(wèn)題,機(jī)器人就會(huì)到博客里去找有沒(méi)有這個(gè)問(wèn)題的答案,或者有沒(méi)有可以做參考的。 比較神奇的是,之前有個(gè)在問(wèn)答活躍的人也特別喜歡貼博客鏈接作為回答,我們對(duì)比了機(jī)器人和他的結(jié)果,發(fā)現(xiàn)機(jī)器人和他貼的差不多。
對(duì)于擁有內(nèi)容的網(wǎng)站來(lái)說(shuō),這個(gè)技術(shù)還是非常重要的,比如CSDN,有論壇,博客,資訊,雜志等等,都是內(nèi)容的載體。用戶在問(wèn)答頻道里問(wèn)的一個(gè)問(wèn)題,其實(shí)在博客,在論壇早就已經(jīng)有答案了。具體做法是透過(guò)word2vec解決一意多詞的問(wèn)題。接著將詞轉(zhuǎn)換為句子向量。這樣任何一個(gè)問(wèn)題都可以轉(zhuǎn)換為一個(gè)向量。同理任何一篇博文的標(biāo)題也可以轉(zhuǎn)化為一個(gè)向量。
word2vec,采用的數(shù)據(jù)來(lái)源,我是用的搜索引擎的數(shù)據(jù)。大部分內(nèi)容類的網(wǎng)站,他的PV應(yīng)該有相當(dāng)一部分來(lái)自搜索引擎,其實(shí)搜索引擎對(duì)這些網(wǎng)站來(lái)說(shuō),就是一個(gè)大的寶藏。因?yàn)樗阉鞯膓uery串,都是用戶遇到的問(wèn)題,然后指向到解決這些問(wèn)題的內(nèi)容上。
內(nèi)容上,所以我直接拿用戶的query作為word2vec的語(yǔ)料,得到一些常用的提問(wèn)詞,每個(gè)詞用一個(gè)50維度的向量表示。當(dāng)然,我們不可能真的讓一個(gè)問(wèn) 題和幾百萬(wàn)內(nèi)容直接做比較,一個(gè)簡(jiǎn)單有效的方式是,先通過(guò)搜索引擎去搜,然后將搜索得到top100結(jié)果做向量計(jì)算得到新的得分。 基本相似度大于0.9 的可以算作答案。大于0.7的就可以作為參考答案了。站內(nèi)搜索服務(wù)應(yīng)該是標(biāo)配了,所以對(duì)大部分網(wǎng)站應(yīng)該不是問(wèn)題。
對(duì)了,這里有個(gè)問(wèn)題是:word2vec計(jì)算出來(lái)的是用一個(gè)稠密的定長(zhǎng)向量表示詞,我的做法是直接把一個(gè)句子的里的詞的向量按位做加法,重新得到一個(gè)新的向量作為句子的向量。當(dāng)然,這種方式也是有缺陷,也就是句子越長(zhǎng),信息損耗越大。但是做這種標(biāo)題性質(zhì)的相似度,效果出奇的好,那種句子里很多詞匯不相同的,它都能算出他們很相似來(lái),這是因?yàn)閣ord2vec可以算出不同詞匯之間關(guān)系。
好了,具體的內(nèi)容就分享到這里。
總結(jié)
下面是我的幾個(gè)觀點(diǎn):
作為數(shù)據(jù)分析師,算法工程師,請(qǐng)好好利用spark-shell。 Spark社區(qū)為了滿足數(shù)據(jù)分析師,算法工程師,其實(shí)也做了非常多的工作,包括Python, R語(yǔ)言的支持。15年社區(qū)努力做的DataFrame其實(shí)就是從R里借鑒過(guò)來(lái)的,也方便R數(shù)據(jù)科學(xué)家方便的遷移過(guò)來(lái)。我覺(jué)得大家都應(yīng)該與時(shí)俱進(jìn),不要只玩 單機(jī)了。
課程Q&A
Q: 如何從0開(kāi)始系統(tǒng)學(xué)習(xí)spark,最后轉(zhuǎn)行?
A: 學(xué)會(huì)scala就行,scala是一門具有學(xué)院派氣息的語(yǔ)言,你可以把它寫(xiě)的像python,ruby那樣,也可以寫(xiě)的想java那樣方方正正,也可以學(xué)習(xí)python,spark支持python但是可能有些功能用不了,用了一天的時(shí)間把Scala的官方教程看了,基本就能上手了。
Q:建議不做RAID的原因是什么?
A: 比如我例子提到的默認(rèn)HDFS的所有數(shù)據(jù)都會(huì)存三份,可以保證數(shù)據(jù)位于不同的服務(wù)器上,不同的磁盤上,所以無(wú)需RAID。
Q:很多沒(méi)什么意義的生活詞,或者不成詞的詞,這些詞是怎樣得到的?也是分析出來(lái)的?
A: 因?yàn)橛玫亩际墙y(tǒng)計(jì)的一些方式,所以肯定會(huì)有很多無(wú)意義的詞匯,假設(shè)我們現(xiàn)在得到的詞匯幾何是A,接著我去爬了一些新聞和生活的類的博客,然后用程序去跑一遍得到一批詞匯B,然后A-B 就能得到一拼更純正的計(jì)算機(jī)詞匯。
Q:內(nèi)存要調(diào)到多大才能不會(huì)爆掉?是不是有什么比例?
A: 你不管調(diào)到多大,如果用的不好 也都有可能,groupByKey這個(gè)會(huì)有很大的內(nèi)存問(wèn)題,他形成的結(jié)構(gòu)式 key-> value1,value2,value3……valuen,這種是非常消耗存儲(chǔ)空間的額,大家使用spark的時(shí)候,序列化最好使用kyro,性能確實(shí) 好太多,一個(gè)worker 會(huì)同時(shí)配置可以使用的內(nèi)存和cpu,這個(gè)時(shí)候一定要搭配好。比如你允許work使用5個(gè)cpu,那內(nèi)存最好能配到10G,如果內(nèi)存過(guò)小,你的cpu會(huì)大量 浪費(fèi)在GC上,我一般是單個(gè)worker 12G內(nèi)存 ,可使用4核。
Q:直接把一個(gè)句子的里的詞的向量按位做加法,這是如何加?能舉個(gè)例子不?
A:比如 考慮一個(gè)三維向量: A[1,3,5] B[1,3,7],現(xiàn)在有個(gè)句子 是AB兩個(gè)詞組成,則對(duì)應(yīng)的向量為A+B=[2,6,12]
Q:還有中文分詞是用的什么方法?可否分享代碼不啊?
A:這里是無(wú)監(jiān)督分詞,所以不用中文分詞,按維度疊加,才能保證都是相同長(zhǎng)度的向量,而且中文分詞這塊,我推薦我一個(gè)同事的 ansj分詞,還是做的不錯(cuò)的。
Q:一些分詞方法具有新詞發(fā)現(xiàn)的功能,比如crf,樓主是比較過(guò)效果么?而且我記得matrix67這個(gè)算法復(fù)雜度還是很高的?
A: matrix67 這個(gè)算法復(fù)雜度還是非常高的,你實(shí)際操作就會(huì)發(fā)現(xiàn)計(jì)算量,內(nèi)存使用量都很大,crf等據(jù)我所知,還都是需要依賴詞表的,matrix67的這個(gè)方式,完全不需要任何先驗(yàn)的東西。
Q:為什么一個(gè)詞要用50維度表示? 這能舉個(gè)例子不? 這里不太明白。
A: 理論上維度越長(zhǎng)越好,我當(dāng)時(shí)是隨意試了一個(gè)值。發(fā)現(xiàn)效果其實(shí)已經(jīng)可以了,這是一個(gè)可以調(diào)整的值,比如你可以分別生成50,150,300維度的,然后試試那個(gè)效果好。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10