
R語(yǔ)言初學(xué)者必須要知道的事兒
2017年1月24日晚8點(diǎn)半,樂(lè)逗游戲挖掘團(tuán)隊(duì)負(fù)責(zé)人、資深R語(yǔ)言用戶謝佳標(biāo)帶來(lái)了主題為“數(shù)據(jù)分析利器:R語(yǔ)言快速入門(mén)”的Chat交流。以下是主持人孫莫默整理的實(shí)錄,記錄了謝佳標(biāo)與讀者之間交流的精彩問(wèn)答。
答:常用的數(shù)據(jù)分析工具有很多,包括大家平時(shí)一直在用的excel,這就是個(gè)不錯(cuò)的分析工具,我們可以實(shí)現(xiàn)常用的數(shù)據(jù)分析、繪圖功能。但是涉及到復(fù)雜的模型時(shí),excel就顯得很吃力,此時(shí)就需要運(yùn)用專業(yè)的數(shù)據(jù)分析挖掘工具,比如spss、sas、R、Python等等。
下面給大家看一個(gè)2013年的分析工具排名,最近幾年R和python的熱度有增無(wú)減:
因?yàn)?a href='/map/r/' style='color:#000;font-size:inherit;'>R語(yǔ)言是開(kāi)源的,所以很多互聯(lián)網(wǎng)企業(yè)在用,還有一些通迅行業(yè)的咨詢公司,不過(guò)上手還是需要長(zhǎng)期的學(xué)習(xí);SPSS界面友好些,不過(guò)企業(yè)用正版也要很大一些數(shù),不過(guò)一般是市場(chǎng)研究用的比較多,如果你會(huì)用SPSS編程其實(shí)功能還是比較強(qiáng)大的,建議如果想先練手可以學(xué)這個(gè),上手快;SAS一般是金融企業(yè),特別是銀行業(yè)和醫(yī)學(xué)統(tǒng)計(jì)用,銀行業(yè)人員有一些是用SAS做統(tǒng)計(jì),一般是銀行業(yè)內(nèi)部人做的,另一種是給銀行業(yè)做數(shù)據(jù)挖掘的公司,不過(guò)正版一年也要上百萬(wàn),不是土豪也用不起,聽(tīng)說(shuō)支付寶都不用,而是用R語(yǔ)言,而且SAS學(xué)習(xí)沒(méi)人指導(dǎo)很難學(xué);所以看小伙伴的選擇,想在傳統(tǒng)或者咨詢公司做的SPSS比較合適,想去金融特別是銀行業(yè)SAS不錯(cuò),想進(jìn)互聯(lián)網(wǎng)公司學(xué)R語(yǔ)言可能是比較明智。我們互聯(lián)網(wǎng)、游戲公司很多數(shù)據(jù)分析師都是使用R語(yǔ)言和Python進(jìn)行分析挖掘工作。
另外,R語(yǔ)言也可以跟Python結(jié)合,也能與其他專業(yè)的挖掘工具接觸集成,比如下圖:
可以利用R語(yǔ)言調(diào)出rattle,幫助對(duì)代碼不熟悉的新手利用圖形化界面快速完成數(shù)據(jù)分析工作。右上角這個(gè)工具是非常不錯(cuò)的工具,大家如果感興趣可以通過(guò)install.packages("rattle")在R內(nèi)安裝此包,然后利用:library(rattle);rattle()命令就可以調(diào)出那個(gè)界面,由于R的極大靈活性和擴(kuò)展性,也使得R是近幾年數(shù)據(jù)分析師的首選工具。
答:Python和R是統(tǒng)計(jì)學(xué)中兩種最流行的的編程語(yǔ)言,R的功能性主要是統(tǒng)計(jì)學(xué)家在開(kāi)發(fā)時(shí)考慮的(R具有強(qiáng)大的可視化功能),而Python因?yàn)橐子诶斫獾恼Z(yǔ)法被大家所接受。
起初R主要是在學(xué)術(shù)和研究使用,但近來(lái)企業(yè)界發(fā)現(xiàn)R也很不錯(cuò),這使得R成為企業(yè)中使用的全球發(fā)展最快的統(tǒng)計(jì)語(yǔ)言之一。如果有了解過(guò)中國(guó)R語(yǔ)言會(huì)議的讀者應(yīng)該知道,這幾年參加R會(huì)的人數(shù)越來(lái)越多,有不少是來(lái)自企業(yè)界。我在演講后都有很多企業(yè)界的數(shù)據(jù)分析師與我交流,都對(duì)R在企業(yè)中的實(shí)戰(zhàn)很感興趣。如果大家對(duì)R語(yǔ)言運(yùn)用在實(shí)際工作中感興趣,可以查詢R會(huì)的一些資料。
R的主要優(yōu)勢(shì)是它有一個(gè)龐大的社區(qū),通過(guò)郵件列表,用戶貢獻(xiàn)的文檔和一個(gè)非?;钴S的堆棧溢出組提供支持。還有CRAN鏡像,一個(gè)用戶可以很簡(jiǎn)單地創(chuàng)造的一個(gè)包含R包的知識(shí)庫(kù)。這些包有R里面的函數(shù)和數(shù)據(jù),各地的鏡像都是R網(wǎng)站的備份文件,完全一樣,用戶可以選擇離你最近的鏡像訪問(wèn)最新的技術(shù)和功能,而無(wú)需從頭開(kāi)發(fā)。
所以我們數(shù)據(jù)分析師如果選擇R語(yǔ)言,是為了讓自己更專注數(shù)據(jù),不是花太多時(shí)間去想想怎么實(shí)現(xiàn)某種算法,因?yàn)檫@些都是有現(xiàn)成的包。如果現(xiàn)成的算法不能滿足你的分析需求,甚至我們可以通過(guò)修改源碼來(lái)完成你的數(shù)據(jù)工作。
接下來(lái),我們從數(shù)據(jù)科學(xué)行業(yè)的表現(xiàn)來(lái)對(duì)比下R和Python。如果你們看一下最近的民意調(diào)查,在數(shù)據(jù)分析的編程語(yǔ)言方面,R是明顯的贏家。但也有越來(lái)越多的人從研發(fā)轉(zhuǎn)向Python。此外,有越來(lái)越多的公司使用這兩種語(yǔ)言來(lái)進(jìn)行組合。如果你打算從事數(shù)據(jù)行業(yè),你用好學(xué)會(huì)這兩種語(yǔ)言。招聘趨勢(shì)顯示這兩個(gè)技能的需求日益增加,而工資遠(yuǎn)高于平均水平。
我們來(lái)看下R的優(yōu)缺點(diǎn)。
優(yōu)點(diǎn)是:
R的缺點(diǎn)就是基于內(nèi)存,運(yùn)算比較緩慢,但是這幾年計(jì)算機(jī)性能的提升和很多擴(kuò)展包的出現(xiàn),很好地解決了這個(gè)問(wèn)題。例如跟RHadoop、sparkR等包,還有與數(shù)據(jù)庫(kù)的鏈接也實(shí)現(xiàn)了R能專心做數(shù)據(jù)分析和建模、可視化的工作。R語(yǔ)言的書(shū)好像也是不溫不火,一直長(zhǎng)銷(xiāo)。
以上是R的優(yōu)缺點(diǎn),接下來(lái)我們簡(jiǎn)單了解下Python方面的優(yōu)缺點(diǎn)。
Python的在數(shù)據(jù)分析方面的第一個(gè)優(yōu)點(diǎn)是:IPython Notebook。IPython Notebook使我們更容易使用Python進(jìn)行數(shù)據(jù)工作,你可以輕松地與同事共享Notebook,而無(wú)需他們安裝任何東西。這大大減少了組織代碼,輸出和注釋文件的開(kāi)銷(xiāo)??梢曰ǜ嗟臅r(shí)間做實(shí)際的工作。
第二點(diǎn)是Python是通用語(yǔ)言。Python語(yǔ)言容易、直觀,在學(xué)習(xí)上會(huì)比較簡(jiǎn)單,它可以加快你寫(xiě)一個(gè)程序的速度。此外,Python測(cè)試框架是一個(gè)內(nèi)置的,這樣可以保證你的代碼是可重復(fù)使用和可靠的。
第三點(diǎn)是Python是一個(gè)多用途的語(yǔ)言,這也是廣受程序員喜愛(ài)的原因之一。Python把不同背景的人集合在一起。作為一種常見(jiàn)的、容易理解,大部分程序員都懂的編程語(yǔ)言,可以很容易地和統(tǒng)計(jì)學(xué)家溝通,你可以使用一個(gè)簡(jiǎn)單的工具就把你每一個(gè)工作伙伴都整合起來(lái)。
Python的主要缺點(diǎn)之一是可視化方面。可視化是選擇數(shù)據(jù)分析軟件的一個(gè)重要的標(biāo)準(zhǔn)。雖然Python有一些不錯(cuò)的可視化庫(kù),如Seaborn,Bokeh和Pygal。但相比于R,呈現(xiàn)的結(jié)果并不總是那么順眼。這幾年P(guān)ython一直在數(shù)據(jù)分析方面一直在趕超R語(yǔ)言,但是還不夠。
對(duì)于我們數(shù)據(jù)分析人員,該如何選擇R和Python。下面給幾點(diǎn)建議:
所以工具的選擇跟你做事情的目的有直接的關(guān)系,如果你是想快速實(shí)現(xiàn)數(shù)據(jù)分析和模型,做一些分析專項(xiàng)和可視化時(shí),可以考慮使用R。如果是為了想實(shí)現(xiàn)數(shù)據(jù)弗恩系平臺(tái)開(kāi)發(fā),可以考慮工程應(yīng)用能力較強(qiáng)的Python。一般讀數(shù)學(xué)和統(tǒng)計(jì)學(xué)的童靴偏好R,計(jì)算機(jī)出生的童靴偏好Python。如果有時(shí)間,最好兩個(gè)都會(huì)。我們團(tuán)隊(duì)在工作中也是兩種工具都有使用。
答:R是一個(gè)跨平臺(tái)的工具,可以完美在windows、unix和Mac上運(yùn)行。我們?cè)趙in上也是可以實(shí)現(xiàn)整個(gè)數(shù)據(jù)分析流程工作。
比如說(shuō)利用RODBC包鏈接公司環(huán)境中的數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)中直接讀入或進(jìn)行數(shù)據(jù)查詢匯總,并將部分基礎(chǔ)數(shù)據(jù)處理的統(tǒng)計(jì)工作交給數(shù)據(jù)庫(kù),然后R執(zhí)行數(shù)據(jù)分析和挖掘的工作,完成后并將結(jié)果返回給數(shù)據(jù)庫(kù),或者利用與java、c++等語(yǔ)言的結(jié)合直接進(jìn)行結(jié)果利用,也可以結(jié)合html、php進(jìn)行數(shù)據(jù)模型和結(jié)果可視化。
對(duì)于數(shù)據(jù)分析師來(lái)說(shuō),如果對(duì)其他語(yǔ)言不熟,我們也可以利用shiny包實(shí)現(xiàn)快速開(kāi)發(fā)數(shù)據(jù)分析平臺(tái)原型的目的。接下來(lái),我們重點(diǎn)聊聊數(shù)據(jù)分析之前的數(shù)據(jù)采集和數(shù)據(jù)分析結(jié)果之后的展示環(huán)節(jié),尤其側(cè)重聊下R與數(shù)據(jù)庫(kù)的鏈接和快速開(kāi)發(fā)web平臺(tái)。
很多傳統(tǒng)企業(yè)現(xiàn)在都還是用oracle、mysql進(jìn)行數(shù)據(jù)存儲(chǔ)。所以我們先以R與MYSQL的鏈接為例進(jìn)行解釋這部分的知識(shí)。在R中通過(guò)RODBC包訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)也許是最流行的方式。這種方式允許R連接到任意一種擁有ODBC驅(qū)動(dòng)的數(shù)據(jù)庫(kù),其實(shí)幾乎就是市面上的所有數(shù)據(jù)庫(kù)。大家要留意的一點(diǎn)就是,你的R位數(shù)必須與數(shù)據(jù)庫(kù)的位數(shù)一致。這點(diǎn)千萬(wàn)別忽視。
由于服務(wù)器上的MySQL是32位,計(jì)算機(jī)系統(tǒng)是64位,所以需要在C:\Windows\SysWOW64文件夾下找到odbcad32.exe,雙擊打開(kāi)ODBC數(shù)據(jù)源管理器界面。這個(gè)32位的ODBC數(shù)據(jù)源管理器界面存放的地方大家可以先記下。
如果你們的mysql是32位,就需要在C盤(pán)的那個(gè)文件夾找到它,雙擊打開(kāi)界面如圖:
點(diǎn)擊添加,選擇MySQL ODBC驅(qū)動(dòng),點(diǎn)擊完成之后彈出一個(gè)數(shù)據(jù)庫(kù)配置窗口。
此處需要說(shuō)明一下,如果你們?cè)隍?qū)動(dòng)中沒(méi)有找到關(guān)于mysql驅(qū)動(dòng),就需要先下載個(gè)mysql odbc驅(qū)動(dòng)進(jìn)行安裝即可。
大家選中mysql驅(qū)動(dòng)以后的界面如上,我們可以填寫(xiě)你的DSN名稱(這個(gè)可以隨意),然后是ip地址和端口、mysql的登錄賬號(hào)和密碼,都填寫(xiě)完畢后,點(diǎn)擊test進(jìn)行測(cè)試。
如果出現(xiàn)鏈接成功的提示,說(shuō)明你們的ODBC數(shù)據(jù)源管理器已經(jīng)設(shè)置成功了。接下來(lái),我們就要回到R中進(jìn)行后面的操作。在32位的R中利用install.packages(“RODBC”)命令進(jìn)行RODBC包的安裝。大家要留意,我們要利用32位的R來(lái)安裝RODBC包。這也是我在文章中為什么建議大家同時(shí)安裝兩個(gè)位數(shù)的R軟件的原因。如我計(jì)算機(jī)的截圖,i386是32位的 x64是64位的。
我們RStuido一般是關(guān)聯(lián)64位的,也可以自己進(jìn)行修改,在options里面進(jìn)行設(shè)置。
這個(gè)是RStudio進(jìn)行設(shè)置的截圖。
進(jìn)去后,點(diǎn)擊change。
此處可以修改關(guān)聯(lián)的R。
繼續(xù)回來(lái)我們的問(wèn)題。RODBC包安裝好后,我們就可以實(shí)現(xiàn)R與MYSQL的鏈接了。包下載安裝好后,就可以利用包中的odbcConnect(dsn, uid = "", pwd ="", ...)函數(shù)進(jìn)行數(shù)據(jù)庫(kù)連接,并繼續(xù)數(shù)據(jù)的傳輸及分析工作。
這個(gè)是本機(jī)mysql的一些信息,daniel是剛才ODBC數(shù)據(jù)源管理器里面設(shè)置的DSN,root是mysql的登錄賬號(hào),123456是登錄密碼。如果你們能看到數(shù)據(jù)庫(kù)信息,說(shuō)明已經(jīng)連通了。
我們先嘗試如果將R的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。可以使用sqlSave(channel,dat,tablename=NULL,append=FALSE)命令將R中的數(shù)據(jù)框?qū)懭牖蚋?append=TRUE)到MySQL數(shù)據(jù)庫(kù)的某個(gè)表中。比如我們想把R自帶的mtcars數(shù)據(jù)寫(xiě)入到MySQL中,在數(shù)據(jù)庫(kù)中生成新表mydata。
大家看到了,我們?cè)贛YSQL已經(jīng)新生成一個(gè)表mydata?,F(xiàn)在,嘗試將數(shù)據(jù)庫(kù)中的數(shù)據(jù)傳入到R中??梢岳胹qlFetch(channel, sqtable, ..., colnames = FALSE, rownames = TRUE)命令讀取MySQL數(shù)據(jù)庫(kù)中的mydata表到一個(gè)數(shù)據(jù)框中。
以上截圖sqlFetch中的第一個(gè)參數(shù)是剛才建立的鏈接channel,第二個(gè)參數(shù)是數(shù)據(jù)庫(kù)中存在的表mydata。我們運(yùn)行命令后就將mysql中的mydata表全部讀取到R中。有時(shí)候,我們并不想將原始表讀入到R中,只想利用數(shù)據(jù)庫(kù)中表的一些問(wèn)題:可以利用sqlQuery(channel, query, errors = TRUE, ..., rows_at_time)命令向mysql數(shù)據(jù)庫(kù)提交一個(gè)查詢并返回結(jié)果。比如相對(duì)mydata表,統(tǒng)計(jì)按照vs和am進(jìn)行分組,統(tǒng)計(jì)mpg的平均組,執(zhí)行以下代碼可以完成該操作。
以上是在win中實(shí)現(xiàn)R與數(shù)據(jù)庫(kù)的鏈接。接下來(lái),給大家快速過(guò)一下shiny包快速開(kāi)發(fā)web app應(yīng)用的過(guò)程。
Shiny是R中的一種Web開(kāi)發(fā)框架,使得R的使用者不必太了解CSS、JS,只需要了解一些HTML的知識(shí)就可以快速完成Web開(kāi)發(fā),且Shiny包集成了Bootstrap、jQuery、Ajax等特性,極大解放了作為統(tǒng)計(jì)語(yǔ)言的R的生產(chǎn)力。使得非傳統(tǒng)程序員的R使用者不必依賴于前端、后端工程師就可以自己依照業(yè)務(wù)完成一些簡(jiǎn)單的數(shù)據(jù)可視化工作,快速驗(yàn)證想法的可靠性。
Shiny應(yīng)用包含兩個(gè)基本的組成部分:一個(gè)是用戶界面腳本(a user-interface script),另一個(gè)是服務(wù)器腳本(a server script)。
用戶界面(ui)腳本控制應(yīng)用的布局與外表;服務(wù)器(server)腳本包含構(gòu)建應(yīng)用所需要的一些重要指示。shiny包也自帶了一些app應(yīng)用例子幫助新手快速上手,比如我們想看一個(gè)交互直方圖。執(zhí)行以下代碼:
if(!require(shiny) install.packages(“shiny”) runExample(“01_hello”)
執(zhí)行命令會(huì)得到一個(gè)web app應(yīng)用界面:
以上截圖就是一個(gè)網(wǎng)頁(yè),我們可以拖動(dòng)滑動(dòng)條,直方圖會(huì)立即發(fā)生變化。我們只需要在服務(wù)器上進(jìn)行部署就可以實(shí)現(xiàn)網(wǎng)頁(yè)共享,一個(gè)數(shù)據(jù)分析平臺(tái)的應(yīng)用就開(kāi)發(fā)完成了。
以上是關(guān)于在win下做數(shù)據(jù)分析的一些經(jīng)驗(yàn)分享。
答:R語(yǔ)言可以跟很多語(yǔ)言、工具實(shí)現(xiàn)完美集成。比如C++、Java這些底層編程語(yǔ)言,也能與PHP、JS、html等前端展示語(yǔ)言進(jìn)行很好地結(jié)合,直接將R的結(jié)果進(jìn)行展示。比如前面提到的shiny包的ui.R其實(shí)就是承擔(dān)了客戶端的html頁(yè)面設(shè)計(jì)工作,我們也可以直接在ui.R直接編寫(xiě)html腳本來(lái)實(shí)現(xiàn)自定義的網(wǎng)頁(yè)布局。比如大家剛剛看到的前端的展示,其實(shí)可以u(píng)i.R完全用html來(lái)寫(xiě)。
大家如果對(duì)各種工具集成感興趣,可以看看張丹的那本《R的極客理想-——工具篇》,對(duì)于一位偏數(shù)據(jù)開(kāi)發(fā)的童鞋會(huì)有很大的啟發(fā)。
答:嗯,對(duì)于新手,我個(gè)人建議還是一步一個(gè)腳印,打好基礎(chǔ)。做數(shù)據(jù)分析師沒(méi)有捷徑,只能一步一個(gè)腳印,循序漸進(jìn)。但是有一些標(biāo)準(zhǔn)的流程可以參考,你平時(shí)的工作就有個(gè)方向,知道針對(duì)什么業(yè)務(wù)用什么方法實(shí)現(xiàn)。 給大家分享一個(gè)通用的行業(yè)流程。 跨行業(yè)的數(shù)據(jù)挖掘標(biāo)準(zhǔn)流程CRISP-DM方法論,是一種業(yè)界認(rèn)可的用于指導(dǎo)數(shù)據(jù)挖掘工作的方法。按照CRISP-DM方法論,一個(gè)數(shù)據(jù)分析的完整流程包括6個(gè)階段:分別是業(yè)務(wù)理解、數(shù)據(jù)理解、數(shù)據(jù)準(zhǔn)備、建立模型、模型評(píng)估和模型發(fā)布。這6個(gè)階段的順序并不是固定不變的,在不同的業(yè)務(wù)場(chǎng)景中,可以有不同的流轉(zhuǎn)方向。
拿我所在游戲行業(yè)的數(shù)據(jù)來(lái)說(shuō),我總結(jié)了以下幾點(diǎn):
業(yè)務(wù)理解: 該階段的核心內(nèi)容包括正確理解業(yè)務(wù)背景和業(yè)務(wù)需求,同時(shí)能把業(yè)務(wù)需求有效轉(zhuǎn)化成合理的分析需求,并設(shè)計(jì)指標(biāo)體系和擬定實(shí)施計(jì)劃。
數(shù)據(jù)理解:該階段從數(shù)據(jù)收集開(kāi)始,并對(duì)可用的數(shù)據(jù)進(jìn)行數(shù)據(jù)探索和評(píng)估,識(shí)別數(shù)據(jù)質(zhì)量問(wèn)題,發(fā)現(xiàn)數(shù)據(jù)不同屬性間的關(guān)系。
數(shù)據(jù)準(zhǔn)備:這個(gè)階段屬于數(shù)據(jù)清洗和轉(zhuǎn)換工作,包含數(shù)據(jù)缺失值和異常值的處理,保證建模前的數(shù)據(jù)質(zhì)量;數(shù)據(jù)的重組、轉(zhuǎn)換以及衍生等處理,比如對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理、對(duì)某些指標(biāo)進(jìn)行分箱操作以便達(dá)到建模需求。
建立模型:該環(huán)節(jié)是游戲數(shù)據(jù)分析流程中技術(shù)含量最高的階段,數(shù)據(jù)分析師應(yīng)該根據(jù)項(xiàng)目需求和數(shù)據(jù)特點(diǎn)選擇適合的算法,并使用專業(yè)的數(shù)據(jù)挖掘工具建立模型。
然后是模型評(píng)估和發(fā)布,評(píng)估這幾年常用的是混淆矩陣和ROC曲線,還有多重交叉驗(yàn)證。
以上方法論對(duì)于一個(gè)初學(xué)者我覺(jué)得是非常重要的,你們需要知道你現(xiàn)在做的事情是屬于哪個(gè)階段,才能選擇相應(yīng)的工具和方法去實(shí)現(xiàn)。如果大家對(duì)數(shù)據(jù)分析整個(gè)流程感興趣,可以關(guān)注我今年初將要出版的新書(shū)《R語(yǔ)言游戲數(shù)據(jù)分析》,這本書(shū)會(huì)詳細(xì)介紹了各種階段的知識(shí)和技巧。
這篇文章 總結(jié)的很到位,大家可以看看。
以上是個(gè)人的一些建議,希望學(xué)任何東西都是多看多想多練,這次才能培養(yǎng)自己的分析思維。
答:很多時(shí)候,大家安裝包時(shí)會(huì)出現(xiàn)無(wú)法安裝的情況,此時(shí)我們可以進(jìn)行另外一種安裝方式,就是可以下載壓縮包進(jìn)行本地安裝。cran上的安裝包可以直接去官網(wǎng)下載,如下截圖。
大家可以看到,側(cè)邊欄有個(gè)叫Packages的菜單,我們點(diǎn)擊即可進(jìn)入cran所有包的頁(yè)面。此時(shí)也是提供了windows、linux和mac不同系統(tǒng)的壓縮包下載。如果大家用的是win,請(qǐng)下載后綴為zip的文件。下載后,我們就可以實(shí)現(xiàn)本地安裝,以RStudio為例。
點(diǎn)擊install 彈窗如下。
默認(rèn)是在線安裝,我們改為zip的本地安裝即可。選中你需要安裝的壓縮包,然后點(diǎn)擊Install就可以完成包的本地安裝。不過(guò),有一點(diǎn)需要注意的地方就是,此種安裝方式會(huì)造成依賴包不能一并進(jìn)行安裝。所以如果進(jìn)行本地安裝時(shí)留意一下包所依賴的其他包。此外,我們有很多處于開(kāi)發(fā)狀態(tài)包放在github上面。此時(shí)不能用install.packages()命令進(jìn)行安裝,需要利用install_github()命令進(jìn)行安裝。
該命令在devtools包中,故需要先install.packages(“devtools”)進(jìn)行devtools包的安裝。包安裝完后,就可以利用library或require命令進(jìn)行包的加載,就可以利用包實(shí)現(xiàn)很多擴(kuò)展功能了。如果是RStuido,也可以直接點(diǎn)擊包名前面的小框√即可完成包的加載。
包的安裝時(shí)很講技巧的,今天就先簡(jiǎn)單分享到這里。比如rCharts、recharts等交互包就是在github上,大家有興趣可以嘗試下載安裝。
答:有多個(gè)包可以實(shí)現(xiàn)EXCEL數(shù)據(jù)的導(dǎo)入,不過(guò)最簡(jiǎn)單的方式是將其轉(zhuǎn)化為csv再通過(guò)read.table或read.csv命令導(dǎo)入。給大家介紹幾個(gè)專門(mén)導(dǎo)入excel數(shù)據(jù)的包。
例如,RODBC包中的odbcConnectExcel2007函數(shù)、xlsx包中的read.xlsx函數(shù)、XLConnect包中的loadworkbook和readWorksheet函數(shù)訪問(wèn)Excel2007文件。其中,RODBC、xlsx、XLConnect包都需要依賴于rJava包,也需要依賴于計(jì)算機(jī)的jre環(huán)境才行。
相對(duì)來(lái)說(shuō)比較麻煩,給大家簡(jiǎn)單解釋下。
先看看我們計(jì)算機(jī)的jre環(huán)境,先調(diào)出cmd窗口,輸入java - version查看java版本。如下圖所示。
大家可以看到,我這邊的裝好的是1.8 64位的java,此時(shí)需要利用64位的R來(lái)安裝那幾個(gè)擴(kuò)展包來(lái)進(jìn)行excel的讀取。以下給大家演示下這幾個(gè)包的加載。
大家看到的截圖,是利用64位的R可以將這兩個(gè)包加載到R中,接下來(lái)就可以完成excel數(shù)據(jù)的導(dǎo)入了。
大家如果以后遇到此錯(cuò)誤,就說(shuō)明你的rJava位數(shù)與本機(jī)的jre位數(shù)不一樣。
這些包的安裝比較麻煩,如果真要從excel中導(dǎo)入數(shù)據(jù)到R中,給大家介紹一個(gè)不需要依賴java環(huán)境的包:readxl包。直接通過(guò)install.packages("readxl")進(jìn)行安裝,然后read_excel函數(shù)進(jìn)行excel數(shù)據(jù)的讀取,具體大家有時(shí)間可以去嘗試下,我就不進(jìn)行案例演示了。
答:算法模型一般分為兩種:有監(jiān)督模型、無(wú)監(jiān)督模型。比如我們常聽(tīng)到的聚類分析、關(guān)聯(lián)規(guī)則就是非常出名的無(wú)監(jiān)督模型。聚類分析用在用戶分群業(yè)務(wù)領(lǐng)域,在R中可以利用kmeans函數(shù)實(shí)現(xiàn)K均值聚類,通過(guò)hclust實(shí)現(xiàn)層次聚類。例如無(wú)監(jiān)督模型中的關(guān)聯(lián)規(guī)則,R實(shí)現(xiàn)是非常方便的。我們利用arules包實(shí)現(xiàn)apriori算法,利用arulesViz包對(duì)規(guī)則進(jìn)行可視化。這個(gè)也是我覺(jué)得R強(qiáng)大之一,可以把枯燥的模型結(jié)果進(jìn)行可視化展示,讓你的分析結(jié)果更具體更形象。
舉一個(gè)道具銷(xiāo)售的例子來(lái)說(shuō)明,假如說(shuō)我們數(shù)據(jù)庫(kù)有這樣的數(shù)據(jù)。
第一列是用戶id、第二列是道具名稱、第三列是購(gòu)買(mǎi)數(shù)量。關(guān)聯(lián)關(guān)系,我們想從這堆數(shù)據(jù)里面發(fā)現(xiàn)一些購(gòu)買(mǎi)偏好和道具的關(guān)聯(lián)慣性。 首先是數(shù)據(jù)重組:
然后是數(shù)據(jù)轉(zhuǎn)換:
可以看到,實(shí)現(xiàn)了數(shù)據(jù)轉(zhuǎn)換,為建模做好了準(zhǔn)備,現(xiàn)在就可以建模和查看結(jié)果了。
rules <- apriori(data_class,parameter=list(support=0.005,confidence=0.1,target="rules"))
此行就是建模代碼,R只需要一行命令就可以完成關(guān)聯(lián)規(guī)則建模的工作。
這個(gè)是關(guān)聯(lián)規(guī)則的結(jié)果,我們也可以進(jìn)行可視化。
通過(guò)arulesViz包的plot函數(shù)實(shí)現(xiàn)的。以上就是無(wú)監(jiān)督模型的一些介紹。
接下來(lái),我們簡(jiǎn)單聊下有監(jiān)督模型。經(jīng)典的線性回歸、Logitic回歸、決策樹(shù)、樸素貝葉斯、KNN近鄰分類,還有這幾年非常流行的袋裝、隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等等,這些都屬于有監(jiān)督模型,R都有相應(yīng)的包可以實(shí)現(xiàn),非常簡(jiǎn)單。決策樹(shù)文章中已經(jīng)分享過(guò),我們就簡(jiǎn)單來(lái)了解下隨機(jī)森林的R實(shí)現(xiàn)吧。
使用隨機(jī)森林和袋裝的目的是:實(shí)際中,只使用單一模型決定一組數(shù)據(jù)的分類常常并不可行,因?yàn)閷?duì)數(shù)據(jù)分類描述比較清晰的一個(gè)模型也許異常復(fù)雜,只使用一種準(zhǔn)則建立的模型很難避免不出現(xiàn)過(guò)度擬合。因而,一個(gè)更好的方法是采用投票方法從這些分類器的結(jié)果中選擇最優(yōu)的模型,換句話說(shuō),如果我們對(duì)不同算法的預(yù)測(cè)結(jié)果取平均,相比只使用一個(gè)分類器,可能會(huì)得到更好的分類模型。
R的randomForest包中的randomForest函數(shù)實(shí)現(xiàn)隨機(jī)森林算法,并提供了importance和varImpPlot兩個(gè)函數(shù)用來(lái)評(píng)估每個(gè)屬性的重要性,其中importance函數(shù)將列表展示模型中的每個(gè)屬性的重要性,而varImpPlot函數(shù)則可以通過(guò)繪制平均精確率下降及平均基尼下降曲線實(shí)現(xiàn)屬性重要性的可視化。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門(mén)控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書(shū)考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開(kāi)啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03