版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)挖掘目錄數(shù)據(jù)科學(xué)相關(guān)概念模型評(píng)估分類與回歸:決策樹(shù)分類與回歸:KNN聚類分析:K均值聚類可視化挖掘工具Rattle數(shù)據(jù)科學(xué)相關(guān)概念什么是數(shù)據(jù)科學(xué)?基于傳統(tǒng)的數(shù)學(xué)、統(tǒng)計(jì)學(xué)的理論和方法,運(yùn)用計(jì)算機(jī)技術(shù)進(jìn)行大規(guī)模數(shù)據(jù)計(jì)算、分析和應(yīng)用的一門學(xué)科(摘錄自大數(shù)據(jù)導(dǎo)論)用數(shù)據(jù)的方法研究科學(xué),用科學(xué)的方法研究數(shù)據(jù)(摘錄自鄂維南院士“數(shù)據(jù)科學(xué)的基本內(nèi)容”)數(shù)據(jù)科學(xué)的提出1974年,丹麥計(jì)算機(jī)科學(xué)家PeterNaur(圖靈獎(jiǎng)得主)提出了“數(shù)據(jù)學(xué)”概念,建議計(jì)算機(jī)學(xué)界不僅要關(guān)注科學(xué)計(jì)算,也要關(guān)注數(shù)據(jù)處理1996年,數(shù)據(jù)科學(xué)(DataScience)這一名稱(主要是從統(tǒng)計(jì)學(xué)領(lǐng)域)開(kāi)始出現(xiàn)2007年,JimGray提出數(shù)據(jù)密集型科學(xué)發(fā)現(xiàn)(科學(xué)研究的第四范式)2013年,有些媒體稱為中國(guó)的大數(shù)據(jù)元年國(guó)外的著名高校設(shè)立了大數(shù)據(jù)科學(xué)相關(guān)專業(yè)和機(jī)構(gòu)數(shù)據(jù)科學(xué)的提出1998年度的圖靈獎(jiǎng)得主:數(shù)據(jù)庫(kù)學(xué)者JamesGray(JimGray)2021年3月31日,2020年圖靈獎(jiǎng)重磅出爐,頒給了哥倫比亞大學(xué)教授AlfredVainoAho和斯坦福大學(xué)教授JeffreyDavidUllman。幾十年間,Aho和Ullman奠定了編程語(yǔ)言理論與實(shí)現(xiàn)、算法設(shè)計(jì)和分析的基礎(chǔ),通過(guò)技術(shù)創(chuàng)新和影響甚廣的教材做出了重大貢獻(xiàn)。2020年度圖靈獎(jiǎng)數(shù)據(jù)科學(xué)JeffUllman還是數(shù)據(jù)科學(xué)領(lǐng)域的巨擘,他的研究興趣包括數(shù)據(jù)庫(kù)理論、數(shù)據(jù)庫(kù)集成、數(shù)據(jù)挖掘等。/~ullman/Ullman對(duì)于數(shù)據(jù)科學(xué)的見(jiàn)解2020年版《海量數(shù)據(jù)挖掘》2020年《數(shù)據(jù)科學(xué)》
DataScience(TheMITPressEssentialKnowledge)
By作者:JohnD.Kelleher-BrendanTierney
ISBN-10書(shū)號(hào):0262535432
ISBN-13書(shū)號(hào):9780262535434
ReleaseFinelybook出版日期:2018-04-13
Pages頁(yè)數(shù):280數(shù)據(jù)科學(xué),結(jié)合了諸多領(lǐng)域中的理論和技術(shù),包括應(yīng)用數(shù)學(xué)、統(tǒng)計(jì)、模式識(shí)別、機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化、數(shù)據(jù)倉(cāng)庫(kù)以及高性能計(jì)算。數(shù)據(jù)科學(xué)通過(guò)運(yùn)用各種相關(guān)的數(shù)據(jù)來(lái)幫助非專業(yè)人士理解問(wèn)題。數(shù)據(jù)科學(xué)現(xiàn)階段人工智能的核心是對(duì)大數(shù)據(jù)進(jìn)行的特征抽取與機(jī)器學(xué)習(xí)算法。人工智能—機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)軟件工程師
數(shù)據(jù)工程師
數(shù)據(jù)科學(xué)家數(shù)據(jù)科學(xué)家使用原型、算法、預(yù)測(cè)模型和自定義分析設(shè)計(jì)和構(gòu)建新的數(shù)據(jù)建模和生產(chǎn)流程。數(shù)據(jù)科學(xué)家
應(yīng)具備的綜合能力更前沿的研究領(lǐng)域:Nature,Science,IEEE/ACMTransactions等期刊及其子刊KDD,AAAI,IJCAI,SIGIR,WWW,NIPS,ICML,ICDM,CIKM等國(guó)際會(huì)議各種科技論壇、公眾號(hào)、在線課程比賽平臺(tái)DF競(jìng)賽平臺(tái):
天池:/competitionKaggle:/competitionsBiendata:/相關(guān)研究途徑模型評(píng)估模型評(píng)估(modelassessment)模型評(píng)估指使用一些指標(biāo)和方法來(lái)評(píng)價(jià)模型的泛化能力。常用評(píng)估指標(biāo):分類:精確率Precision、召回率Recall、準(zhǔn)確率Accuracy、ROC曲線、PR曲線,等?;貧w:平均絕對(duì)誤差MAE、均方誤差MSE、均方根誤差RMSE,
等。模型評(píng)估混淆矩陣(ConfusionMatrix)頻數(shù)表,用n行n列的矩陣來(lái)判斷分類好壞程度的方法。經(jīng)典二分類問(wèn)題的混淆矩陣:混淆矩陣
TFTF精確率Precision查準(zhǔn)率,表示被分為正例的示例中實(shí)際為正例的比例。召回率Recall查全率,表示所有正例中被分對(duì)的比例,衡量了分類器對(duì)正例的識(shí)別能力。準(zhǔn)確率Accuracy表示分對(duì)的樣本數(shù)除以所有的樣本數(shù),最常見(jiàn)的直觀的評(píng)價(jià)指標(biāo)。但在正負(fù)樣本不平衡的情況下,準(zhǔn)確率有很大的缺陷。精確率Precision、召回率Recall、準(zhǔn)確率AccuracyF1-ScoreP和R指標(biāo)有時(shí)候會(huì)出現(xiàn)矛盾,F1-Score兼顧了兩者,最大值是1,最小值是0。ROC曲線(受試者工作特征曲線)以假正率和真正率為軸的曲線,ROC曲線下的面積稱為AUC,AUC越大性能越好。PR曲線(Precision-Recall曲線)以R和P為軸的曲線,在正樣本較少的不平衡情況下較好。F1-Score、ROC曲線、PR曲線平均絕對(duì)誤差(MAE)、均方誤差(MSE)等R-Squared越大,表示模型擬合效果越好平均絕對(duì)誤差:MAE(MeanAbsoluteError)均方誤差:MSE(MeanSquaredError)均方根誤差:RMSE(RootMeanSquardError)決定系數(shù):R2(R-Square)table()函數(shù)建立混淆矩陣caret包中confusionMatrix()函數(shù),得到混淆矩陣及相關(guān)指標(biāo)結(jié)果。通過(guò)公式計(jì)算,或使用第三方包中的函數(shù),得到評(píng)估指標(biāo)結(jié)果。R語(yǔ)言與模型評(píng)估>table(c(1,0,1,1,1,0,0,1),c(0,0,1,1,1,0,1,1))
01021114決策樹(shù)決策樹(shù)是一種樹(shù)形結(jié)構(gòu),每個(gè)內(nèi)部節(jié)點(diǎn)表示一個(gè)屬性,每個(gè)分支代表屬性的輸出,每個(gè)葉子節(jié)點(diǎn)代表一種類別。決策樹(shù)是一種常用的分類方法,屬于監(jiān)督學(xué)習(xí)方法。決策樹(shù)列:屬性行:樣本類別什么樣的人群購(gòu)買電腦?決策樹(shù)非葉節(jié)點(diǎn):屬性分支:屬性的不同取值葉節(jié)點(diǎn):類別構(gòu)造決策樹(shù)的核心問(wèn)題如何選擇適當(dāng)?shù)膶傩圆鸱謽颖荆繘Q策樹(shù)最有區(qū)分能力的屬性是首選的拆分屬性信息增益、熵的計(jì)算熵(Entropy)若一變量有k種類別,每種類別對(duì)應(yīng)的概率為p1,p2,p3,……,pk,則該變量的信息量I(視為Entropy)為:熱力學(xué):表示分子運(yùn)動(dòng)的雜亂程度,越大越雜亂。信息科學(xué):借用它來(lái)表示信息的多少,越大信息越多。決策樹(shù):表示數(shù)據(jù)的純度,0表示完全純,越大表示越不純。數(shù)據(jù)比例Purity純度熵Yes:100%No:0%完全純0Yes:0%No:100%完全純0Yes:50%No:50%最不純1信息增益(InformationGain)決策樹(shù)的目的是使一個(gè)不純的數(shù)據(jù)集逐漸變純。使拆分后的熵要盡可能小。使拆分前的熵減去拆分后的熵盡可能的大。信息增益:拆分前的熵和拆分后的熵的差值。GenderFemaleMaleYes:30%No:70%Yes:0%No:100%Yes:100%No:0%Student?StudentNon-StudentYes:30%No:70%Yes:30%No:70%Yes:30%No:70%拆分后的熵的計(jì)算拆分前的熵的計(jì)算熵的降低信息增益Age<=30:5>40:5Yes:9No:5Yes:2No:3Yes:3No:231-40:4Yes:4No:0I=0.9709506I=0I=0.8112781I=0.940286變量拆分前的熵拆分后的熵信息增益Age0.9402860.57856180.3617242Income0.9402860.91106340.0292226Student0.9402860.78845050.1518355CreditRating0.9402860.9056390.0346469信息增益的計(jì)算第一個(gè)屬性的確定:第一個(gè)屬性的第一個(gè)分支的下一個(gè)屬性的確定:信息增益的計(jì)算如何選擇適當(dāng)?shù)膶傩圆鸱謽颖??信息增益、熵的?jì)算如何終止樹(shù)的增長(zhǎng)?都已經(jīng)歸類到同一類別,已經(jīng)沒(méi)有辦法再找到新的屬性來(lái)進(jìn)行節(jié)點(diǎn)分割,已經(jīng)沒(méi)有任何尚未處理的數(shù)據(jù)…特點(diǎn)對(duì)數(shù)據(jù)沒(méi)有分布的要求。結(jié)果容易解釋。模型可以自動(dòng)不包含無(wú)意義的自變量。決策樹(shù)的特點(diǎn)決策樹(shù)的R語(yǔ)言包使用party包中的ctree()建立模型使用predict()函數(shù)實(shí)現(xiàn)模型結(jié)果的預(yù)測(cè)C4.5算法決策樹(shù)-實(shí)驗(yàn)案例(鳶尾花)數(shù)據(jù)集iris4個(gè)數(shù)值屬性:Sepal.Length萼片長(zhǎng)度、Sepal.Width萼片寬度、Petal.Length花瓣長(zhǎng)度、Petal.Width花瓣寬度1個(gè)類別屬性:Species種類數(shù)據(jù)集預(yù)處理分為兩個(gè)子集:訓(xùn)練集(70%)和測(cè)試集(30%)可以使用隨機(jī)種子設(shè)置固定的隨機(jī)數(shù)ctree():基于訓(xùn)練集建立一個(gè)決策樹(shù)predict():基于測(cè)試集進(jìn)行預(yù)測(cè)決策樹(shù)—實(shí)驗(yàn)案例party包的安裝要求:
/web/packages/party/index.html查看已經(jīng)安裝的包:library()installed.packages()構(gòu)建決策樹(shù)繪制決策樹(shù)圖實(shí)驗(yàn)案例#載入party包library("party")#查看數(shù)據(jù)文件的結(jié)構(gòu)str(iris)#構(gòu)建決策樹(shù)iris_ctree<-ctree(Species~.,data=iris)#查看決策樹(shù)信息print(iris_ctree)#繪制決策樹(shù)圖plot(iris_ctree)#載入party包library("party")#查看數(shù)據(jù)文件的結(jié)構(gòu)str(iris)#構(gòu)建決策樹(shù)iris_ctree<-ctree(Species~.,data=iris)#查看決策樹(shù)信息print(iris_ctree)#構(gòu)建決策樹(shù)圖plot(iris_ctree)#數(shù)據(jù)集隨機(jī)抽取70%為訓(xùn)練數(shù)據(jù)集,30%為測(cè)試數(shù)據(jù)集ind<-sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3))traindata<-iris[ind==1,]testdata<-iris[ind==2,]#構(gòu)建決策樹(shù)iris_ctree<-ctree(Species~.,data=traindata)plot(iris_ctree,type="simple")#預(yù)測(cè)結(jié)果train_predict<-predict(iris_ctree)test_predict<-predict(iris_ctree,newdata=testdata)#輸出測(cè)試數(shù)據(jù)的分類結(jié)果test_predictdata<-cbind(testdata,predictedclass=test_predict)#輸出訓(xùn)練數(shù)據(jù)的混淆矩陣(train_confusion<-table(actual=traindata$Species,predictedclass=train_predict))#輸出測(cè)試數(shù)據(jù)的混淆矩陣(test_confusion<-table(actual=testdata$Species,predictedclass=test_predict))劃分訓(xùn)練集和測(cè)試集(30%),構(gòu)建決策樹(shù)、預(yù)測(cè)、并評(píng)估plot(iris_ctree,type="simple")#輸出訓(xùn)練數(shù)據(jù)的混淆矩陣(train_confusion<-table(actual=traindata$Species,predictedclass=train_predict))#輸出測(cè)試數(shù)據(jù)的混淆矩陣(test_confusion<-table(actual=testdata$Species,predictedclass=test_predict))小結(jié)決策樹(shù)構(gòu)造決策樹(shù)的核心問(wèn)題如何選擇適當(dāng)?shù)膶傩圆鸱謽颖荆咳绾谓Y(jié)束一個(gè)決策樹(shù)?R語(yǔ)言與決策樹(shù)決策樹(shù)-實(shí)驗(yàn)案例K-近鄰算法(KNN)目錄什么是K-近鄰算法如果一個(gè)樣本在特征空間中的k個(gè)最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個(gè)類別,則判斷該樣本也屬于這個(gè)類別K-近鄰算法的實(shí)現(xiàn)class程序包kknn程序包c(diǎn)aret程序包K-近鄰算法實(shí)驗(yàn)案例Iris數(shù)據(jù)集進(jìn)行分析k的取值K-近鄰算法判別一個(gè)人,可以看其身邊的朋友,所謂觀其友而識(shí)其人。K近鄰算法,即未標(biāo)記樣本的類別由距離其最近的k個(gè)樣本決定。對(duì)新的輸入樣本,在訓(xùn)練數(shù)據(jù)集中找到與該樣本最鄰近的K個(gè)樣本(也就是K個(gè)鄰居),這K個(gè)樣本的多數(shù)屬于某個(gè)類,就把該樣本分類到這個(gè)類中。K近鄰算法的核心思想:當(dāng)無(wú)法判定當(dāng)前待分類點(diǎn)是從屬于已知分類中的哪一類時(shí),可以依據(jù)統(tǒng)計(jì)學(xué)理論根據(jù)該點(diǎn)所處的位置特征,衡量它周圍鄰居的權(quán)重,而把它歸為(或分配)到權(quán)重更大的那一類。有兩類不同的樣本數(shù)據(jù),分別用藍(lán)色正方形和紅色三角形表示,而圖正中間的那個(gè)綠色圓點(diǎn)所標(biāo)示的數(shù)據(jù)是待分類數(shù)據(jù),下面我們給綠色圓點(diǎn)(即待分類點(diǎn))分類:原理示例如果K=3,離綠色圓點(diǎn)最近的3個(gè)點(diǎn)為2個(gè)紅色三角形和1個(gè)藍(lán)色正方形,少數(shù)從屬于多數(shù),判定綠色的待分類點(diǎn)屬于紅色三角形一類。如果K=5,離綠色圓點(diǎn)最近的5個(gè)點(diǎn)為2個(gè)紅色三角形和3個(gè)藍(lán)色正方形少數(shù)從屬于多數(shù),判定綠色的待分類點(diǎn)屬于藍(lán)色正方形一類。待分類點(diǎn)K-近鄰算法
優(yōu)點(diǎn):1、簡(jiǎn)單,易于理解,易于實(shí)現(xiàn)
2、適合對(duì)稀有事件進(jìn)行分類
3、適于多分類問(wèn)題
缺點(diǎn):1、可理解性差
2、計(jì)算量大
3、依賴于數(shù)據(jù)集維度的大小
K-近鄰算法基本原理:選取k個(gè)最鄰近的點(diǎn),這k個(gè)點(diǎn)屬于哪類個(gè)數(shù)最多,則該點(diǎn)就屬于哪類。計(jì)算測(cè)試數(shù)據(jù)到每個(gè)訓(xùn)練數(shù)據(jù)的距離(一般采用歐氏距離)按照距離從小到大排列選取距離最小的k個(gè)點(diǎn)統(tǒng)計(jì)這k個(gè)點(diǎn)在各個(gè)類別中的頻率選取k個(gè)點(diǎn)所在類別頻率最高的作為測(cè)試數(shù)據(jù)
的預(yù)測(cè)類別K-近鄰算法常用距離歐氏(Euclidean)距離平方歐氏(SquaredEuclidean)距離明氏(明科夫斯基Minkowski)距離切比雪夫(Chebychev)距離蘭氏(Lance和Willianms)距離馬氏(Mahalanobis)距離斜交空間距離1.歐氏距離
3.馬氏距離2.曼哈頓距離KNN的實(shí)現(xiàn)方式
在R語(yǔ)言中,KNN算法的實(shí)現(xiàn)方式有三種:
1.通過(guò)class包中的knn()函數(shù)實(shí)現(xiàn)2.通過(guò)kknn包中kknn()函數(shù)實(shí)現(xiàn)3.通過(guò)caret包中的train()函數(shù)實(shí)現(xiàn)程序包:class·knn()函數(shù)格式:knn(train,test,cl,k=1,l=0,prob=FALSE,use.all=TRUE)train為訓(xùn)練集中的自變量;test為測(cè)試集中的自變量;cl為訓(xùn)練集中的預(yù)測(cè)變量;k為鄰近值個(gè)數(shù);prob是否計(jì)算預(yù)測(cè)組別的概率,默認(rèn)為FALSE,即不計(jì)算,如果為TRUE,則結(jié)果中的prob屬性可以存放該概率的數(shù)值。
程序包:kknn·kknn()函數(shù)格式:kknn(formula=formula(train),train,test,na.action=na.omit(),k=7,distance=2,…)formula為建模的公式,格式為“預(yù)測(cè)變量~因變量1+因變量2+…”;train為訓(xùn)練數(shù)據(jù)集,test為測(cè)試數(shù)據(jù)集。na.action設(shè)置對(duì)缺失值的處理方式,默認(rèn)等于na.omit(),即刪除含有缺失數(shù)據(jù)的行;k設(shè)置鄰近值的個(gè)數(shù),默認(rèn)為7;distance為閔可夫斯基距離,默認(rèn)為2時(shí)該距離為歐氏距離。需要注意的是,該算法只能輸出測(cè)試數(shù)據(jù)集的預(yù)測(cè)結(jié)果,不輸出訓(xùn)練數(shù)據(jù)集的預(yù)測(cè)結(jié)果。
程序包:caret·train()函數(shù)格式:train(x,y,method=“knn",preProcess=NULL,weights=NULL,...)x為訓(xùn)練集中的自變量;y為訓(xùn)練集中的預(yù)測(cè)變量;method指定使用的分類或回歸模型;method="knn"時(shí)就是k近鄰算法;weights設(shè)定權(quán)重變量,默認(rèn)為空。
K近鄰算法—實(shí)驗(yàn)案例鳶尾花數(shù)據(jù)集iris(包含150個(gè)樣本):4個(gè)數(shù)值屬性:Sepal.Length(萼片長(zhǎng)度)、Sepal.Width(萼片寬度)、Petal.Length(花瓣長(zhǎng)度)、Petal.Width(花瓣寬度)1個(gè)類別屬性:Species(種類)setosa,versicolor,和virginica。使用訓(xùn)練集構(gòu)建模型,利用混淆矩陣將測(cè)試集的預(yù)測(cè)結(jié)果和原數(shù)據(jù)集中分類屬性作比較。使用class包中的knn()函數(shù)#從iris數(shù)據(jù)集中隨機(jī)取100個(gè)數(shù)據(jù)作為樣本賦值給index>index<-sample(1:nrow(iris),100)#訓(xùn)練集>iris.train<-iris[index,]#測(cè)試集>iris.test<-iris[-index,]#載入包c(diǎn)lass>library(class)sample()函數(shù):用于抽樣>#利用kNN算法對(duì)測(cè)試集進(jìn)行分類>result.KNN<-knn(train=subset(iris.train,select=-Species),test=subset(iris.test,select=-Species),cl=iris.train$Species)#生成混淆矩陣>table(result.KNN,iris.test$Species)knn()函數(shù)中的參數(shù)
訓(xùn)練集中的自變量:train=subset(iris.train,select=-Species)測(cè)試集中的自變量:test=subset(iris.test,select=-Species)訓(xùn)練集中的預(yù)測(cè)變量:cl=iris.train$Species
生成的混淆矩陣:每次運(yùn)行的結(jié)果不相同,但可以從混淆矩陣中看出擬合的效果較好k的取值k為鄰近值個(gè)數(shù),k值的選擇會(huì)對(duì)結(jié)果產(chǎn)生重大影響。當(dāng)選擇較小的k值時(shí),相當(dāng)于用一個(gè)較小領(lǐng)域中的數(shù)據(jù)進(jìn)行預(yù)測(cè),近似誤差減小,估計(jì)誤差增大,預(yù)測(cè)結(jié)果對(duì)近鄰的數(shù)據(jù)非常敏感,容易發(fā)生過(guò)擬合。當(dāng)選擇較大的k值時(shí),近似誤差變大,估計(jì)誤差變小。判斷k的取值k一般小于數(shù)據(jù)集中數(shù)據(jù)數(shù)目的平方根。k的具體值通常難以直接確定,但可以根據(jù)結(jié)果預(yù)測(cè)的準(zhǔn)確程度確定k的最優(yōu)取值。可以通過(guò)比較測(cè)試集的圖像和預(yù)測(cè)結(jié)果的圖像判斷預(yù)測(cè)準(zhǔn)確率,也可以使用混淆矩陣和列聯(lián)表。k=2測(cè)試集預(yù)測(cè)結(jié)果k=7測(cè)試集預(yù)測(cè)結(jié)果預(yù)測(cè)結(jié)果小結(jié)什么是K-近鄰算法如果一個(gè)樣本在特征空間中的k個(gè)最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個(gè)類別,則判斷該樣本也屬于這個(gè)類別。K-近鄰算法的實(shí)現(xiàn)class程序包kknn程序包c(diǎn)aret程序包K-近鄰算法實(shí)驗(yàn)案例Iris數(shù)據(jù)集進(jìn)行分析k的取值這兩種算法之間的根本區(qū)別是:Kmeans是聚類算法,KNN是分類算法。Kmeans算法把一個(gè)數(shù)據(jù)集分割成簇,使得形成的簇是同構(gòu)的,每個(gè)簇里的點(diǎn)相互靠近。該算法試圖維持這些簇之間有足夠的可分離性。由于無(wú)監(jiān)督的性質(zhì),這些簇沒(méi)有任何標(biāo)簽。KNN算法嘗試基于其K(可以是任何數(shù)目)個(gè)周圍鄰居來(lái)對(duì)未標(biāo)記的觀察進(jìn)行分類。它也被稱為懶惰學(xué)習(xí)法,因?yàn)樗婕白钚〉哪P陀?xùn)練。因此,它不用訓(xùn)練數(shù)據(jù)對(duì)未看見(jiàn)的數(shù)據(jù)集進(jìn)行泛化。拓展Kmeans算法與KNN算法的區(qū)別聚類分析目錄什么是聚類聚類(clustering)是對(duì)大量未知標(biāo)注的數(shù)據(jù)集,按數(shù)據(jù)的內(nèi)在相似性將數(shù)據(jù)集劃分為多個(gè)類別,使類別內(nèi)的數(shù)據(jù)相似度較大而類別間的數(shù)據(jù)相似度較小,其過(guò)程被稱為聚類。K-Means聚類分析K-均值算法是最早出現(xiàn)的聚類分析算法之一,它是一種快速聚類方法,對(duì)于異常值或極值敏感,穩(wěn)定性差,適合處理分布集中的大樣本數(shù)據(jù)集。聚類分析-實(shí)驗(yàn)案例Iris數(shù)據(jù)集進(jìn)行K-均值聚類分析其他聚類分析函數(shù)主要有4個(gè)軟件包:stats、cluster、fpc和mclust,其中有相關(guān)聚類函數(shù)。聚類“物以類聚,人以群分”。將物理或抽象對(duì)象的集合分成由類似的對(duì)象組成的多個(gè)類的過(guò)程被稱為聚類。聚類(clustering)是對(duì)大量未知標(biāo)注的數(shù)據(jù)集,按數(shù)據(jù)的內(nèi)在相似性將數(shù)據(jù)集劃分為多個(gè)類別,使類別內(nèi)的數(shù)據(jù)相似度較大而類別間的數(shù)據(jù)相似度較小,其過(guò)程被稱為聚類。在自然科學(xué)和社會(huì)科學(xué)中,存在著大量的分類問(wèn)題。聚類分析起源于分類學(xué),但是不等于分類,不同在于聚類所要求劃分的類未知。聚類分析是一種建立分類的多元統(tǒng)計(jì)分析方法,它能將一批樣本數(shù)據(jù)根據(jù)其諸多特征,按照在性質(zhì)上的親疏程度在沒(méi)有先驗(yàn)知識(shí)的情況下進(jìn)行自動(dòng)分類,產(chǎn)生多個(gè)分類結(jié)果。聚類聚類分析定義:聚類分析是將樣品或變量按照他們性質(zhì)上的親疏程度進(jìn)行分類的多元統(tǒng)計(jì)分析方法。進(jìn)行聚類分析時(shí),用來(lái)描述物品或變量的親疏程度通常有兩個(gè)途徑:把每個(gè)樣品或變量看成是多維空間上的一個(gè)點(diǎn),在多維坐標(biāo)中,定義點(diǎn)與點(diǎn)、類與類之間的距離,用點(diǎn)與點(diǎn)間距離來(lái)描述樣品或變量的親疏程度;計(jì)算樣品或變量的相似系數(shù),用相似系數(shù)來(lái)描述樣品或變量之間的親疏程度。編號(hào)購(gòu)物環(huán)境服務(wù)質(zhì)量A商廈7368B商廈6664C商廈8482D商廈9188E商廈9490把商廈分成兩類:把商廈分為三類:沒(méi)有指定分類標(biāo)準(zhǔn),大家為什么會(huì)這么分呢?從數(shù)據(jù)出發(fā),根據(jù)性質(zhì)上的親疏程度進(jìn)行分類。A、B為一類,C、D、E為一類A、B為一類,C為一類,D、E為一類樣本變量親疏程度的度量也叫相似性度量,方法主要有兩個(gè):(1)距離常用來(lái)度量樣品之間的相似性;(2)相似系數(shù)常用來(lái)度量變量之間的相似性。距離歐氏(Euclidean)距離平方歐氏(SquaredEuclidean)距離明氏(明科夫斯基Minkowski)距離切比雪夫(Chebychev)距離蘭氏(Lance和Willianms)距離馬氏(Mahalanobis)距離斜交空間距離其他K-均值聚類(K-Means)層次聚類(系譜聚類HierarchicalClustering,HC)K-中心點(diǎn)聚類(K-Medoids)密度聚類(Densit-basedSpatialClusteringofApplicationwithNoise,DBSCAN)期望最大化聚類(ExpectationMaximization,EM)
這些算法本身無(wú)所謂優(yōu)劣,而最終運(yùn)用于數(shù)據(jù)的效果卻存在差異,這在很大程度上取決于數(shù)據(jù)使用者對(duì)于算法的選擇是否得當(dāng)。聚類算法聚類算法種類繁多,且其中絕大多數(shù)可以用R實(shí)現(xiàn)。普及性最廣、最實(shí)用、最具有代表性的5種聚類算法:K-均值聚類K-均值算法是最早出現(xiàn)的聚類分析算法之一,它是一種快速聚類方法,對(duì)于異常值或極值敏感,穩(wěn)定性差,適合處理分布集中的大樣本數(shù)據(jù)集。思路:以隨機(jī)選取的k(預(yù)設(shè)類別數(shù))個(gè)樣本作為起始中心點(diǎn),將其余樣本歸入相似度最高中心點(diǎn)所在的簇(cluster),再確立當(dāng)前簇中樣本坐標(biāo)的均值為新的中心點(diǎn),依次循環(huán)迭代下去,直至所有樣本所屬類別不再變動(dòng)。算法的計(jì)算過(guò)程直觀,下圖將10個(gè)點(diǎn)聚為3類為例展示算法步驟。kmeans函數(shù)kmeans(x,centers,iter.max=10,nstart=1, algorithm=c(“Hartigan-ong”,“Lloyd”,“Forgy”,“MacQueen”), trace=FALSE)其中x為進(jìn)行聚類分析的數(shù)據(jù)集;
centers為預(yù)設(shè)類別數(shù)k;iter.max為迭代的最大值,且默認(rèn)值為10;nstart為選擇隨機(jī)起始中心點(diǎn)的次數(shù),默認(rèn)取1;
參數(shù)algorithm提供了4種算法選擇,默認(rèn)為Hartigan-Wong算法。K-均值算法在R語(yǔ)言中實(shí)現(xiàn)的核心函數(shù)為kmeans(),來(lái)源于stats軟件包。該函數(shù)的基本格式為:(鳶尾花)數(shù)據(jù)集iris:屬性:Sepal.Length(萼片長(zhǎng)度)、Sepal.Width(萼片寬度)、Petal.Length(花瓣長(zhǎng)度)、Petal.Width(花瓣寬度)分類:Species(種類)使用數(shù)據(jù)集iris的4個(gè)屬性進(jìn)行聚類,結(jié)果和Species作比較聚類實(shí)驗(yàn)例>Data<-iris[,1:4]>library(stats)>km<-kmeans(Data,center=3)>print(km)>Data.camp<-data.frame(iris,km$cluster)>Data_confusion=table(actual=Data.camp$Species, clustered=Data.camp$km.cluster)>print(Data_confusion)>library(ggplot2)>ggplot(Data.camp,aes(Species,km$cluster))+geom_count()>#將聚類以及中心點(diǎn)打印(Sepal)>plot(Data$Sepal.Length,Data$Sepal.Width,col=km$cluster,pch="*")>points(km$centers[,1:2],pch="X",cex=1.5,col=4)>#將聚類以及中心點(diǎn)打印(Petal)>plot(Data$Petal.Length,Data$Petal.Width,col=km$cluster,pch="*")>points(km$centers[,3:4],pch="X",cex=1.5,col=4)>library(RColorBrewer)>library(gridExtra)>col<-brewer.pal(3,"Set1")>p1<-ggplot(data=iris,aes(Sepal.Length,Sepal.Width,colour=Species))+
geom_point(size=5,alpha=.6)+scale_color_manual(values=col)>p2<-ggplot(data=iris,aes(Petal.Length,Petal.Width,colour=Species))+
geom_point(size=5,alpha=.6)+scale_color_manual(values=col)>km$cluster=factor(km$cluster)>p3<-ggplot(data=Data.camp,aes(Sepal.Length,Sepal.Width,
colour=km$cluster))+geom_point(size=5,alpha=.6)+
scale_color_manual(values=col)>p4<-ggplot(data=Data.camp,aes(Petal.Length,Petal.Width,
colour=km$cluster))+geom_point(size=5,alpha=.6)+
scale_color_manual(values=col)>grid.arrange(p1,p2,p3,p4,nrow=2,ncol=2)K=3的情況K=6的情況stats主要包含一些基本的統(tǒng)計(jì)函數(shù),如用于統(tǒng)計(jì)計(jì)算和隨機(jī)數(shù)生成等。cluster專用于聚類分析,含有很多聚類相關(guān)的函及數(shù)據(jù)集。fpc含有若干聚類算法函數(shù),如固定點(diǎn)聚類、線性回歸聚類、DBSCAN聚類等。mclust則主要用來(lái)處理基于高斯混合模型,通過(guò)EM算法實(shí)現(xiàn)的聚類,分類以及密度估計(jì)等問(wèn)題。其他聚類分析方法相關(guān)軟件包:stats、cluster、fpc和mclust。層次聚類層次聚類(系譜聚類):其聚類的過(guò)程可以通過(guò)類似于系譜圖的形式呈現(xiàn)出來(lái)。相比K-均值算法與K-中心點(diǎn)算法,系譜算法的突出特點(diǎn)在于,不需事先設(shè)定類別數(shù)k,這是因?yàn)樗看蔚^(guò)程僅將距離最近的兩個(gè)樣本/簇聚為一類,其運(yùn)作過(guò)程將自然得到k=n至k=1(n為待分類樣本總數(shù))個(gè)類別的聚類結(jié)果。小結(jié)什么是聚類聚類(clustering)是對(duì)大量未知標(biāo)注的數(shù)據(jù)集,按數(shù)據(jù)的內(nèi)在相似性將數(shù)據(jù)集劃分為多個(gè)類別,使類別內(nèi)的數(shù)據(jù)相似度較大而類別間的數(shù)據(jù)相似度較小,其過(guò)程被稱為聚類。K-Means聚類分析K-均值算法是最早出現(xiàn)的聚類分析算法之一,它是一種快速聚類方法,對(duì)于異常值或極值敏感,穩(wěn)定性差,適合處理分布集中的大樣本數(shù)據(jù)集。聚類分析-實(shí)驗(yàn)案例Iris數(shù)據(jù)集進(jìn)行K-均值聚類分析其他聚類分析函數(shù)主要有4個(gè)軟件包:stats、cluster、fpc和mclust,其中有相關(guān)聚類函數(shù)。數(shù)據(jù)挖掘工具RattleRattle介紹功能安裝數(shù)據(jù)分析過(guò)程數(shù)據(jù)導(dǎo)入數(shù)據(jù)探索算法模型模型評(píng)估目錄Rattle是什么?基于圖形交互界面(GUI)的數(shù)據(jù)挖掘算法包。包括數(shù)據(jù)預(yù)處理、探索、模型應(yīng)用和評(píng)價(jià),快速處理常見(jiàn)的數(shù)據(jù)挖掘問(wèn)題。使用RGtk2包提供的Gnome圖形用戶界面,適用多種系統(tǒng)。Rattle的安裝和調(diào)用以WINDOWS為例: >install.packages(“RGtk2”) >install.packages(“rattle”) >library(rattle) >rattle()Rattle簡(jiǎn)介及安裝Rattle的界面:菜單欄,工具欄和標(biāo)簽欄。功能預(yù)覽Data:選擇數(shù)據(jù)源/輸入數(shù)據(jù)Explore:數(shù)據(jù)探索,理解數(shù)據(jù)分布情況Test:統(tǒng)計(jì)檢驗(yàn)Transform:數(shù)據(jù)變換Cluster:數(shù)據(jù)聚類,包括k-均值聚類,系統(tǒng)聚類和雙聚類Associate:關(guān)聯(lián)規(guī)則方法Model:包括多種算法:決策樹(shù),隨機(jī)森林,組合算法,支持向量機(jī),線性模型,人工神經(jīng)網(wǎng)絡(luò),生存分析Evaluate:模型評(píng)估:混淆矩陣、模型風(fēng)險(xiǎn)表、模型ROC曲線、得分表等各類模型評(píng)估指標(biāo)Log:數(shù)據(jù)挖掘過(guò)程的紀(jì)錄,記錄以上功能的具體執(zhí)行(R代碼)功能預(yù)覽標(biāo)簽欄:利用R語(yǔ)言強(qiáng)大的內(nèi)置數(shù)據(jù)集和數(shù)據(jù)導(dǎo)入能力,處理多種來(lái)源數(shù)據(jù)。最常用格式:分隔符文件(CSV或TXT文件)。使用Data標(biāo)簽中的Spreadsheet,選擇需要導(dǎo)入的CSV文件。導(dǎo)入CSV數(shù)據(jù)ARFF(TheAttribute-RelationFileFormat)文件,Weka默認(rèn)文件。格式特點(diǎn):由文件頭和數(shù)據(jù)組成,各個(gè)記錄相互獨(dú)立、沒(méi)有順序要求,同時(shí)各個(gè)記錄間不存在關(guān)系。通過(guò)Data標(biāo)簽導(dǎo)入ARFF格式文件。導(dǎo)入ARFF數(shù)據(jù)Rattle通過(guò)ODBC選項(xiàng),獲取有ODBC驅(qū)動(dòng)的數(shù)據(jù)庫(kù)。建立ODBC連接,例如配置MySQL的ODBC驅(qū)動(dòng),使用RODBC包的函數(shù)進(jìn)行數(shù)據(jù)庫(kù)連接。在Rattle的DSN中輸入連接的數(shù)據(jù)庫(kù)名,選中導(dǎo)入的表,可將該表導(dǎo)入到Rattle中。導(dǎo)入ODBC數(shù)據(jù)>library(RODBC)>odbcConnect("ids_user_action",“userDaniel",“pass@123456") RODBCConnection1 Details: case=tolower DSN=ids_user_action UID=userDaniel PWD=******Rattle包自帶weather,dvdtransandaudit等數(shù)據(jù)集,通過(guò)Library選項(xiàng)把這些數(shù)據(jù)集導(dǎo)入到Rattle。例如:導(dǎo)入boot擴(kuò)展包中的acme數(shù)據(jù)集導(dǎo)入Library數(shù)據(jù)Rattle中的Explore界面:
數(shù)據(jù)總體概況(Summary)
數(shù)據(jù)分布情況(Distributions)
數(shù)據(jù)相關(guān)分析(Correlation)
主成分分析(PrincipalComponents)
各變量之間的交互(Interactive)數(shù)據(jù)探索利用基礎(chǔ)base包中的summary()函數(shù)獲取描述統(tǒng)計(jì)量。對(duì)數(shù)值型變量:最小值、四分位數(shù)、中位數(shù)、均值和最大值;對(duì)因子型或邏輯型變量:頻數(shù)。數(shù)據(jù)探索-總體利用Hmisc包中的describe()函數(shù)返回變量和觀測(cè)值的缺失值和唯一值的頻數(shù)、平均值、分位數(shù),以及五個(gè)最大的值和最小值,等信息。數(shù)據(jù)探索-總體利用fBasics包中的basicsStats()函數(shù),對(duì)數(shù)值型變量提供更詳細(xì)的描述性統(tǒng)計(jì):記錄數(shù)、缺失值個(gè)數(shù)、最小值、最大值、四分位數(shù)、均值、中位數(shù)、求和、均值標(biāo)準(zhǔn)誤、均值95%置信區(qū)間的上下限、方差、偏度和峰度。數(shù)據(jù)探索-總體利用Rattle的Distributions選項(xiàng),給出各個(gè)變量的分布特征可視化顯示。對(duì)于數(shù)值型變量:箱線圖、直方圖、累積分布圖等;對(duì)于類別變量:條形圖,點(diǎn)圖和馬賽克圖等。數(shù)據(jù)探索-分布直方圖數(shù)據(jù)分布探索累積分布圖箱線圖直方圖柱狀圖、點(diǎn)圖、馬賽克圖相關(guān)系數(shù)采用Pearson、Kendall、Spearman三種方法,默認(rèn)是Pearson,可繪制相關(guān)系數(shù)圖。數(shù)據(jù)探索-相關(guān)主成分分析有兩種方法:計(jì)算樣本協(xié)方差矩陣的特征值和特征向量(Eigen);對(duì)數(shù)據(jù)矩陣進(jìn)行奇異值分解(SVD)。輸出結(jié)果:標(biāo)準(zhǔn)差,主成分系數(shù)、貢獻(xiàn)率,累計(jì)貢獻(xiàn)率。兩種計(jì)算結(jié)果有差異,繪制碎石圖和biplot圖。數(shù)據(jù)探索-主成分使用latticist和GGobi兩種方法,以交互方式探索數(shù)據(jù)。latticist依賴R的lattice作圖系統(tǒng),latticist包可通過(guò)柵欄圖方式探索數(shù)據(jù)集。GGobi需要安裝GGobi軟件和相應(yīng)的rggobi包。包括:交互式散點(diǎn)圖、柱狀圖、平行坐標(biāo)圖、時(shí)間序列圖、散點(diǎn)圖矩陣和三維旋轉(zhuǎn)的綜合使用。數(shù)據(jù)探索-交互Rattle通過(guò)Cluster選項(xiàng)可以建立K-Means和層次聚類,默認(rèn)是K-Means聚類。聚類分析關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法(Apriori算法)該算法具體分為以下兩步進(jìn)行:生成所有頻繁項(xiàng)目集,一個(gè)頻繁項(xiàng)目集是一個(gè)支持度高于最小支持度閾值的項(xiàng)目集。從頻繁項(xiàng)目集中生成所有的可信關(guān)聯(lián)規(guī)則,這里可信關(guān)聯(lián)規(guī)則是指置信度大于最小置信度閾值的規(guī)則。Rattle中的Associate選項(xiàng)可以實(shí)現(xiàn)Apriori算法。默認(rèn)最小支持度閾值(min-sup)是0.100,最小置信度閾值(min-conf)是0.100,每個(gè)項(xiàng)集所含項(xiàng)數(shù)的最小值是2。關(guān)聯(lián)規(guī)則可以通過(guò)Rattle的Tree按鈕實(shí)現(xiàn)決策樹(shù)建模,它基于rpart算法包中的rpart函數(shù)實(shí)現(xiàn)。決策樹(shù)可以通過(guò)Rattle的Forest按鈕實(shí)現(xiàn)隨機(jī)森林建模,它基于randomForest算法包中的randomForest函數(shù)實(shí)現(xiàn)。隨機(jī)森林可以點(diǎn)擊OOBROC按鈕,生成OOBROC曲線;可以生成每棵樹(shù)的OOB、因變量為Yes、No時(shí)的誤差率。隨機(jī)森林在Rattle程序包中,Evaluate的默認(rèn)評(píng)估標(biāo)準(zhǔn)即為混淆矩陣。在單擊“執(zhí)行”按鈕后得出相應(yīng)所選模型的混淆矩陣。例如:利用天氣數(shù)據(jù)集所建立的隨機(jī)森林模型的混淆矩陣?;煜仃嚹P偷娘L(fēng)險(xiǎn)圖通常也被稱為累計(jì)增益圖,該圖像主要提供了二分類模型評(píng)估中的另一種透視圖,該圖像可以通過(guò)Evaluate界面中的Risk選項(xiàng)直接生成。風(fēng)險(xiǎn)圖模型的ROC圖像同樣也是一種比較常見(jiàn)的用于機(jī)器學(xué)習(xí)的模型評(píng)估圖。此外,與ROC圖像相關(guān)且類似的圖像還有敏感度與特異性圖像、增益圖、精確度與敏感度圖像。ROC圖及相關(guān)圖表在Evaluate界面中,Rattle提供了一個(gè)得分?jǐn)?shù)據(jù)集,能夠?qū)⒛P头治鲱A(yù)測(cè)結(jié)果保存為文件的形式。例如利用決策樹(shù)生成的模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),Type選擇Score,Data選擇Testing:點(diǎn)擊“執(zhí)行”按鈕出現(xiàn)文件保存對(duì)話框。模型得分?jǐn)?shù)據(jù)集Rattle介紹安裝與主要功能數(shù)據(jù)分析過(guò)程數(shù)據(jù)導(dǎo)入,數(shù)據(jù)探索,數(shù)據(jù)建模,模型評(píng)估小結(jié)思考與討論高級(jí)特性目錄R語(yǔ)言與面向?qū)ο竺嫦驅(qū)ο蠡A(chǔ)知識(shí):封裝、多態(tài)、繼承R語(yǔ)言與面向?qū)ο缶幊蹋悍盒秃瘮?shù),S3,S4R語(yǔ)言的程序調(diào)試R語(yǔ)言性能提升通過(guò)向量化方式優(yōu)化代碼將消耗資源部分用編譯型語(yǔ)言編寫(xiě)并行方式編寫(xiě)并運(yùn)行使用GPU加速R語(yǔ)言與面向?qū)ο竽夸浢嫦驅(qū)ο蠡A(chǔ)知識(shí)概念:對(duì)象、類特點(diǎn):封裝、多態(tài)、繼承R語(yǔ)言與面向?qū)ο缶幊袒A(chǔ)函數(shù):class(),mode(),typeof()函數(shù):unclass(),attributes()泛型函數(shù):plot(),print()面向?qū)ο箢愋停篠3,S4函數(shù):setClass(),new(),slot()對(duì)象的管理:ls(),rm(),save(),load(),exists()…對(duì)象(Object)現(xiàn)實(shí)世界中,對(duì)象指客觀世界存在的任何事物。面向?qū)ο蟪绦蛑?,?duì)象由數(shù)據(jù)和操作封裝而成。對(duì)象的構(gòu)成標(biāo)識(shí):對(duì)象的名稱屬性(數(shù)據(jù)):描述對(duì)象的狀態(tài)方法(操作):對(duì)象的行為類(Class)具有相同屬性和方法的對(duì)象的集合。類是對(duì)象的抽象,對(duì)象是類的實(shí)例。面向?qū)ο蠡A(chǔ)面向?qū)ο蟮奶匦悦嫦驅(qū)ο蟪绦蛟O(shè)計(jì)(OOP)的特點(diǎn):“封裝”、“多態(tài)”、“繼承”。封裝:把對(duì)象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個(gè)不可分割的獨(dú)立單位(對(duì)象)。盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)(信息隱藏)。多態(tài):相同的函數(shù)使用不同類的對(duì)象時(shí)可以調(diào)用不同的操作。繼承:允許把一個(gè)給定的類的性質(zhì)自動(dòng)賦予為其下屬的更特殊化的類。繼承性是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制,繼承性具有傳遞性。R語(yǔ)言是一種函數(shù)式語(yǔ)言,但同樣支持面向?qū)ο缶幊?。提高軟件的重用性,靈活性和擴(kuò)展性。R基本的數(shù)據(jù)類型:數(shù)值(numeric)、邏輯(logical)、字符(character)等,在此基礎(chǔ)上構(gòu)成了一些復(fù)合型的數(shù)據(jù)類型或數(shù)據(jù)結(jié)構(gòu):矩陣(matrix)、數(shù)組(array)、數(shù)據(jù)框(dataframe)等。除此用戶還可以自定義新的類型。所有的類型都是建立在基本數(shù)據(jù)類型之上的。數(shù)據(jù)類型,可以看做是類。R的面向?qū)ο筇匦杂深悇?chuàng)建的對(duì)象中包含了很多屬性(Attribute),其中一種重要的屬性就是它所屬的類(Class)。R的面向?qū)ο筇匦詘<-c(1,2,3)y<-c(1,3,8)class(x)lmot<-lm(y~x)class(lmot)mode(x)mode(lmot)typeof(x)typeof(lmot)R語(yǔ)言class()mode()typeof()函數(shù)的區(qū)別函數(shù)class()返回R對(duì)象的類:基本類、復(fù)合型的類、其他類(例如lm函數(shù))、自定義類。如果要消除對(duì)象的類,則可用unclass()。R的面向?qū)ο筇匦浴?。。。。。查看類的屬性值:attributes()。向量是最基本的數(shù)據(jù)結(jié)構(gòu),沒(méi)有屬性,返回空值。
R的面向?qū)ο筇匦远鄳B(tài):相同的函數(shù)使用不同類的對(duì)象時(shí),R自動(dòng)匹配調(diào)用不同的操作。具有多態(tài)性的函數(shù),稱為泛型函數(shù),如plot()和print()。泛型函數(shù)#輸入lmot就能將lmot的內(nèi)容自動(dòng)打印出來(lái),是由于R的解釋器發(fā)現(xiàn)lmot是lm類的對(duì)象,自動(dòng)調(diào)用了print.lm()繼承R的面向?qū)ο筇匦訰語(yǔ)言有多種面向?qū)ο蟮姆绞剑篠3類型、S4類型和RC等S3和S4是基于泛型函數(shù),而RC是完全的面向?qū)ο?。S3類型:和大多數(shù)面向?qū)ο蟮恼Z(yǔ)言(C#、JAVA、C++等)不一樣,是一種基于泛型函數(shù)的面向?qū)ο蠓绞?。泛型函?shù)可以根據(jù)傳入對(duì)象的類型決定調(diào)用哪種具體的方法。容易理解和使用。S4類型:結(jié)構(gòu)更加豐富,更加嚴(yán)格。使用setClass()函數(shù)來(lái)定義新的S4類型,用new()函數(shù)新建某個(gè)類的對(duì)象。谷歌R語(yǔ)言風(fēng)格指南支持使用S3,S4。R語(yǔ)言的S3和S4類型S4編程特點(diǎn)setClass(Class="Person",representation(name="character",age="numeric"))setClass(Class="Reporter",representation(title="character"),contains="Person")chen<-new("Reporter",name="chen",age=20,title="RandOOP")chen在S3中使用$來(lái)訪問(wèn)一個(gè)對(duì)象的屬性。在S4中使用@來(lái)訪問(wèn)屬性,或使用slot()來(lái)查看屬性。S4編程特點(diǎn)chen@nameslot(chen,"name")一個(gè)典型的R語(yǔ)言會(huì)話中,會(huì)產(chǎn)生大量的對(duì)象。使用一些函數(shù)用來(lái)管理這些對(duì)象。對(duì)象的管理ls()rm()save()load()exists()小結(jié)面向?qū)ο蠡A(chǔ)知識(shí)概念:對(duì)象、類特點(diǎn):封裝、多態(tài)、繼承R語(yǔ)言與面向?qū)ο缶幊袒A(chǔ)函數(shù):class(),mode(),typeof()函數(shù):unclass(),attributes()泛型函數(shù):plot(),print()面向?qū)ο箢愋停篠3,S4函數(shù):setClass(),new(),slot()對(duì)象的管理:ls(),rm(),save(),load(),exists()…程序調(diào)試程序調(diào)試程序調(diào)試:是程序投入實(shí)際運(yùn)行前進(jìn)行測(cè)試,修正語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的過(guò)程,是保證程序正確運(yùn)行必不可少的步驟。各種原因都會(huì)導(dǎo)致程序運(yùn)行結(jié)果和預(yù)期不符,根據(jù)測(cè)試時(shí)發(fā)現(xiàn)的錯(cuò)誤,可進(jìn)一步診斷,找出出錯(cuò)原因和具體的位置并進(jìn)行修正。調(diào)試函數(shù)R語(yǔ)言的核心調(diào)試工具由“調(diào)試瀏覽器”構(gòu)成,可以逐行運(yùn)行代碼并在運(yùn)行過(guò)程中進(jìn)行檢查。調(diào)試瀏覽器可以通過(guò)debug()和browser()函數(shù)打開(kāi)。R語(yǔ)言的調(diào)試工具針對(duì)單個(gè)函數(shù),調(diào)用debug(f)來(lái)設(shè)置函數(shù)f()的調(diào)試狀態(tài),此后每次調(diào)用f()函數(shù)都將自動(dòng)在函數(shù)入口處進(jìn)入調(diào)試瀏覽器,調(diào)用undebug(f)可以取消函數(shù)的調(diào)試狀態(tài)。另外,如果在f函數(shù)中的某一行加入一條browser()語(yǔ)句,那么瀏覽器只會(huì)在程序執(zhí)行到這一行時(shí)才被打開(kāi),繼而逐步調(diào)試代碼,直到退出這個(gè)函數(shù)。R語(yǔ)言如何調(diào)試程序調(diào)試瀏覽器命令進(jìn)入調(diào)試瀏覽器時(shí),命令提示符將從>變?yōu)锽rowse[d]>(此處d表示函數(shù)調(diào)用鏈的深度)。在命令提示符之后可以輸入以下命令:n(next):執(zhí)行下一行,然后暫停,和“ENTER”鍵效果相同。c(continue):與n類似,但在下次暫停前可能會(huì)執(zhí)行若干條語(yǔ)句。例如在循環(huán)中這條命令將會(huì)執(zhí)行剩余的循環(huán),直到退出循環(huán)才再次暫停。任意的R命令:瀏覽器仍然處于R的交互模式,因此可以任意地查看變量的取值,例如要查看變量x的取值,只需要輸入x進(jìn)行查看。where:輸出一份棧跟蹤路徑,顯示到達(dá)當(dāng)前位置過(guò)程中的函數(shù)調(diào)用序列。Q:退出調(diào)試瀏覽器,回到R的主交互模式。R語(yǔ)言如何調(diào)試程序設(shè)置斷點(diǎn)使用debug(f)函數(shù)會(huì)將browser()語(yǔ)句插入到f()的開(kāi)始位置。然而在有些情況下程序錯(cuò)誤發(fā)生在函數(shù)的中間位置,那么將代碼從頭到尾調(diào)試一遍會(huì)非常復(fù)雜,在此情況下可在代碼的關(guān)鍵行設(shè)置斷點(diǎn),讓程序暫停到預(yù)期的地方。設(shè)置斷點(diǎn)主要有兩種方法:一種是直接調(diào)用browser()函數(shù):將browser函數(shù)設(shè)置在待檢測(cè)代碼前的某個(gè)位置,就可以達(dá)到設(shè)置斷點(diǎn)的目的;另一種是使用setBreakpoint()函數(shù):用于設(shè)置斷點(diǎn),會(huì)在源文件的第某行調(diào)用browser()函數(shù)。
R語(yǔ)言如何調(diào)試程序性能提升目錄R語(yǔ)言:R中一些函數(shù)命令用C語(yǔ)言編寫(xiě),編譯型,可用機(jī)器代碼快速運(yùn)行。但對(duì)于有些函數(shù),包括自編代碼,是用純粹的R語(yǔ)言編寫(xiě),是解釋型。R的會(huì)話中所有對(duì)象保存在內(nèi)存中,一些大對(duì)象使用受限。R語(yǔ)言性能提升:通過(guò)向量化方式優(yōu)化代碼將消耗資源部分用編譯型語(yǔ)言編寫(xiě)(如C)并行方式編寫(xiě)并運(yùn)行使用GPU加速用向量化提升速度通過(guò)向量化方式,避免使用for循環(huán)循環(huán)中的函數(shù)調(diào)用:for,
“:”。調(diào)用函數(shù)可能會(huì)牽涉到創(chuàng)建堆棧幀等過(guò)程。若在每次循環(huán)中都有消耗,則費(fèi)時(shí)較多?!坝脩簟睍r(shí)間指運(yùn)行此程序使用CPU的時(shí)間;“系統(tǒng)”時(shí)間指程序中執(zhí)行系統(tǒng)指令等CPU時(shí)間;“流逝”時(shí)間則指實(shí)際執(zhí)行時(shí)間。用向量化提升速度例:P147代碼運(yùn)行報(bào)告Rprof函數(shù),是R語(yǔ)言核心包自帶的性能數(shù)據(jù)日志函數(shù),顯示各函數(shù)的調(diào)用關(guān)系和CPU耗時(shí)的數(shù)據(jù)。summaryRprof函數(shù),分析Rprof生成的日志數(shù)據(jù),獲得性能報(bào)告。profr庫(kù)的plot函數(shù),對(duì)報(bào)告進(jìn)行可視化。file<-"1.out"Rprof(file)x<-runif(10000000)y<-runif(10000000)z<-vector(length=10000000)system.time(z<-x+y)system.time(for(iin1:length(x))z[i]<-x[i]+y[i])Rprof(NULL)summaryRprof()library(profr)plot(parse_rprof(file))編寫(xiě)能被R語(yǔ)言調(diào)用的C/C++代碼使用C/C++代碼的目的:提升程序的性能,特殊的I/O操作P149C代碼編譯運(yùn)行編寫(xiě)能被R語(yǔ)言調(diào)用的C/C++代碼P150writeLines("#include<math.h>#include<stdlib.h> voidadd(double*x,double*y,double*z){ inti=0; for(i=0;i<10000000;i++){ z[i]=x[i]+y[i]; }}","add.c")system("RCMDSHLIBadd.c")dyn.load(sprintf(“add%s”,.Platform$dynlib.ext))#加載system.time(.C(“add”,x,y,z)[[3]])#.C函數(shù)用來(lái)執(zhí)行dyn.unload("add.dll")R語(yǔ)言的并行計(jì)算方式P151允許在多核單機(jī)或者是集群上,利用mpi,socket等消息傳遞進(jìn)行并行snowfall基于MPI,即信息傳遞接口進(jìn)行并行信息傳遞Rmpi通過(guò)類似lapply()將任務(wù)進(jìn)行拆分,自動(dòng)的分配到不同的cpu進(jìn)行計(jì)算中Multicore并行計(jì)算P152GPU計(jì)算P153小結(jié)R語(yǔ)言特點(diǎn):R中一些函數(shù)命令用C語(yǔ)言編寫(xiě),編譯型,可用機(jī)器代碼快速運(yùn)行。但對(duì)于有些函數(shù),包括自編代碼,是用純粹的R語(yǔ)言編寫(xiě),是解釋型。R的會(huì)話中所有對(duì)象保存在內(nèi)存中,一些大對(duì)象使用受限。R語(yǔ)言性能提升:通過(guò)向量化方式優(yōu)化代碼將消耗資源部分用編譯型語(yǔ)言編寫(xiě)(如C)并行方式編寫(xiě)并運(yùn)行使用GPU加速思考與討論應(yīng)用拓展R語(yǔ)言與數(shù)學(xué)R語(yǔ)言應(yīng)用拓展時(shí)間序列分析關(guān)聯(lián)規(guī)則分析R與Spark的結(jié)合目錄R語(yǔ)言與數(shù)學(xué)大數(shù)據(jù)具備的特征:不是隨機(jī)樣本,而是全體數(shù)據(jù)不是精確性,而是混雜性不是因果關(guān)系,而是相關(guān)關(guān)系大數(shù)據(jù)時(shí)代在大數(shù)據(jù)的研究和應(yīng)用中,數(shù)學(xué)是其堅(jiān)實(shí)的理論基礎(chǔ)。在數(shù)據(jù)預(yù)處理、分析與建模、模型評(píng)價(jià)與優(yōu)化等過(guò)程中,數(shù)學(xué)方法扮演著至關(guān)重要的角色。微積分、統(tǒng)計(jì)學(xué)、線性代數(shù)、數(shù)值計(jì)算、多元統(tǒng)計(jì)分析…數(shù)學(xué)在大數(shù)據(jù)領(lǐng)域的作用微積分是研究變化規(guī)律的方法。微積分是整個(gè)近代數(shù)學(xué)的基礎(chǔ)。微積分的基礎(chǔ)—極限論,在概率論中運(yùn)用廣泛。隨機(jī)變量的數(shù)字特征、概率密度與分布函數(shù)的關(guān)系、連續(xù)型隨機(jī)變量的計(jì)算等等,是微積分現(xiàn)有成果的直接應(yīng)用。數(shù)學(xué)—微積分統(tǒng)計(jì)學(xué)是一門基于數(shù)據(jù)的科學(xué),是一種研究數(shù)據(jù)搜集、整理、分析與應(yīng)用的方式和方法。數(shù)據(jù)需要通過(guò)統(tǒng)計(jì)的方法和原理來(lái)整理和分析,這樣的數(shù)據(jù)在精確度和適用度方面才會(huì)有較高的提升,才會(huì)實(shí)現(xiàn)數(shù)據(jù)的真正價(jià)值。大數(shù)據(jù)的分析與挖掘等工作,從數(shù)據(jù)預(yù)處理開(kāi)始,至建模得出結(jié)論,無(wú)不存在著統(tǒng)計(jì)學(xué)的身影。數(shù)學(xué)—統(tǒng)計(jì)學(xué)線性代數(shù)領(lǐng)域的矩陣、秩、向量、正交矩陣、向量空間、特征值與特征向量等概念在大數(shù)據(jù)分析、建模中發(fā)揮著巨大的作用。在大數(shù)據(jù)中,許多應(yīng)用場(chǎng)景的分析對(duì)象都可以抽象表示為矩陣。矩陣代表了某種變換或映射,以矩陣為基礎(chǔ)的各種運(yùn)算,是分析對(duì)象、特征提取的重要途徑。數(shù)學(xué)—線性代數(shù)數(shù)值計(jì)算主要研究如何利用計(jì)算機(jī)更好解決各種數(shù)學(xué)問(wèn)題。數(shù)值計(jì)算是求解工程實(shí)際問(wèn)題的重要方法之一,隨著工程問(wèn)題規(guī)模的不斷增大,相比理論研究和實(shí)驗(yàn)研究,其實(shí)用價(jià)值更大。在大數(shù)據(jù)時(shí)代的背景下,數(shù)據(jù)分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等算法中常見(jiàn)的插值、數(shù)值逼近、非線性方程求解等,都屬于數(shù)值計(jì)算的范疇,數(shù)值運(yùn)算幾乎涵蓋了所有涉及復(fù)雜數(shù)學(xué)運(yùn)算的計(jì)算機(jī)程序。數(shù)學(xué)—數(shù)值計(jì)算多元統(tǒng)計(jì)分析,是數(shù)理統(tǒng)計(jì)學(xué)中的一個(gè)重要的分支學(xué)科,是一種綜合分析方法。多元分析在大數(shù)據(jù)分析中有非常廣泛的應(yīng)用,能夠在多個(gè)對(duì)象和多個(gè)指標(biāo)互相關(guān)聯(lián)的情況下,分析它們的統(tǒng)計(jì)規(guī)律。多元分析的主要內(nèi)容包括回歸分析、判別分析、聚類分析、主成分分析(PCA)、因子分析、典型相關(guān)分析等,這些分析方法在大數(shù)據(jù)領(lǐng)域都有著非常廣泛的應(yīng)用。數(shù)學(xué)—多元統(tǒng)計(jì)分析數(shù)學(xué)思維:理性、客觀統(tǒng)計(jì)思維:描述、概括、分析邏輯思維:概念、判斷、推理、比較、分析、綜合、抽象、概括計(jì)算思維:泛化、分解、抽象、算法、調(diào)試、迭代工程思維:系統(tǒng)、具體、限制……數(shù)據(jù)科學(xué)中的思維觀166時(shí)間序列分析時(shí)間序列分析模型時(shí)間序列分解模型ARIMA模型時(shí)間序列分析與R語(yǔ)言實(shí)現(xiàn)實(shí)驗(yàn)案例目錄統(tǒng)計(jì)數(shù)據(jù)的分類橫截面(crosssection)數(shù)據(jù):和時(shí)間無(wú)關(guān),不同對(duì)象觀測(cè)值組成的數(shù)據(jù)時(shí)間序列(timeseries)數(shù)據(jù):不同時(shí)間的對(duì)象觀測(cè)值形成的數(shù)據(jù)時(shí)間序列分析目的:找尋變化發(fā)展的規(guī)律,預(yù)測(cè)將來(lái)走勢(shì)方法:用過(guò)去的觀測(cè)值來(lái)預(yù)測(cè)同一變量的未來(lái)值,即時(shí)間序列分析的因變量為變量未來(lái)的可能值,自變量是包含該變量的一系列歷史觀測(cè)值常用模型:時(shí)間序列分解模型、AR、MA、ARMA、ARIMA…時(shí)間序列分析時(shí)間序列數(shù)據(jù)
某地從1995年1月到2005年7月的稅收(單位:萬(wàn)元)。該數(shù)據(jù)按照時(shí)間順序按月記錄,共127個(gè)觀測(cè)值。特點(diǎn):總增長(zhǎng)趨勢(shì),但增長(zhǎng)并不是單調(diào)上升的,有漲有落。升降和季節(jié)或月份的周期有關(guān)系。除增長(zhǎng)趨勢(shì)和季節(jié)影響之外,還有些無(wú)規(guī)律的隨機(jī)因素的作用。時(shí)間序列的構(gòu)成因素在觀測(cè)量變化發(fā)展過(guò)程中,每一時(shí)期都受到各種因素的影響,包括:趨勢(shì)變動(dòng)影響因素,季節(jié)變動(dòng)影響因素,周期(循環(huán))變動(dòng)影響因素,和隨機(jī)不規(guī)則變動(dòng)影響因素。時(shí)間序列預(yù)測(cè)值是這些因素共同作用的結(jié)果。長(zhǎng)期趨勢(shì)變動(dòng)(T)指時(shí)間序列在一個(gè)相當(dāng)長(zhǎng)時(shí)期內(nèi)持續(xù)發(fā)展變化的總趨勢(shì)。季節(jié)變動(dòng)(S)由于季節(jié)的更換而引起時(shí)間序列按一定的季節(jié)更替而呈現(xiàn)周期性的明顯變化。周期循環(huán)變動(dòng)(C)指時(shí)間序列出現(xiàn)以若干年為周期的漲落起伏的波動(dòng)變化。隨機(jī)變動(dòng)(I)由于臨時(shí)性、偶然性的因素引起時(shí)間序列的非周期性或趨勢(shì)性的隨機(jī)變動(dòng)。加法模型和乘法模型(1)乘法模型:假定四種因素存在著某種相互影響關(guān)系,總變動(dòng)是各影響因素相乘之積,適用于相對(duì)數(shù)時(shí)間序列總變動(dòng)的計(jì)算
Y=T·S·C·I(2)加法模型:假定四種變動(dòng)因素是互相獨(dú)立的,總變動(dòng)是各個(gè)影響因素相加的總和,適用于總量指標(biāo)總變動(dòng)的計(jì)算
Y=T+S+C+I(xiàn)時(shí)間序列的分解分析時(shí)間序列的分解,是將各種變動(dòng)因素的具體數(shù)值測(cè)定出來(lái),更好認(rèn)識(shí)和掌握現(xiàn)象變化發(fā)展的規(guī)律性。Y—?jiǎng)討B(tài)總變動(dòng)T—長(zhǎng)期趨勢(shì)變動(dòng)S—季節(jié)變動(dòng)C—周期循環(huán)變動(dòng)I—隨機(jī)不規(guī)則變動(dòng)例如:含有T、S和I乘法模型:Y=T·S·I
加法模型:Y=T+S+I1.先分析和測(cè)定現(xiàn)象變動(dòng)的長(zhǎng)期趨勢(shì),求出T2.然后消除序列中包含的趨勢(shì)值T乘法模型:Y/T=S·I
加法模型:Y-T=S+I3.對(duì)上一步結(jié)果進(jìn)行分析,消除隨機(jī)變動(dòng)的影響,得到季節(jié)變動(dòng)的測(cè)定值S時(shí)間序列的分解分析測(cè)定長(zhǎng)期趨勢(shì)(T)的主要方法:時(shí)距擴(kuò)大法、移動(dòng)平均法、數(shù)學(xué)模型法等時(shí)距擴(kuò)大法:對(duì)原來(lái)時(shí)距較短的時(shí)間序列,變化為時(shí)距較長(zhǎng)的時(shí)間序列,以消除原序列因時(shí)距過(guò)短受偶然因素和季節(jié)變動(dòng)影響所引起的波動(dòng),使現(xiàn)象的發(fā)展趨勢(shì)和規(guī)律性明顯地表現(xiàn)出來(lái)移動(dòng)平均法:將時(shí)間數(shù)列的時(shí)距擴(kuò)大,在數(shù)列中按一定項(xiàng)數(shù)逐項(xiàng)移動(dòng)計(jì)算平均數(shù),達(dá)到對(duì)原始數(shù)列進(jìn)行修勻的目的,從而形成一個(gè)趨勢(shì)值時(shí)間數(shù)列。以消除偶然因素的影響,顯示出現(xiàn)象發(fā)展的趨勢(shì)數(shù)學(xué)模型法:用適當(dāng)?shù)臄?shù)學(xué)模型對(duì)時(shí)間序列進(jìn)行分析修勻的方法,測(cè)定長(zhǎng)期趨勢(shì)廣泛使用這種方法長(zhǎng)期趨勢(shì)(T)分析測(cè)定長(zhǎng)期趨勢(shì)(T)的主要方法有:時(shí)距擴(kuò)大法、移動(dòng)平均法、數(shù)學(xué)模型法等時(shí)距擴(kuò)大法長(zhǎng)期趨勢(shì)(T)分析測(cè)定長(zhǎng)期趨勢(shì)(T)的主要方法有:時(shí)距擴(kuò)大法、移動(dòng)平均法、數(shù)學(xué)模型法等移動(dòng)平均法長(zhǎng)期趨勢(shì)(T)分析
—時(shí)間序列的趨勢(shì)值
t—時(shí)間
a—趨勢(shì)線在Y軸上的截距
b—趨勢(shì)線的斜率表示時(shí)間t變動(dòng)一個(gè)單位時(shí)觀察值的平均變動(dòng)數(shù)量測(cè)定長(zhǎng)期趨勢(shì)(T)的主要方法有:時(shí)距擴(kuò)大法、移動(dòng)平均法、數(shù)學(xué)模型法等數(shù)學(xué)模型法以線性趨勢(shì)擬合為例:長(zhǎng)期趨勢(shì)(T)分析季節(jié)指數(shù)描述時(shí)間序列在一個(gè)年度內(nèi)各月或季的典型季節(jié)特征季節(jié)變動(dòng)的程度是根據(jù)各季節(jié)指數(shù)與其平均數(shù)(100%)的偏差程度來(lái)測(cè)定,如果沒(méi)有季節(jié)變動(dòng),則各期的季節(jié)指數(shù)應(yīng)等于100%,如果某月份或季度有明顯的季節(jié)變化,則季節(jié)指數(shù)應(yīng)大于或小于100%季節(jié)指數(shù)的計(jì)算-方法1計(jì)算移動(dòng)平均值
中心化移動(dòng)平均值(CMA)計(jì)算移動(dòng)平均的比值
季節(jié)比率季節(jié)指數(shù)調(diào)整
季節(jié)比率的平均值除以它們的總平均值季節(jié)變動(dòng)(S)分析【例】下表是一家啤酒生產(chǎn)企業(yè)1997~2002年各季度的啤酒銷售量數(shù)據(jù)。試計(jì)算各季的季節(jié)指數(shù)季節(jié)指數(shù)(例題分析)1CMA=((25+32+37+26)/4+(32+37+26+30)/4)/2=30.625Y/CMA=37/30.625=1.20822季節(jié)指數(shù)=0.7893/((0.7893+1.0385+1.2704+0.8869)/4)=0.79223季節(jié)指數(shù)的計(jì)算-方法2計(jì)算出各年同月(季)的平均水平計(jì)算各年所有月(季)的總平均水平季節(jié)比率季節(jié)指數(shù)調(diào)整:各季節(jié)指數(shù)的平均數(shù)應(yīng)等于1或100%,若不則需要進(jìn)行調(diào)整,具體方法是:將每個(gè)季節(jié)比率的平均值除以總平均值季節(jié)變動(dòng)(S)分析周期性變動(dòng)特點(diǎn)近乎規(guī)律性的從低至高、再?gòu)母咧恋偷闹芏鴱?fù)始的變動(dòng)不同于趨勢(shì)變動(dòng),它不是朝著單一方向的持續(xù)運(yùn)動(dòng),而是漲落相間的交替波動(dòng)不同于季節(jié)變動(dòng),其變化無(wú)固定規(guī)律,變動(dòng)周期多在一年以上,且常與不規(guī)則波動(dòng)交織在一起,很難單獨(dú)加以描述和分析
周期波動(dòng)C=MA(C×I)周期循環(huán)變動(dòng)(C)分析移動(dòng)平均(MA)
以消除不規(guī)則波動(dòng)周期性分析(例題分析)
時(shí)間序列的分解模型:乘法模型,加法模型小結(jié)長(zhǎng)期趨勢(shì)變動(dòng)(T)時(shí)距擴(kuò)大法、移動(dòng)平均法、數(shù)學(xué)模型法季節(jié)變動(dòng)(S)計(jì)算季節(jié)指數(shù):移動(dòng)平均值
季節(jié)比值
季節(jié)指數(shù)周期循環(huán)變動(dòng)(C)剩余法隨機(jī)不規(guī)則變動(dòng)(I)移動(dòng)平均時(shí)間序列分析:ARIMA模型對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行分析和預(yù)測(cè)比較完善和精確的算法是博克思-詹金斯(Box-Jenkins)方法,其常用模型包括:自回歸模型(AR模型)、滑動(dòng)平均模型(MA模型)、自回歸-滑動(dòng)平均混合模型(ARMA模型)、差分整合滑動(dòng)平均自回歸模型(ARIMA模型)ARIMA:AutoregressiveIntegratedMovingAveragemodel
ARIMA(p,d,q):p為自回歸項(xiàng)數(shù),q為滑動(dòng)平均項(xiàng)數(shù),d為使之成為平穩(wěn)序列所做的差分次數(shù)(階數(shù))ARIMA模型ARIMA模型建模過(guò)程ARIMA模型建模過(guò)程平穩(wěn)性檢驗(yàn):若存在增長(zhǎng)或下降趨勢(shì),需要進(jìn)行差分處理,進(jìn)行平穩(wěn)性檢驗(yàn)直至平穩(wěn)為止,確定差分的階數(shù)d白噪聲檢驗(yàn):白噪聲是獨(dú)立分布的正態(tài)序列,無(wú)相關(guān)性,無(wú)趨勢(shì)性,有隨機(jī)性。白噪聲序列說(shuō)明時(shí)間序列中有用的信息已經(jīng)被提取完,剩下的全是隨機(jī)擾動(dòng),白噪聲沒(méi)有研究的意義,建模終止確定參數(shù):通過(guò)自相關(guān)系數(shù)ACF圖、偏自相關(guān)系數(shù)PAC圖,AIC準(zhǔn)則(赤道信息量準(zhǔn)則)和BIC準(zhǔn)則(貝葉斯準(zhǔn)則)等相結(jié)合的方式,確定模型的階數(shù)p和qARIMA(p,d,q)差分整合滑動(dòng)平均自回歸模型p為自回歸項(xiàng)數(shù)q為滑動(dòng)平均項(xiàng)數(shù)d為差分次數(shù)(階數(shù))常用時(shí)間序列模型在R中,使用時(shí)間序列建模前需要先將數(shù)據(jù)存儲(chǔ)到一個(gè)時(shí)間序列對(duì)象中使用函數(shù)ts()將數(shù)值類型的觀測(cè)對(duì)象存儲(chǔ)為時(shí)間序列對(duì)象ts(data=NA,start=1,end=numeric(),frequency=1,…)
其中:data:時(shí)間序列觀測(cè)值對(duì)象,必須為數(shù)值類型的向量、矩陣或數(shù)據(jù)框 start:指定時(shí)間序列觀測(cè)值對(duì)象的第一個(gè)時(shí)間點(diǎn),如2000年1月為start=c(2000,1) end:指定時(shí)間序列的終止時(shí)間點(diǎn) frequency:指定數(shù)據(jù)在一年中的頻數(shù)
R語(yǔ)言中的時(shí)間序列對(duì)象函數(shù)ts()、as.ts()將對(duì)象轉(zhuǎn)換成時(shí)間序列函數(shù)is.ts()
判斷是否為時(shí)間序列函數(shù)plot.ts()繪制圖形(1)自相關(guān)性檢驗(yàn)自相關(guān)圖中的兩條虛線標(biāo)示置信界限是自相關(guān)系數(shù)的上下界。如果自相關(guān)系迅速衰減落入置信區(qū)間內(nèi),就可能是白噪聲;如果自相關(guān)系數(shù)超出置信區(qū)間,那么表示存在相關(guān)關(guān)系,而且從哪一階落在置信區(qū)間內(nèi),就表示自相關(guān)的階數(shù)是幾階。acf(x,lag.max=NULL,type=c(correlation,covariance,partial)
acf()為觀測(cè)值序列自相關(guān)函數(shù)。參數(shù)x為觀測(cè)值序列,lag.max為與acf對(duì)應(yīng)的最大延遲,type為計(jì)算acf的形式,默認(rèn)為correlation。當(dāng)沒(méi)有輸出,即為acf(Series)時(shí),畫(huà)觀測(cè)值序列的自相關(guān)系數(shù)圖。pacf(x,lag.max,plot,na.action,…)
pacf()為偏自相關(guān)函數(shù)。輸入?yún)?shù)與輸出參數(shù)的含義同acf()函數(shù)的類似。在acf()和pacf()中設(shè)定plot=FALSE可以得到自相關(guān)和偏自相關(guān)的真實(shí)值。時(shí)間序列檢驗(yàn)分析時(shí)序圖顯示該序列具有明顯的單調(diào)遞增趨勢(shì),可以判斷為是非平穩(wěn)序列;自相關(guān)圖顯示自相關(guān)系數(shù)長(zhǎng)期大于零,說(shuō)明序列間具有很強(qiáng)的長(zhǎng)期相關(guān)性,可以判斷為非平穩(wěn)序列;時(shí)間序列檢驗(yàn)分析原始序列時(shí)序圖原始序列的自相關(guān)圖平穩(wěn)性檢驗(yàn)通常使用單位根檢驗(yàn)的方法。在R中,使用fUnitRoots包中的unitrootTest()函數(shù)實(shí)現(xiàn)單位根檢驗(yàn):
unitrootTest(x,lags=,type=,title=...)時(shí)間序列檢驗(yàn)分析對(duì)于非平穩(wěn)時(shí)間序列,需要進(jìn)行差分得到平穩(wěn)時(shí)間序列。在R軟件中,可以使用diff()函數(shù)對(duì)時(shí)間序列進(jìn)行差分運(yùn)算:diff(x,lag=,diff
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海報(bào)設(shè)計(jì)合同模板
- 家庭雇傭保姆合同樣式參考
- 2024獨(dú)家原創(chuàng)企業(yè)績(jī)效合同簽定儀式領(lǐng)導(dǎo)講話稿
- 2024租賃辦公室合同范本
- 個(gè)人教育助學(xué)貸款
- 購(gòu)房借款協(xié)議2024年
- 籃球訓(xùn)練合作協(xié)議范本
- 房產(chǎn)代理合同租賃
- 個(gè)人消費(fèi)借款合同范本
- 提升機(jī)租賃合同樣本格式
- 數(shù)據(jù)分析師歷年考試真題試題庫(kù)(含答案)
- 心房顫動(dòng)與認(rèn)知功能障礙發(fā)生機(jī)制研究進(jìn)展
- 2024年全國(guó)教育大會(huì)精神全文課件
- 2024年江蘇省高考化學(xué)試卷(含答案解析)
- 廣東省珠海市2023-2024學(xué)年六年級(jí)上學(xué)期數(shù)學(xué)期中試卷(含答案)
- 2024~2025學(xué)年高二地理期中考試模擬試卷【人教版選擇性必修一第一至三章】
- 2023年中國(guó)鐵塔招聘考試真題
- 人教版(2024新版)七年級(jí)上冊(cè)英語(yǔ)Unit 3 單元測(cè)試卷(筆試部分)(含答案)
- 江蘇省南京市六校聯(lián)考2024-2025學(xué)年高一上學(xué)期期中考試英語(yǔ)試卷(含答案含聽(tīng)力原文無(wú)音頻)
- 2024年海南省發(fā)展控股限公司子公司招聘11人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 小學(xué)心理健康教育課件《放飛煩惱-擁抱快樂(lè)》
評(píng)論
0/150
提交評(píng)論