中文手冊(cè)discovermanual入口函數(shù)及幫助_第1頁(yè)
中文手冊(cè)discovermanual入口函數(shù)及幫助_第2頁(yè)
中文手冊(cè)discovermanual入口函數(shù)及幫助_第3頁(yè)
中文手冊(cè)discovermanual入口函數(shù)及幫助_第4頁(yè)
中文手冊(cè)discovermanual入口函數(shù)及幫助_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Discover產(chǎn)品介 快速上 discoverR....................................discover函數(shù)及獲取函數(shù)幫 關(guān)于持久 的疑 discoverR實(shí) 初始化和資源配 數(shù)據(jù)預(yù)處 訓(xùn)練Kmeans模 展示聚類(lèi)相關(guān)結(jié) Notebook....................................新建 編輯和編譯 管理和重啟 note的權(quán)限管 Notebook工程展示風(fēng) Notebook功 各大解釋器的配置說(shuō) 多人協(xié)作開(kāi) 趣味應(yīng)用及報(bào)表發(fā) Python包加載和使用簡(jiǎn)易...........................Discover-lib簡(jiǎn) 孤立森林算法I................................數(shù)據(jù) R語(yǔ)言代 scala語(yǔ)言代 分類(lèi)算法 數(shù)據(jù) R語(yǔ)言代 scala語(yǔ)言代 基于個(gè)性化排序的推薦算法 數(shù)據(jù) R語(yǔ)言代 scala語(yǔ)言代 離群點(diǎn)檢測(cè)算法 .數(shù) R語(yǔ)言代 scala語(yǔ)言代 密度聚類(lèi)算法 .數(shù) R語(yǔ)言代 scala語(yǔ)言代 數(shù)據(jù) R語(yǔ)言代 scala語(yǔ)言代 詳細(xì)之分布式discoverR 多種數(shù)據(jù)源...................................傳統(tǒng)本地?cái)?shù)據(jù)................................分布式大數(shù)據(jù)................................基于分布式dplyr的特征工程應(yīng) 數(shù)據(jù)類(lèi)型轉(zhuǎn) 數(shù)據(jù)操作方 分布式特征數(shù)據(jù)的保存和加 加載數(shù)據(jù)集生成 保存sparkDataFrame到 從Inceptor中抽取數(shù) 傳統(tǒng)數(shù)據(jù)類(lèi)型和sparkDataFrame的比 斷開(kāi)inceptor的連接以及 應(yīng)用案例之關(guān)聯(lián)推 加載數(shù) 模型訓(xùn) 應(yīng)用案例之流失.................................數(shù)據(jù)加 數(shù)據(jù)處理與分 特征提 類(lèi)別標(biāo) 模型構(gòu) 模型預(yù) 模型評(píng) 總 應(yīng)用案例之檢 案例介 數(shù)據(jù)簡(jiǎn) 數(shù)據(jù)加 數(shù)據(jù)處 模型構(gòu)建與預(yù) 模型訓(xùn) 模型預(yù) 模型評(píng) txLOF模型對(duì) 應(yīng)用案例之商圈聚 案例簡(jiǎn) 數(shù)據(jù)說(shuō) 數(shù)據(jù)加 數(shù)據(jù)預(yù)處理和分 模型訓(xùn) 模型評(píng) 結(jié)合GMM對(duì)商鋪進(jìn)行分 模型導(dǎo)出和讀入 txPmml使用PMML3.9.從Local-Cran可連接時(shí).................................無(wú)法連接時(shí)................................3.10.自定義算法開(kāi) 詳細(xì)之在Notebook中使用 Python解釋器..................................配置解釋 練習(xí)示 Python庫(kù)的管理和安 5.2環(huán)境自帶的python 新增包庫(kù)的方 標(biāo)準(zhǔn)案例NotebookPython Sklearn開(kāi)源例 DiscoverNotebook深度學(xué)習(xí).............................Tensorflow解釋器................................5.1.1.概念理 5.1.2.練習(xí)示 張量 圖 會(huì)話 變量 標(biāo)準(zhǔn)案例NotebookTensorflow tensorflow的簡(jiǎn)單例 Discover-libAPI手 集群安全模式須 Kerberos模式下的安全認(rèn) 初始化與keytab認(rèn) 及上傳keytab文 設(shè)置資源..................................添加一個(gè)新用 連接Inceptor的權(quán)限設(shè) 常見(jiàn)問(wèn)題回答 Discover.init()報(bào)錯(cuò) Guardian報(bào)錯(cuò) 如何獲取幫助以及函數(shù)的使用方法和例 如何升級(jí)R語(yǔ)言的版 on,或者Error:couldnotfindfunction“discover.init” Rstudio中執(zhí)行txSql相關(guān)錯(cuò) Discover中執(zhí)行txSqlQuery出 Rstudio中執(zhí)行dim(table)出現(xiàn)stagefailure,stringisnotavalidenternaltypefor73schemaofsmallint.Rstudio中無(wú)法使用select選取DataFrame中的列 表轉(zhuǎn)換成本地data.frameOOM錯(cuò) DiscoverNotebook和RstudioIDE的默認(rèn)登錄賬號(hào)是什么 如何為DiscoverNotebook和RstudioIDE服務(wù)添加用戶 如何進(jìn)入NoteBook的 discover用戶無(wú)法登錄服務(wù),顯示unabletoconnectto DiscoverNoteBook包含哪些解釋器 DiscoverNotebook如何修改解釋器的默認(rèn)配置 DiscoverNotebookpython相 Notebook中如何修改python的版 Notebook中如何安裝新的python Notebookpython解釋器中pip命令不能使 Notebookpython解釋器安裝完新庫(kù)之后無(wú)法加載新安裝的 附 客戶服 在編寫(xiě)該說(shuō)明 遺漏、不注釋:Hadoop?和SPARK?是ApacheTM軟件在 和其他國(guó)家的商標(biāo)或的商標(biāo)。Java?是 和其他國(guó)家的商標(biāo)或的商標(biāo)。In ?和Xeon?是英特爾公司在、中國(guó)和其他國(guó) ?2013年-2018年星環(huán)信息科技() 的最終解釋權(quán)和修改權(quán)。本說(shuō)明書(shū)的 的,任何人不 、翻譯成其他語(yǔ)言、或?qū)姹咎?hào):T00160x-06-發(fā)布日期:2018-09-Preface|DiscoverTranswarpDiscover是一款靈活的數(shù)據(jù)科學(xué)分析探索工具,提供了R、Python、Spark來(lái)輔助構(gòu)建智能應(yīng)用,比如,精準(zhǔn)、流失、文本挖掘等。主要功能Discover支持R語(yǔ)言引擎,用戶可以通過(guò)RHDFS中的數(shù)據(jù),還支持在Inceptor分布式內(nèi)存中的數(shù)據(jù)。在Discover中,用戶既可以通過(guò)R命令行,也可以使用圖形化的軟件執(zhí)行R語(yǔ)言程序來(lái)TDH中的數(shù)據(jù),易用性極高。Discover內(nèi)置了大量常用機(jī)器學(xué)習(xí)算法的分布式實(shí)現(xiàn),可以與R配合TDH內(nèi)置的高度優(yōu)化的專有算法,可高速分析現(xiàn)有平臺(tái)中的海量數(shù)據(jù)。此外,Discover學(xué)習(xí)算法庫(kù),包含了統(tǒng)計(jì)算法、分類(lèi)算法、聚類(lèi)分析、回歸分析、頻度關(guān)聯(lián)分析和神經(jīng)網(wǎng)絡(luò)在內(nèi)的常用算技術(shù)特點(diǎn)Discover與星環(huán)大數(shù)據(jù)平臺(tái)TranswarpDataHub(TDH)無(wú)縫銜接,可通過(guò)R語(yǔ)言接口函數(shù)或在Discover-Discover兩種可視化平臺(tái)上均支持獨(dú)家分布式數(shù)據(jù)挖掘工具 discoverR包,對(duì)接到Spark分布式機(jī)器 人;還支持發(fā)布報(bào)表的功能,將報(bào)表的展示效果及動(dòng)態(tài)通過(guò)一個(gè)發(fā)布到代碼或報(bào)告中。(詳見(jiàn)第5章星環(huán)科技已經(jīng)在多個(gè)行業(yè)幫助客戶部署基于TDH的數(shù)據(jù)挖掘應(yīng)用,包括用戶行為分析、精準(zhǔn)、產(chǎn)品和用戶、實(shí)時(shí)推薦、用戶流失分析、反、風(fēng)險(xiǎn)分析、故障檢測(cè)等?;谶@些項(xiàng)目經(jīng)驗(yàn),星環(huán)科技的合作伙伴已經(jīng)能夠熟練使用Discover在TDH大平臺(tái)上開(kāi)發(fā)數(shù)據(jù)挖掘應(yīng)用,形成了多套成方案。DiscoverAPIDiscover2|1.Discover產(chǎn)品介?Discover-libAPI手Discover產(chǎn)品介紹|首先,完成了TDH平臺(tái)上Discover組件的安裝從http://<Manager_IP>:8180界面點(diǎn)擊DiscoverDiscover產(chǎn)品提供Discover-Notebook交互式數(shù)據(jù)分析平臺(tái),并無(wú)縫對(duì)接Discover-IDE(即Rstudio),可以通過(guò)點(diǎn)擊上圖的Link打開(kāi)相應(yīng)web網(wǎng)頁(yè)(如沒(méi)有配置hosts文件,需將相應(yīng)的hostname替換成IP),也可直接在瀏覽器上輸入地址http://<Discover-IDE_IP>:8787和http://<Discover-Notebook_IP>:8686網(wǎng)頁(yè)(注意端口對(duì)應(yīng)情況)。除了Rstudio和Notebook之外,還有Local-Cran服務(wù)的Link,即本地第R包庫(kù)服務(wù),通常情況下不需要用戶進(jìn)行操作。查看或修改discover相關(guān)配置如下圖所示,修改保存后,安裝界面提示更新Discover以Rstudio為例,在下圖的登陸界面上我們輸入賬戶(Discover產(chǎn)品默認(rèn)創(chuàng)建discover用戶,密在命令行輸入下面令后,就可以使用discoverR包的相關(guān)分布式算法函數(shù)了discover函數(shù)及獲取函數(shù)幫通常來(lái)說(shuō),用戶使用的第一個(gè)discoverR函數(shù)是discover.init(),這個(gè)函數(shù)用于初始化一個(gè)local模式或模式的多任務(wù)進(jìn)程。作為discoverR包的門(mén)戶函數(shù),我們?cè)赿iscover.init()函數(shù)的help說(shuō)明中添加了詳細(xì)的使用,除了該函數(shù)自身的參數(shù)及相關(guān)說(shuō)明外,還有使用discoverR包的標(biāo)準(zhǔn)案例和API接口打開(kāi)方式。下面請(qǐng)?jiān)诿钚兄休斎雴?wèn)號(hào)加函數(shù)名(如下所示)可以查看該函數(shù)的help文檔:只有在yarn組件開(kāi)啟了Kerberos安全模式時(shí),keytabPath置,如沒(méi)有特別指定,則默認(rèn)Sys.getenv('HOME')下面的.keytab文件inceptor_mode參數(shù)對(duì)應(yīng)的是數(shù)倉(cāng)Inceptor的認(rèn)證模式(一般為"none""simple""ldap""kerberos"這sparkConfig中可以指定spark相關(guān)配置,可配參數(shù)有"spark.master""spark.yarn.keytab""spark.yarn.principal""spark.driver.memory""spark.executor.memory""spark.executor.instances""spark.driver.extraClassPath""spark.driver.extraJavaOptions""spark.driver.extraLibraryPath",sparkJars參數(shù)可用于加載外部jar包,需對(duì)該jar包有’r-x’此外,我們還可以在查看標(biāo)準(zhǔn)案例(discoverR詳細(xì))和函數(shù)API文檔聊了解discoverR包詳細(xì)的使用快速上手|查看函數(shù)API接口(help(a)命令行輸入:DiscoverAPI文檔地址help(package=即可查看discoverR包中所有函數(shù)的API(b)DiscoverAPI文檔地址查看標(biāo)準(zhǔn)案例(行業(yè)模板通用方法:在物理集群和Docker“Userguides,packagevignettesandotheration”,在新的網(wǎng)頁(yè)下打開(kāi),點(diǎn)擊函數(shù)的方式Docker可在命令行中輸入下面命令直接打開(kāi)標(biāo)準(zhǔn)案例(詳細(xì))地址。注:ip參數(shù)默認(rèn)為空,可自行指定注:ip參數(shù)設(shè)置同上,portdiscover.doc.open(port='')discover.doc.open(ip,port=Discover分布式dplyr分布式dplyr包是discoverhelp(package=查看help菜鳥(niǎo)代碼示在discover.init函數(shù)的help文檔末尾,Example項(xiàng)中,我們給出了“TestSampleforFreshUsers”簡(jiǎn)單例子,方便使用或簡(jiǎn)單的測(cè)試,建議第一次使用discover5.1及以上產(chǎn)品的用戶對(duì)該樣例熟悉快速上手|關(guān)于持久 的疑對(duì)于Docker化的集群,一個(gè)比較常見(jiàn)的問(wèn)題是關(guān)于持久化。DiscoverIDENotebook上,我們的所到持久化的里,那么當(dāng)Discover組件重啟之后,會(huì)造成文件丟失的。因此,了解Discover節(jié)點(diǎn)使用過(guò)程中有哪些可用于存取重要文件的以及這些對(duì)應(yīng)到宿主機(jī)的位置具有一定的必要性,下面我們列出用戶常用到的列表:container……Discover5.1home已設(shè)到/var/home/下。rstudiosetwd()作,如無(wú)特殊指定,默認(rèn)的工作即為用戶的Home。discoverR實(shí)從discover初始化函數(shù)我們已經(jīng)獲取了這么多使用竅門(mén),下面,就通過(guò)Kmeansdiscover.init()函數(shù)中的sparkConfig參數(shù)是專門(mén)針對(duì)初始化資源配置的,可以在該參數(shù)中對(duì)配置進(jìn)sparkConfig<-list(spark.master=spark.driver.memory="512m",spark.executor.memory="1g",spark.executor.instances="2")如無(wú)該局部資源配置步驟,默認(rèn)的資源配置中,spark.driver.memory512M,spark.executor.memory為512M,spark.executor.instances為3。discover.init(inceptor_mode="ldap",sparkConfig=sparkConfig)當(dāng)集群安裝了Guardian服務(wù)時(shí),還可以通過(guò)在GuardianServer管理界面上給每個(gè)用戶分配的方法6.1df_data<-suppressWarnings(createDataFrame(iris))discoverR5.1及以上版本,模型處理的數(shù)據(jù)結(jié)構(gòu)主要為SparkDataFrame,如上例的df_data量。discoverR5.1及以上版本兼容了SparkR的基本數(shù)據(jù)操作函數(shù)的使用,例如head,dim,select我們給出Discover向量矩陣矩陣是數(shù)組的一個(gè)特例,維數(shù)k=數(shù)組數(shù)組是k因子因子是用來(lái)類(lèi)別變量和有序變量,不能計(jì)算只能用來(lái)分類(lèi)和計(jì)數(shù)據(jù)框是由一個(gè)或幾個(gè)向量和(或)列表分布式的DataFrameas.DataFrame()或createDataFrame()快速上手|training<-select(df_data,col=c("Sepal_Length","Sepal_Width","Petal_Length","Petal_Width"))txBoxPlot(training,main="Box-and-whiskerPlotsofTrainingData")預(yù)處理包含數(shù)據(jù)、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)規(guī)約等幾種方法,discoverR包均提供了對(duì)應(yīng)方法的分布式訓(xùn)練Kmeans給定聚類(lèi)數(shù)目K=3,我們調(diào)用txKmeans函數(shù)訓(xùn)練數(shù)據(jù),得到一個(gè)Kmeans模型(?txKmeans可詳細(xì)查看該函km_modeltxKmeans(datatrainingformula~k3)cluster_result<-predict(km_model,training)head(cluster_result)predict的聚類(lèi)結(jié)果是在訓(xùn)練集上拼接的prediction一列,數(shù)值范圍為0~(k-1),結(jié)果展示上,我們可以應(yīng)用txKmeans模型原生的plot例如,這里我們使用ggplot2包中的ggplot最后,打印訓(xùn)練結(jié)果的凝聚度。聚類(lèi)的凝聚度是txKmeans聚類(lèi)算法的一個(gè)性能評(píng)價(jià)標(biāo)準(zhǔn),顧名思義,即表明結(jié)果中各個(gè)簇中樣本點(diǎn)的凝聚度。凝聚度越高,聚類(lèi)的效果越好。10|2快速上plot(km_model,centers<-origin<-collect(sample(x=cluster_result,withRecement=FALSE,fraction=1,seed=2))p<-ggplot(origin,aes(x=Petal_Length,y=Petal_Width))p+geom_point(data=origin,aes(color=factor(prediction),shape=factor(prediction)))+geom_point(data=centers,aes(x=Petal_Length,y=Petal_Width,fill="clustercenters"),color="pink",size=8)xlab("Petal_Length")+ylab("Petal_Width")+theme_bw()+labs(title="K-meansClusterResults")+Discover5.1版本開(kāi)始,我們引入新的交互式數(shù)據(jù)分析平臺(tái),Discover-Notebook。初始登錄界面上有我們的數(shù)據(jù)挖掘案例(DiscoverCases)和discoverRAPI文檔(Discover開(kāi)發(fā)手冊(cè)),如下所示:快速上手|最上面包含Discoverlogo的一層是菜單欄。點(diǎn)擊菜單欄的“Login”按鈕,輸入賬戶(如discover/123456),即登錄進(jìn)入Notebook的主頁(yè)面,任何時(shí)刻,點(diǎn)擊菜單欄的“Discover”logo主面板左邊一欄顯示了用戶自己建的Notebook和使用(包括Dashboard面板發(fā)布,DiscoverR語(yǔ)言,Python語(yǔ)言等等)。新建點(diǎn)擊“Createnewnote”,在“NoteName”欄填寫(xiě)名稱??梢杂谩?”來(lái)為Note建立存放 理個(gè)人Notebook工程中比較有用,如下例所示。設(shè)置默認(rèn)解釋器,點(diǎn)擊“CreateNote”完成新建。編輯和編譯這里我們回到主頁(yè)面,點(diǎn)擊“DiscoverR語(yǔ)言”打開(kāi)該12|2快速上每個(gè)Notebook工程可由多個(gè)不同的note組成,計(jì)算結(jié)果在不同note中可以共享,點(diǎn)擊note之間的空白區(qū)域即新增一個(gè)空白note。首行“%R”即指定discoverR解釋器,每個(gè)note只能指定一種解釋器,同一工程不同指定的解釋器可以不盡相同。代碼輸入完畢后,點(diǎn)擊右上角的三角形即可以進(jìn)行計(jì)算。計(jì)算結(jié)果無(wú)論是文字或是,都會(huì)顯示在代碼的下方。管理和重啟如圖所示,我們支持discoverR,spark,markdown語(yǔ)法,s,python,JDBC,Inceptor等語(yǔ)言解釋器。讓配置馬上生效,簡(jiǎn)潔方便。而初次使用Notebook時(shí)候,如果遇到“interpreterXXXnotfound”的時(shí)候,并且,Notebook提交任務(wù)后,不會(huì)自動(dòng)結(jié)束進(jìn)程,如手動(dòng)執(zhí)行了spark-s一樣,需要手動(dòng)停止進(jìn)程,重啟解釋器(interpreter)釋放資源。刷新后點(diǎn)擊“Save”快速上手|note點(diǎn)擊Notebook菜單欄的小鎖標(biāo)記,可以設(shè)置當(dāng)前NotebookNotebook示風(fēng)格,支持default,simple,report三種類(lèi)型。最后,Notebook就到這里了,快快選擇心動(dòng)的體驗(yàn)下吧Notebook功前面2.3節(jié)我們已經(jīng)介紹了Notebook的簡(jiǎn)單使用,包括新建Notebook工程,新建note,note和編譯note以及解釋器的管理等等內(nèi)容。下面我們深入到具體解釋器的使用配置以及挖掘其他功能首先,點(diǎn)擊登錄用戶的下拉選項(xiàng),選中“Interpreter”,點(diǎn)擊“edit”編輯inceptor登錄信息,包括登錄用戶,InceptorServer的URL(替換“l(fā)ocalhost”為對(duì)應(yīng)14|2快速上配置完成后,點(diǎn)擊“save”保存配置,并點(diǎn)擊右上角的“restart”式,請(qǐng)?jiān)O(shè)置為“yarn”,其他環(huán)境變量參數(shù),請(qǐng)參考spark配置說(shuō)明。對(duì)于一個(gè)Notebook快速上手|上面一欄中的工具是針對(duì)Notebook工程中所有note運(yùn)行工程中的所有該工程:工程可移植性,的文件為Json文件,可移植到其他節(jié)點(diǎn)并在主界面“ImportRunscheduler:中間紅框中的的小時(shí)鐘標(biāo)志是定時(shí)器,可設(shè)置當(dāng)前Notebook定期執(zhí)行,實(shí)現(xiàn)自動(dòng)化的工右邊一欄中的工具是針對(duì)不同noteWidth:調(diào)整noteMoveDown:將noteInsertNew:當(dāng)前note下方新建新的Cloneparagraph:當(dāng)前Show/Hidetitle:顯示或隱藏noteShow/Hidelinenumbers:顯示或隱藏noteDisable/Enablerun:/允許運(yùn)行,可針對(duì)全局操作Linkthisparagraph:顯示當(dāng)前noteClearoutput:清除該note16|2快速上Remove:刪除當(dāng)前note報(bào)表發(fā)布是一個(gè)很有用的功能,在Notebook中,我們可以結(jié)合不同編程語(yǔ)言處理數(shù)據(jù),例如我們用R了3.5節(jié)中的流失案例,并將我們感的計(jì)算結(jié)果通過(guò)txCreateTable/txSave函數(shù)保存到數(shù)據(jù)倉(cāng)txCreateTable(df_trade_summary,path="/tmp/",tablename="df_trade_summary")txSave(result,path="/tmp/",tablename="result")再使用Inceptor解釋器,及SQL語(yǔ)句對(duì)結(jié)果進(jìn)一步處理。對(duì)最終的處理結(jié)果使用Discover-Notebook可見(jiàn),Discover-Notebook快速上手|簡(jiǎn)單的處理能讓報(bào)表的工作量大大減少,相信Discover-NotebookPythonDiscover-Notebook的主頁(yè)面上已有“Python語(yǔ)言”,因此對(duì)于Python語(yǔ)言的使用我們不做贅述。使用Discover-Notebookpandaspipinstall注:如果沒(méi)有安裝pip,請(qǐng)參考網(wǎng)上安裝pip的相關(guān)然后方可在Notebook開(kāi)發(fā)界面上使用python解釋器,調(diào)用pandasimportpandasasDiscover-lib簡(jiǎn)Discover-libI基于個(gè)性化排序的推薦算孤立森林算法I用于離群點(diǎn)挖掘,即在大量數(shù)據(jù)中找出與其它數(shù)據(jù)的規(guī)律不太相符的數(shù)據(jù)。通常用于中的擊檢測(cè)和流量異常等分析,金融機(jī)構(gòu)則用于挖掘出行為18|2快速上Rdf_breastw<-model<-txI(data= formula=Class~ numTrees= maxSamples= maxDepth= contamination= seed=modelPath<-tempfile(pattern="txI",fileext=".tmp",tmpdir=txSave(model,model2<-scala語(yǔ)言代valdataset=spark.read.option("inferSchema",valindexer=newvalassembler=newassembler.setInputCols(Array("_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8","_c9")) 模val =newIvalpipeline=newPipeline().setStages(Array(indexer,assembler,i))valmodel=pipeline.fit(dataset)valpredictions=valbinaryMetrics=newBinaryClassificationMetrics(predictions.select("prediction","label").rdd.map{caseRow(label:Double,ground:Double)=>(label,})最終AUC為分類(lèi)算法LR算法容易并行化,所以能快速訓(xùn)練非常大量的數(shù)據(jù),但是LR模型的學(xué)習(xí)能力有限,需要大量的特征工程預(yù)先分析出有效的特征和特征組合,從而間接增加LR的學(xué)習(xí)能力。GBDT是一種常用的非線性模型,每次迭代都快速上手|的特征以及特征組合,決策樹(shù)的路徑可以直接作為L(zhǎng)R。本算法就是融合GBDT和LR算法,使用GBDT進(jìn)行特征工程,使用LRRdf_titanic<-list<-randomSplit(df_titanic,c(0.7,0.3),seed=training<-testing<-model<-txGBTLR(data= formula=Survived~result<-predict(model,modelPath<-tempfile(pattern="txGBTLR",fileext=".tmp",tmpdir=txSave(model,savedModel<-scala語(yǔ)言代importvaldataset=spark.read.option("inferSchema",valcolumnNames=Array("_c0","_c1","_c2",valindexers=columnNames.map(name=>new.setInputCol(name).setOutputCol(name+"_index"))valpipeline=newPipeline().setStages(indexers)valdata1=pipeline.fit(dataset).transform(dataset)valdata2=data1.withColumnRenamed("_c3_index",valassembler=newVectorAssembler()assembler.setInputCols(Array("_c0_index","_c1_index","_c2_index"))valdata3=assembler.transform(data2)valdata4=data3.randomSplit(Array(4,1))valgBTLRClassifier=newvalmodel=valsummary=valauc=最終AUC為基于個(gè)性化排序的推薦算法20|2快速上MovieLens數(shù)據(jù)集是GroupLensResearch從MovieLens收集的數(shù)據(jù)集,是推薦算法中最常用的數(shù)據(jù)集之Rdf_ratings<-df_ratings<-withColumn(df_ratings,"userId",df_ratings<-withColumn(df_ratings,"movieId",m<-txBPR(df_ratings,"userId","movieId",res<-predict(m,scala語(yǔ)言代快速上手|import//數(shù)據(jù),需要先movielens公開(kāi)數(shù)據(jù)valdata=spark.read.option("header",valuniqueItemsSet=.select("uniqueItems").rdd.map{caseRow(itemId:String)=>valtrainDataset=data.select("_c0","_c1").rdd.mapcaseRow(userId:String,itemId:String)=>(userId,}.groupByKey().flatMap{case(userId:String,posItemIds:Ible[String])=>valrng=newRandom(123L)varposItemsId=posItemIds.toList.sortedposItemsId=rng.shuffle(posItemsId)valposItemsIdSet=posItemsId.toSetposId=>Seq((userId,)}.toDF("userId",valtestDataset=data.select("_c0","_c1").rdd.mapcaseRow(userId:String,itemId:String)=>(userId,}.groupByKey().flatMap{case(userId:String,posItemIds:Ible[String])=>valrng=newRandom(123L)varposItemsId=posItemIds.toList.sortedposItemsId=rng.shuffle(posItemsId)valposItemsIdSet=valdiff=uniqueItemsSet.toSet--posItemsIdSetvalnegItemsIdSet=Random.shuffle(diff)posItemsId.take(1).flatMap{posId=>Seq((userId,posId,1.0))negItemsIdSet.map{negId=>(userId,negId,0.0)}}.toDF("userId","itemId",valbpr=newvalmodel=valauc=最終AUC為離群點(diǎn)檢測(cè)算法LOF算法(LocalOutlierFactor,局部離群因子檢測(cè)方法),是基于密度的離群點(diǎn)檢測(cè)方法中一個(gè)比較有代表性的算法。該算給數(shù)據(jù)集中的每個(gè)點(diǎn)計(jì)算一個(gè)離群因子LOF,通過(guò)判斷LOF是否接近于1來(lái)判定是否是離breastw.csv是由Wisconsin醫(yī)學(xué)院的williamH.Wolberg博士提供數(shù)據(jù)樣本。所有數(shù)據(jù)來(lái)自真實(shí)臨床案例,每條數(shù)據(jù)有一個(gè)用戶ID和是否良性的,其余9列均是臨床測(cè)量數(shù)據(jù),該數(shù)據(jù)集常用于各種分類(lèi)算法、離群點(diǎn)檢測(cè)算法的測(cè)試驗(yàn)證。地址:22|2快速上2.5.PAGE2.5.PAGE4.2R語(yǔ)言代df_breastw<-res<-txLOF(df_breastw,scala語(yǔ)言代importvaldataset=spark.read.option("inferSchema","true").valfeaturesCol="feature"vallabelCol="label"valpredictionCol="prediction"valindexer=newStringIndexer()valdataset2=indexer.fit(dataset).transform(dataset)valassembler=newVectorAssembler()"_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8",valinput=valresult1=newvalprecisionRDD=result1.select(featuresCol,.join(input.select(featuresCol,labelCol),.select(labelCol,predictionCol).rdd.map{caseRow(label:Double,prediction:Double)=>if(label==prediction){}else{}}valprecision=在公開(kāi)數(shù)據(jù)集上測(cè)試的精度為密度聚類(lèi)算法breastw.csv是由Wisconsin醫(yī)學(xué)院的williamH.Wolberg博士提供數(shù)據(jù)樣本。所有數(shù)據(jù)來(lái)自真實(shí)臨床案例,每條數(shù)據(jù)有一個(gè)用戶ID和是否良性的,其余9列均是臨床測(cè)量數(shù)據(jù),該數(shù)據(jù)集常用于各種分類(lèi)算法、離群點(diǎn)檢測(cè)算法的測(cè)試驗(yàn)證。地址:快速上手|df_breastw<-res<-txDBSCAN(df_breastw,clusterId~.-scala語(yǔ)言代importvaldataset=spark.read.option("inferSchema",valindexer=newvaldataset2=valassembler=newVectorAssembler()"_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8",valinput=valdBScan=newvalclusterIdSorted=dBScan.transform(input).select("features",.join(input.select("features","label"),.rdd.mapr=>(r.getInt(1),}valprecision=clusterIdSorted.map{case(label,prediction)=>if(label==prediction){}else{}在公開(kāi)數(shù)據(jù)集上測(cè)試的精度為MNIST數(shù)據(jù)集是一個(gè)經(jīng)典的分類(lèi)數(shù)據(jù)集,它的每個(gè)樣本是一個(gè)28*28的灰度圖,每個(gè)展示的是手寫(xiě)數(shù)字24|2快速上Rmnist_train<-read.csv("mnist_train.csv",header=F)mnist_test<-read.csv("mnist_test.csv",header=F)df_train<-createDataFrame(mnist_train)df_test<-createDataFrame(mnist_test)df_train<-withColumn(df_train,"V1",model<-txApproxKNN(df_train,V1~.,"classification",topTreeSize=nrow(df_train)/50)res<-predict(model,df_test)scala語(yǔ)言代快速上手|import valrawTrainData=spark.read.option("inferSchema","true").csv("data/mnist/mnist_train.csv")vallabeledRawTrainData=rawTrainData.withColumn("label",valrawTestData=spark.read.option("inferSchema","true").csv(("data/mnist/mnist_test.csv")vallabeledRawTestData=rawTestData.withColumn("label",valinputCols=(1to784).map(i=>"_c"+i.toString).toArrayvalfeaturesCol="features"vallabelCol=valassembler=newvaltrainData=assembler.transform(labeledRawTrainData)valtestData=assembler.transform(labeledRawTestData)valpcaFeatures="pcaFeatures"valpca=newPCA()valpcaModel=pca.fit(trainData)valtrainAfterPCA=pcaModel.transform(trainData)valtestAfterPCA=pcaModel.transform(testData)valtopTreeSize=trainData.count().toInt/50valknnClassifier=newApproxKNNClassifier()valknnModel=valTrainOut=knnModel.transform(trainAfterPCA)valTestOut=knnModel.transform(testAfterPCA)valtrainPrecision=.selectExpr("SUM(CASEWHENlabel=predictedTHEN1.0ELSE0.0END)/valtestPrecision=TestOut.selectExpr("SUM(CASEWHENlabel=predictedTHEN1.0ELSE0.0END)/最終結(jié)果訓(xùn)練集上的精度為0.98,測(cè)試集上的精度為26|2快速上詳細(xì)之分布式discoverR本章我們主要就使用Discover平臺(tái)進(jìn)行數(shù)據(jù)挖掘的示例進(jìn)行詳細(xì)展示,請(qǐng)關(guān)注Discover產(chǎn)品的標(biāo)案例。查看方式如2.1節(jié)“Discover標(biāo)準(zhǔn)案例地址”所示由函數(shù)read.table()、read.csv()、read.xlsx()等函數(shù)或一些R第包的方法,可將本地?cái)?shù)據(jù)讀成傳統(tǒng)的數(shù)據(jù)類(lèi)型--data.frame文本類(lèi)文件mydataframe<-read.csv("/usr/lib/discover/data/baseTest/iris/iris.csv",header=FALSE,sep=",")mydataframe<-read.table("/usr/lib/discover/data/baseTest/iris/iris.txt",header=FALSE,sep=excel表格workbook<-"/mnt/disk1/loaddata/nerlove.xls"mydataframe<-read.xlsx(workbook,1)spss的文件mydataframe<-spss.get("/mnt/disk1/loaddata/employeeData.sav",use.value.labels=TRUE)SAS的文件mydataframe<-read.ssd("/mnt/disk1/loaddata/IRIS.SD2",sectionnames=Stata文件mydataframe<-read.dta("/mnt/disk1/loaddata/nerlove.dta")discoverR包處理的分布式數(shù)據(jù)類(lèi)型主要為SparkDataFrame類(lèi)型。我們可以由as.DataFrame()和createDataFrame()data.frameSparkDataFrame。轉(zhuǎn)化語(yǔ)句詳細(xì)之分布式discoverR包|df<-as.DataFrame(mydataframe)df<-createDataFrame(mydataframe)read.df()、loadDF()、read.json()、read.parquet()HDFS上的數(shù)據(jù)文件讀成SparkDataFrame,例如文本類(lèi)文件df<-read.df("/tmp/loaddata/iris.csv",source=df<-read.df("/tmp/loaddata/cluster_data.txt",source="csv")df<-loadDF("/tmp/loaddata/iris.csv",source="csv",sep="")df<-loadDF("/tmp/loaddata/cluster_data.txt",source="csv",sep="")colnames(df)<-paste('col',1:7,sep="")Spark支持類(lèi)文本.json/.parquetdata3<-data3<-read.df("/tmp/loaddata/people.json",source="json")data3<-loadDF("/tmp/loaddata/people.json","json")Parquet格式是一種列式格式data4<-data4<-read.df("/tmp/loaddata/users.parquet",source="parquet")data4<-loadDF("/tmp/loaddata/users.parquet","parquet")對(duì)于針對(duì)分布式數(shù)據(jù)庫(kù)Inceptor的表格,則請(qǐng)參考3.3節(jié)相關(guān)介紹基于分布式dplyrdplyr是由HadleyWickham主持開(kāi)發(fā)和的一個(gè)主要針對(duì)數(shù)據(jù)框快速計(jì)算、整合的函數(shù)包。dicover深度合了dplyrdiscover提供了data.frame、spark_tbl和sparkDataFrame中data.frame是R本地的數(shù)據(jù)結(jié)構(gòu),spark_tbl是spark數(shù)據(jù)庫(kù)上的臨時(shí)數(shù)據(jù)表,sparkDataFrame是spark2.0本案例中使用nycflights13airlines<-airlinesflights<-head(flights,data.frame、sparkDataFrame和spark_tbl28|3.詳細(xì)之分布式discoverR中,sparkDataFrame是discoverR包中分布式模型訓(xùn)練和應(yīng)用的直接類(lèi)型,而dplyrdplyr包做特征工程應(yīng)用后,為了能將數(shù)據(jù)喂給分布data.frame和sparkDataFrame#localtosdf_flights<-#sdf_flights<-#remotetoldf_flights<-as.data.frame(sdf_flights)#ldf_flights<-collect(sdf_flights)data.frame和spark_tblsc<-getSparkConnection()#localtoremotetbl_flights<-copy_to(sc,flights,"tbl_flights",overwrite=#remotetoldf_flights2<-spark_tbl和sparkDataFrame#DataFrametotblcreateOrReceTempView(sdf_flights,"tbl_flights2")tbl_flights2<-tbl(sc,"tbl_flights2")#tbltosdf_flights2<-DBI::dbRemoveTable(sc,單列和多列head(select(tbl_flights,arr_delay))head(select(tbl_flights,year:day,arr_delay,dep_delay))對(duì)全部列或選定列做head(distinct(tbl_flights,origin,dest))單個(gè)條件或多個(gè)條件過(guò)濾詳細(xì)之分布式discoverR包|head(filter(tbl_flights,dep_delay>10))head(filter(tbl_flights,dep_delay>10&arr_time>800))按某列升序或降序?qū)Ρ磉M(jìn)行排序head(arrange(tbl_flights,dep_delay))head(arrange(tbl_flights,desc(dep_delay)))計(jì)算行數(shù)tbl_flights%>%增加新的一列head(mutate(tbl_flights,speed=distance/air_time*聚合操作head(summarize(tbl_flights,mean_dep_delay=tbl_flights%>%group_by(carrier)%>%summarize(mean_dep_delay=mean(dep_delay))%>%%>%可以將操作連接為操作tbl_flights%>%filter(month==1,day==1,carrier%in%c('UA','WN','AA','DL'))%>%select(carrier,dep_delay,air_time,distance)%>%arrange(carrier)%>%mutate(air_time_hours=air_time/60)%>%group_by(carrier)%>%summarize(count=n(),mean_dep_delay=mean(dep_delay))%>%leftjointbl_airlines<-copy_to(sc,airlines,"tbl_airlines")tbl_flights%>%left_join(tbl_airlines)%>%head()tbl_flights%>%left_join(tbl_airlines,by="carrier")%>%tbl_flights%>%left_join(tbl_airlines,by=c("carrier","carrier"))%>%innertbl_flights%>%inner_join(tbl_airlines)%>%tbl_flights%>%inner_join(tbl_airlines,by="carrier")%>%tbl_flights%>%inner_join(tbl_airlines,by=c("carrier","carrier"))%>%30|3.詳細(xì)之分布式discoverRsample_n(tbl_flights,10)%>%sample_frac(tbl_flights,0.01)%>%最后,卸載dplyrdetach("package:dplyr",分布式特征數(shù)據(jù)的保存和加載是discover推出的系列標(biāo)準(zhǔn)案例之一。主要用于數(shù)據(jù)挖掘過(guò)程中,對(duì)分布式特征數(shù)據(jù)的保存和加載再利用。discover能夠?qū)park的sparkDataFrame分布式數(shù)據(jù)框保存在Inceptor且在需要再次用到時(shí)從Inceptor表中并且恢復(fù)成sparkDataFrame數(shù)據(jù)結(jié)構(gòu)。我們以IRIS數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),iris包含了150條鳶尾花的特征數(shù)據(jù),共分為3類(lèi),每類(lèi)50條數(shù)據(jù),其中每條數(shù)據(jù)擁有4個(gè)屬性以及1個(gè)類(lèi)信息,分別是Sepal.Length,Sepal.Width,Petal.Length,Petal.Width和Species。下面的實(shí)驗(yàn)演示了通過(guò)iris數(shù)據(jù)集創(chuàng)建sparkDataFrame,并且保存sparkDataFrame到然后從Inceptor恢復(fù)原始數(shù)據(jù)并且比較兩者的過(guò)程,實(shí)驗(yàn)證明了數(shù)據(jù)保存前后的一致性。加載數(shù)據(jù)集生成將iris數(shù)據(jù)加載成SparkDataFrametxSqlConnect(host='xxx.xxx.xxx.xxx',user='discover',passwd='123456',dbName=df_iris<-suppressWarnings(createDataFrame(iris))保存sparkDataFrame到通過(guò)建立好的inceptor連接,將生成的sparkDataFrame保存到default數(shù)據(jù)庫(kù)的表df_iris_tabletxSqlQuery("droptableifexistsdf_iris_table")txCreateTable(df_iris,path='/tmp',tablename="df_iris_table")從Inceptor詳細(xì)之分布式discoverR包|df_iris_new<-txSqlQuery("select*fromdf_iris_table")傳統(tǒng)數(shù)據(jù)類(lèi)型和sparkDataFrame將df_iris_new收集到本地生成R的data.frame數(shù)據(jù)結(jié)構(gòu)df_collect_iris_new,并且和df_iris收集到本地生成的數(shù)據(jù)df_collect_iris列名大小寫(xiě),所有的數(shù)據(jù)是相同的。df_collect_iris<-collect(df_iris)df_collect_iris_new<-collect(df_iris_new)df_collect_iris_new[,1:4]<-sapply(df_collect_iris_new[,1:4],as.numeric)compare(df_collect_iris,df_collect_iris_new,ignoreNameCase=斷開(kāi)inceptor的連接以及txSqlQuery("droptableifexistsdf_iris_table")例如“A→B”,支持度是指A與B同時(shí)出現(xiàn)的概率,即P(AB);置信度是B關(guān)于A的條件概率,即P(B|A);提升度是B的概率的提升,即P(B|A)/P(B)。應(yīng)用場(chǎng)景:、銀行、館等本案例采用的數(shù)據(jù)集Groceries數(shù)據(jù)集,該數(shù)據(jù)集是某個(gè)雜貨店一個(gè)月真實(shí)的記錄,共有9835條消費(fèi)錄,169個(gè)商品。包含兩列,第一列為id記錄號(hào),第二列為本次涉及的商品df_groceries<-數(shù)據(jù)特id:號(hào)movieId:涉及的商品32|3.詳 之分布式discoverR成包含兩個(gè)元素的項(xiàng)集。接下來(lái),再重新掃描記錄,去掉不滿足最小支持度的項(xiàng)集。該過(guò)程重復(fù)進(jìn)行直txFPgrowth算法是將數(shù)據(jù)在一種稱為FP樹(shù)的緊湊數(shù)據(jù)結(jié)構(gòu)中,F(xiàn)P代表頻繁模式(FrequentPattern),該算法主要分為兩個(gè)步驟:FP-tree構(gòu)建、遞歸挖掘FP-tree。FP-tree構(gòu)建通過(guò)兩次數(shù)據(jù)掃描,將原始數(shù)據(jù)中的事務(wù)壓縮到一個(gè)FP-tree樹(shù),該FP-tree類(lèi)似于前綴樹(shù),相同前綴的路徑可以共用,從而達(dá)到壓縮數(shù)據(jù)的目的。接著通過(guò)FP-tree找出每個(gè)item的條件模式基、條件FP-tree,遞歸的挖掘條件FP-tree所有的頻繁項(xiàng)集。這里以txFPgrowth為例進(jìn)行關(guān)聯(lián)分析,下面代碼中是挖掘數(shù)據(jù)集中支持度大于等于0.1fp<-txReshape(data=df_groceries,column=c("id",set<-txFPgrowth(data=fp,colName="items",parameter=list(support=rule<-txFPgrowth(data=fp,colName="items",parameter=list(support=0.035,confidence=0.1,target="rules"))plot(rule,method="graph",measure="support",shading=詳細(xì)之分布式discoverR包|流失是Discover推出的系列標(biāo)準(zhǔn)案例之一。本案例主要對(duì)某機(jī)構(gòu)的用戶記錄進(jìn)行分析,探索用戶流失的原因,建立用戶流失模型,并預(yù)測(cè)用戶流失的概率。給出建立流失的模型的分析思給出如何用我們discover加載discoverR中內(nèi)置的示例流失數(shù)據(jù)集losingWarn,共包括三列,表示某機(jī)構(gòu)中用戶記錄第一列是時(shí)間trade_time,形如“2014-01-01第二列是用戶第三列是金額加載R包和初始化將本地的losingWarndf_losingWarn<-34|3.詳 之分布式discoverR為了便于按月對(duì)用戶是否流失進(jìn)行預(yù)測(cè),將數(shù)據(jù)中的時(shí)間轉(zhuǎn)換成月,并取出2014全年數(shù)據(jù)進(jìn)行分析df_losingWarn<-df_losingWarn%>%mutate(trade_month=month(df_losingWarn$trade_time))%>%mutate(trade_year=year(df_losingWarn$trade_time))df_losingWarn<-df_losingWarn%>%filter("trade_year==統(tǒng)計(jì)和查看每個(gè)人在每個(gè)月的次數(shù)和金額,便于后續(xù)對(duì)于用戶的特征提取colName<-c("user_id","trade_month","consume_amt")df_user_summary<-select(df_losingWarn,as.list(colName))%>%groupBy("user_id","trade_month")%>%summarize(trade_num=n(df_losingWarn$user_id),trade_amt=統(tǒng)計(jì)和查看每個(gè)月總的次數(shù)和金額colName<-c("trade_month","trade_num","trade_amt")df_trade_summary<-select(df_user_summary,as.list(colName))%>%groupBy("trade_month")summarize(sum_trade_num=sum(df_user_summary$trade_num),sum_trade_amt=使用箱線圖查看每個(gè)月的金額的箱線圖,由于金額相差比較大,我們對(duì)金額進(jìn)行了對(duì)數(shù)處理從圖中可以看出每個(gè)月的金額的中位數(shù)相差不大,說(shuō)明每個(gè)月的比較平穩(wěn)df_user_summary_local<-collect(df_user_summary)df_user_summary_local$trade_month<-as.factor(df_user_summary_local$trade_month)p_trade_amt<-ggplot(data=df_user_summary_local,aes(trade_month,p_trade_amt+geom_boxplot(aes(fill=trade_month))+ggtitle("TransactionAmountDistribution")+theme(plot.title=element_text(hjust=0.5))查看每個(gè)月的用戶個(gè)數(shù),從年初二月份到年末,用戶的個(gè)數(shù)基本呈現(xiàn)穩(wěn)步上升的趨勢(shì)ggplot(data=df_user_summary_local,aes(trade_month))geom_bar(aes(fill=trade_month))+ggtitle("CustomerNumberTrend")+theme(plot.title=element_text(hjust=0.5))詳 之分布式discoverR包|為了分析用戶數(shù)可能與哪些因素,接下來(lái)我們來(lái)看一下每一個(gè)月的總的次數(shù)和金額的分布情況df_trade_summary_local<-collect(df_trade_summary)df_trade_summary_local$trade_month<-as.factor(df_trade_summary_local$trade_month)ggplot(data=df_trade_summary_local,aes(x=trade_month,y=sum_trade_num,fill=trade_month))+geom_bar(stat='identity')+ggtitle("TransactionAmountDistribution")+theme(plot.title=element_text(hjust=0.5))36|3.詳細(xì)之分布式discoverRggplot(data=df_trade_summary_local,aes(x=trade_month,y=sum_trade_amt,fill=trade_month))+geom_bar(stat='identity')+ggtitle("TransactionTimesDistribution")+theme(plot.title=element_text(hjust=0.5))從上兩張圖以及每個(gè)月的用戶個(gè)數(shù)圖可以看出,每個(gè)月總的次數(shù)分布的圖與用戶個(gè)數(shù)圖分布基本相同,因此推斷用戶的個(gè)數(shù)對(duì)用戶是否流失影響可能大。每個(gè)月的金額分布年末相對(duì)較高,年中GetFeature用來(lái)獲取特征,其中data是原始的輸入數(shù)據(jù),startMonth,endMonth指結(jié)束月。這里我們定義的用戶特征主要包括:最后一次時(shí)間lastTradeMonth,最大金額maxAMT,最大數(shù)目maxNum,訓(xùn)練時(shí)間窗口內(nèi)的金額總和sumAMT,次數(shù)總和sumNum,訓(xùn)練時(shí)間窗口內(nèi)的平均金額averageAMT以及平均次GetFeature<-function(data,startMonth,endMonth)result<-data%>%filter(paste("trade_month>=",startMonth,"andtrade_month<=",endMonth))month<-eger(endMonth)-eger(startMonth)+1out<-result%>%groupBy("user_id")%>%summarize(lastTradeMonth=maxAMT=max(result$trade_amt),maxNum=max(result$trade_num),sumAMT=sum(result$trade_amt),sumNum=out%>%mutate(averageAMT=out$sumAMT/averageNum=out$sumNum/}得到了訓(xùn)練數(shù)據(jù)的特征之后,我們需要對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行打,從而才能進(jìn)行模型訓(xùn)練。這里我們對(duì)用戶流詳 之分布式discoverR包|的次數(shù)為0,說(shuō)明這個(gè)用戶已經(jīng)流失,我給這個(gè)用戶打上一個(gè)“l(fā)osing” ,表示該用戶已經(jīng)流失。反之,則給用戶打上一個(gè)“remain”的簽,表示該用戶留存。用戶 的函數(shù)如下所示GetLabel<-function(data,startMonth,endMonth)out<-data%>%filter(paste("trade_month>=",startMonth,"andtrade_month<=",endMonth))%>%group_by("user_id")%>%summarize(sumNum=out<-out%>%mutate(label=ifelse(out$sumNum>0,"remain","losing"))%>%select(as.list(c("user_id","label")))names(out)<-c("id","label")}間段的用戶行為特征,采用10月到11月為觀察窗口,對(duì)用戶是否行為打。利用隨機(jī)森林模型進(jìn)行建模,對(duì)應(yīng)我們Discover的txRandom函數(shù),具體的參數(shù)用法可以在Rstudio中使用?txRandom查看help文檔。具體的代碼如下所示:GetModelData<-function(data,startMonth,endMonth,observeSize){feature<-GetFeature(data,startMonth,endMonth)labelStartM

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論