10種機(jī)器學(xué)習(xí)算法的要點(diǎn)_第1頁
10種機(jī)器學(xué)習(xí)算法的要點(diǎn)_第2頁
10種機(jī)器學(xué)習(xí)算法的要點(diǎn)_第3頁
10種機(jī)器學(xué)習(xí)算法的要點(diǎn)_第4頁
10種機(jī)器學(xué)習(xí)算法的要點(diǎn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、廣義來說,有三種機(jī)器學(xué)習(xí)算法1、監(jiān)督式學(xué)習(xí)工作機(jī)制:這個(gè)算法由一個(gè)目標(biāo)變量或結(jié)果變量(或因變量)組成。這些變量由已知的一系列預(yù)示變量(自變量)預(yù)測(cè)而來。利用這一系列變量,我們生成一個(gè)將輸入值映射到期望輸出值的函數(shù)。這個(gè)訓(xùn)練過程會(huì)一直持續(xù),直到模型在訓(xùn)練數(shù)據(jù)上獲得期望的精確度。監(jiān)督式學(xué)習(xí)的例子有:回歸、決策樹、隨機(jī)森林、K-近鄰算法、邏輯回歸等。2、非監(jiān)督式學(xué)習(xí)工作機(jī)制:在這個(gè)算法中,沒有任何目標(biāo)變量或結(jié)果變量要預(yù)測(cè)或估計(jì)。這個(gè)算法用在不同的組內(nèi)聚類分析。這種分析方式被廣泛地用來細(xì)分客戶,根據(jù)干預(yù)的方式分為不同的用戶組。非監(jiān)督式學(xué)習(xí)的例子有:關(guān)聯(lián)算法和K-均值算法。3、強(qiáng)化學(xué)習(xí)工作機(jī)制:這個(gè)算法

2、訓(xùn)練機(jī)器進(jìn)行決策。它是這樣工作的:機(jī)器被放在一個(gè)能讓它通過反復(fù)試錯(cuò)來訓(xùn)練自己的環(huán)境中。機(jī)器從過去的經(jīng)驗(yàn)中進(jìn)行學(xué)習(xí),并且嘗試?yán)昧私庾钔笍氐闹R(shí)作出精確的商業(yè)判斷。強(qiáng)化學(xué)習(xí)的例子有馬爾可夫決策過程。常見機(jī)器學(xué)習(xí)算法名單這里是一個(gè)常用的機(jī)器學(xué)習(xí)算法名單。這些算法幾乎可以用在所有的數(shù)據(jù)問題上:1 .線性回歸2 .邏輯回歸3 .決策樹4 .SVM5 .樸素貝葉斯6 .K最近鄰算法7 .K均值算法8 .隨機(jī)森林算法9 .降維算法10 .GradientBoost和Adaboost算法1、線性回歸線性回歸通常用于根據(jù)連續(xù)變量估計(jì)實(shí)際數(shù)值(房?jī)r(jià)、呼叫次數(shù)、總銷售額等)。我們通過擬合最佳直線來建立自變量和因變

3、量的關(guān)系。這條最佳直線叫做回歸線,并且用Y=a*X+b這條線性等式來表示。理解線性回歸的最好辦法是回顧一下童年。假設(shè)在不問對(duì)方體重的情況下,讓一個(gè)五年級(jí)的孩子按體重從輕到重的順序?qū)Π嗌系耐瑢W(xué)排序,你覺得這個(gè)孩子會(huì)怎么做?他(她)很可能會(huì)目測(cè)人們的身高和體型,綜合這些可見的參數(shù)來排列他們。這是現(xiàn)實(shí)生活中使用線性回歸的例子。實(shí)際上,這個(gè)孩子發(fā)現(xiàn)了身高和體型與體重有一定的關(guān)系,這個(gè)關(guān)系看起來很像上面的等式。在這個(gè)等式中: Y:因變量 a:斜率 x:自變量 b:截距系數(shù)a和b可以通過最小二乘法獲得。參見下例。我們找出最佳擬合直線y=0.2811x+13.9。已知人的身高,我們可以通過這條等式求出體重。

4、一眼1050505050877665544RdatianB/wWeight&Heighty-0.2811k+L3,»R2=0.4218Height(crn|O線性回歸的兩種主要類型是一元線性回歸和多元線性回歸。一元線性回歸的特點(diǎn)是只有一個(gè)自變量。多元線性回歸的特點(diǎn)正如其名,存在多個(gè)自變量。找最佳擬合直線的時(shí)候,你可以擬合到多項(xiàng)或者曲線回歸。這些就被叫做多項(xiàng)或曲線回歸。Python代碼1 #ImportLibrary2 #Importothernecessarylibrarieslikepandas,numpy.3 fromsklearnimportlinear_model45

5、 #LoadTrainandTestdatasets6 #Identifyfeatureandresponsevariable(s)andvaluesmustbenumeric7 andnumpyarrays8 x_train=input_variables_values_training_datasets9 y_train=target_variables_values_training_datasets10x_test=input_variables_values_test_datasets1112#Createlinearregressionobject13linear=linear_m

6、odel.LinearRegression()1415#Trainthemodelusingthetrainingsetsandcheckscore16linear.fit(x_train,y_train)17linear.score(x_train,y_train)1819#EquationcoefficientandIntercept20print('Coefficient:n',linear.coef_)21print('Intercept:n',ercept_)2223#PredictOutputpredicted=linear.pr

7、edict(x_test)R代碼1234567#LoadTrainandTestdatasets#Identifyfeatureandresponsevariable(s)andvaluesmustbenumericandnumpyarraysx_train<-input_variables_values_training_datasetsy_train<-target_variables_values_training_datasetsx_test<-input_variables_values_test_datasets891011x<-cbind(x_train,

8、y_train)1213#Trainthemodelusingthetrainingsetsandcheckscorelinear<-lm(y_train.,data=x)summary(linear)#PredictOutputpredicted=predict(linear,x_test)2、邏輯回歸別被它的名字迷惑了!這是一個(gè)分類算法而不是一個(gè)回歸算法。該算法可根據(jù)已知的一系列因變量估計(jì)離散數(shù)值(比方說二進(jìn)制數(shù)值0或1,是或否,真或假)簡(jiǎn)單來說,它通過將數(shù)據(jù)擬合進(jìn)一個(gè)邏輯函數(shù)來預(yù)估一個(gè)事件出現(xiàn)的概率。因此,它也被叫做邏輯回歸。因?yàn)樗A(yù)估的是概率,所以它的輸出值大小在0和1之問(正如

9、所預(yù)計(jì)的一樣)。讓我們?cè)俅瓮ㄟ^一個(gè)簡(jiǎn)單的例子來理解這個(gè)算法。假設(shè)你的朋友讓你解開一個(gè)謎題。這只會(huì)有兩個(gè)結(jié)果:你解開了或是你沒有解開。想象你要解答很多道題來找出你所擅長(zhǎng)的主題。這個(gè)研究的結(jié)果就會(huì)像是這樣:假設(shè)題目是一道十年級(jí)的三角函數(shù)題,你有70%的可能會(huì)解開這道題。然而,若題目是個(gè)五年級(jí)的歷史題,你只有30%勺可能性回答正確。這就是邏輯回歸能提供給你的信息。從數(shù)學(xué)上看,在結(jié)果中,幾率的對(duì)數(shù)使用的是預(yù)測(cè)變量的線性組合模型。10dds=p/(1-p)=probabilityofeventoccurrence/probabilityofnot_eventoccurrence31n(odds)=ln(

10、p/(1-p)3logit(p)=ln(p/(1-p)=b0+b1X1+b2X2+b3X3.+bkXk在上面的式子里,p是我們感興趣的特征出現(xiàn)的概率。它選用使觀察樣本值的可能性最大化的值作為參數(shù),而不是通過計(jì)算誤差平方和的最小值(就如一般的回歸分析用到的一樣)?,F(xiàn)在你也許要問了,為什么我們要求出對(duì)數(shù)呢?簡(jiǎn)而言之,這種方法是復(fù)制一個(gè)階梯函數(shù)的最佳方法之一。我本可以更詳細(xì)地講述,但那就違背本篇指南的主旨了。IO0246810Ei二g£Python代碼123456#ImportLibraryfromsklearn.linear_modelimportLogisticRegression#A

11、ssumedyouhave,X(predictor)andY(target)fortrainingdatasetandx_test(predictor)oftest_dataset# Createlogisticregressionobject78910model=LogisticRegression()# Trainthemodelusingthetrainingsetsandcheckscoremodel.fit(X,y)model.score(X,y)11“12#EquationcoefficientandIntercept13print('Coefficient:n',

12、model.coef_)14print('Intercept:n',ercept_)15八16#PredictOutputpredicted=model.predict(x_test)R代碼1x<-cbind(x_train,y_train)2#Trainthemodelusingthetrainingsetsandcheckscore3logistic<-glm(y_train.,data=x,family='binomial')4summary(logistic)56#PredictOutput7predicted=predic

13、t(logistic,x_test)更進(jìn)一步:你可以嘗試更多的方法來改進(jìn)這個(gè)模型: 加入交互項(xiàng) 精簡(jiǎn)模型特性 使用正則化方法 使用非線性模型3、決策樹白u(yù)nn:|Play1PlayHUMIDITY?/、<=70/51r1Don'tPlay3115/8jPlay131Don'tPlay9JOUTLOOK?,overcastrain*、"IPlay4Ij刊.bl1DoniPlay1Pl,2J4乃WINDV?>70TRUE/FALSE、/、Play111Play01Play3Don'tBld/:S11Don'tPlay£Don'

14、tPtny03/4score;2/23/3Dependentvariable;PLAY這是我最喜愛也是最頻繁使用的算法之一。這個(gè)監(jiān)督式學(xué)習(xí)算法通常被用于分類問題。令人驚奇的是,它同時(shí)適用于分類變量和連續(xù)因變量。在這個(gè)算法中,我們將總體分成兩個(gè)或更多的同類群。這是根據(jù)最重要的屬性或者自變量來分成盡可能不同的組別。想要知道更多,可以閱讀:簡(jiǎn)化決策樹。來源:statsexchange在上圖中你可以看到,根據(jù)多種屬性,人群被分成了不同的四個(gè)小組,來判斷“他們會(huì)不會(huì)去玩”。為了把總體分成不同組別,需要用到許多技術(shù),比如說Gini、InformationGain、Chi-square、entropy。理解

15、決策樹工作機(jī)制的最好方式是玩Jezzball,一個(gè)微軟的經(jīng)典游戲(見下圖)。這個(gè)游戲的最終目的,是在一個(gè)可以移動(dòng)墻壁的房間里,通過造墻來分割出沒有小球的、盡量大的空間。3456789101112131415#PredictOutput因此,每一次你用墻壁來分隔房間時(shí),都是在嘗試著在同一間房里創(chuàng)建兩個(gè)不同的總體。相似地,決策樹也在把總體盡量分割到不同的組里去。更多信息請(qǐng)見:決策樹算法的簡(jiǎn)化Python代碼#ImportLibrary1 #Importothernecessarylibrarieslikepandas,numpy.2 fromsklearnimporttree#Assumedyou

16、have,X(predictor)andY(target)fortrainingdatasetandx_test(predictor)oftest_dataset# Createtreeobjectmodel=tree.DecisionTreeClassifier(criterion='gini')#forclassification,hereyoucanchangethealgorithmasginiorentropy(informationgain)bydefaultitisgini# model=tree.DecisionTreeRegressor()forregress

17、ion# Trainthemodelusingthetrainingsetsandcheckscoremodel.fit(X,y)model.score(X,y)predicted=model.predict(x_test)R代碼llibrary(rpart)2x<-cblnd(x_traln,y_traln)34#growtree5flt<-rpart(y_train.,data=x,method="class")6summary(fit)78#PredIctOutput9predicted=predict(fit,x_test)4、支持向量機(jī)這是一種分類方法

18、。在這個(gè)算法中,我們將每個(gè)數(shù)據(jù)在N維空間中用點(diǎn)標(biāo)出(N是你所有的特征總數(shù)),每個(gè)特征的值是一個(gè)坐標(biāo)的值。舉個(gè)例子,如果我們只有身高和頭發(fā)長(zhǎng)度兩個(gè)特征,我們會(huì)在二維空間中標(biāo)出這兩個(gè)變量,每個(gè)點(diǎn)有兩個(gè)坐標(biāo)(這些坐標(biāo)叫做支持向量)。SOHeightms)19020C現(xiàn)在,我們會(huì)找到將兩組不同數(shù)據(jù)分開的一條直線。兩個(gè)分組中距離最近的兩個(gè)點(diǎn)到這條線的距離同時(shí)最優(yōu)化。皿券曲4D如上>"一上面示例中的黑線將數(shù)據(jù)分類優(yōu)化成兩個(gè)小組,兩組中距離最近的點(diǎn)(圖中A、B點(diǎn))到達(dá)黑線的距離滿足最優(yōu)條件。這條直線就是我們的分割線。接下來,測(cè)試數(shù)據(jù)落到直線的哪一邊,我們就將它分到哪

19、一類去。更多請(qǐng)見:支持向量機(jī)的簡(jiǎn)化將這個(gè)算法想作是在一個(gè)N維空間玩JezzBall。需要對(duì)游戲做一些小變動(dòng): 比起之前只能在水平方向或者豎直方向畫直線,現(xiàn)在你可以在任意角度畫線或平面。 游戲的目的變成把不同顏色的球分割在不同的空間里。 球的位置不會(huì)改變。Python代碼#ImportLibrary1 fromsklearnimportsvm23 #Assumedyouhave,X(predic4 tor)andY(target)fortrainingdatasetandx_test(predictor)of5 test_dataset6 #CreateSVMclassificationobje

20、ct7 model=svm.svc()#thereisvariousoptionassociatedwithit,this8 issimpleforclassification.Youcanreferlink,formo#redetail.9 #Trainthemodelusingthetrainingsetsandcheckscore10model.fit(X,y)11model.score(X,y)1213#PredictOutputpredicted=model.predict(xtest)R代碼1library(e1071)2x<-cbind(x_train,y_train)34

21、#Fittingmodel5fit<-svm(y_train.,data=x)6summary(fit)78#PredictOutput9predicted=predict(fit,x_test)5、樸素貝葉斯在預(yù)示變量間相互獨(dú)立的前提下,根據(jù)貝葉斯定理可以得到樸素貝葉斯這個(gè)分類方法。用更簡(jiǎn)單的話來說,一個(gè)樸素貝葉斯分類器假設(shè)一個(gè)分類的特性與該分類的其它特性不相關(guān)。舉個(gè)例子,如果一個(gè)水果又圓又紅并且直徑大約是3英寸,那么這個(gè)水果可能會(huì)是蘋果。即使這些特性互相依賴或者依賴于別的特性的存在,樸素貝葉斯分類器還是會(huì)假設(shè)這些特性分別獨(dú)立地暗示這個(gè)水果是個(gè)蘋果。樸素貝葉斯模型易于建造,且對(duì)于大型數(shù)

22、據(jù)集非常有用。雖然簡(jiǎn)單,但是樸素貝葉斯的表現(xiàn)卻超越了非常復(fù)雜的分類方法。貝葉斯定理提供了一種從P(c)、P(x)和P(x|c)計(jì)算后驗(yàn)概率P(c|x)的方法。請(qǐng)看以下等式:CtelbPrwftf9值6*>flitviihood巴uX)尸Gil號(hào)七代叼|嘮-p(,同MEd)在這里, P(c|x)是已知預(yù)示變量(屬性)的前提下,類(目標(biāo))的后驗(yàn)概率 P(c)是類的先驗(yàn)概率 P(x|c)是可能性,即已知類的前提下,預(yù)示變量的概率 P(x)是預(yù)示變量的先驗(yàn)概率例子:讓我們用一個(gè)例子來理解這個(gè)概念。在下面,我有一個(gè)天氣的訓(xùn)練集和對(duì)應(yīng)的目標(biāo)變量“Play”。現(xiàn)在,我們需要根據(jù)天氣情況,將會(huì)“玩”和“

23、不玩”的參與者進(jìn)行分類。讓我們執(zhí)行以下步驟。步驟1:把數(shù)據(jù)集轉(zhuǎn)換成頻率表。步驟2:利用類似“當(dāng)Overcast可能性為0.29時(shí),玩耍的可能性為0.64”這樣的概率,創(chuàng)造Likelihood表格。PkY我”,ND心口3:E*怛Sunny江&TfesNORiinyNo!5unnyRainyN-?!鞍卩═/es.HaEny7-Hcqmtncy1ablcAea'h&rMOfeeaAitJnr32Suriri'y23Gr.Iotdl5今電日rcv&ncs?*4-1/21匚49Fiinyi2-5/11C.35Sun23=5/IdCJOMl$9值知m加DM步驟3:

24、現(xiàn)在,使用樸素貝葉斯等式來計(jì)算每一類的后驗(yàn)概率。后驗(yàn)概率最大的類就是預(yù)測(cè)的結(jié)果。問題:如果天氣晴朗,參與者就能玩耍。這個(gè)陳述正確嗎?我們可以使用討論過的方法解決這個(gè)問題。于是P(會(huì)玩|晴朗)=P(晴朗|會(huì)玩)*P(會(huì)玩)/P(晴朗)我們有P(晴朗|會(huì)玩)=3/9=0.33,P(晴朗)=5/14=0.36,P(會(huì)玩)=9/14=0.64現(xiàn)在,P(會(huì)玩|晴朗)=0.33*0.64/0.36=0.60,有更大的概率。樸素貝葉斯使用了一個(gè)相似的方法,通過不同屬性來預(yù)測(cè)不同類別的概率。這個(gè)算法通常被用于文本分類,以及涉及到多個(gè)類的問題。Python代碼1 #ImportLibrary2 fromskle

25、arn.naive_bayesimportGaussianNB34 #Assumedyouhave,X(predictor)andY(target)fortrainingdataset5 andx_test(predictor)oftest_dataset6 #CreateSVM:lassificationobjectmodel=GaussianNB()#thereisother7 distributionformultinomialclasseslikeBernoulliNaiveBayes,Refer8link9#Trainthemodelusingthetrainingsetsandch

26、eckscore10model.fit(X,y)#PredictOutputpredicted=model.predict(x_test)R代碼1library(e1071)2x<-cbind(x_train,y_train)34#Fittingmodel5fit<-naiveBayes(y_train.,data=x)6summary(fit)78#PredictOutput9predicted=predict(fit,x_test)6、KNN(K-最近鄰算法)該算法可用于分類問題和回歸問題。然而,在業(yè)界內(nèi),K-最近鄰算法更常用于分類問題。K-最近鄰算法是一個(gè)簡(jiǎn)單的算法。它儲(chǔ)存所

27、有的案例,通過周圍k個(gè)案例中的大多數(shù)情況劃分新的案例。根據(jù)一個(gè)距離函數(shù),新案例會(huì)被分配到它的K個(gè)近鄰中最普遍的類別中去。這些距離函數(shù)可以是歐式距離、曼哈頓距離、明式距離或者是漢明距離。前三個(gè)距離函數(shù)用于連續(xù)函數(shù),第四個(gè)函數(shù)(漢明函數(shù))則被用于分類變量。如果K=1,新案例就直接被分到離其最近的案例所屬的類別中。有時(shí)候,使用KNN建模時(shí),選擇K的取值是一個(gè)挑戰(zhàn)。更多信息:K-最近鄰算法入門(簡(jiǎn)化版)'3/3B陰X我們可以很容易地在現(xiàn)實(shí)生活中應(yīng)用到KNN如果想要了解一個(gè)完全陌生的人,你也許想要去找他的好朋友們或者他的圈子來獲得他的信息。在選擇使用KNN之前,你需要考慮的事情: KNN的計(jì)算成

28、本很高。 變量應(yīng)該先標(biāo)準(zhǔn)化(normalized),不然會(huì)被更高范圍的變量偏倚。 在使用KN也前,要在野值去除和噪音去除等前期處理多花功夫。Python代碼#ImportLibrary1fromsklearn.neighborsimportKNeighborsClassifier23 #Assumedyouhave,X(predictor)andY(target)fortrainingdataset4 andx_test(predictor)oftest_dataset5 #CreateKNeighborsclassifierobjectmodel6 KNeighborsClassifier(

29、n_neighbors=6)#defaultvalueforn_neighborsis7589 #Trainthemodelusingthetrainingsetsandcheckscore10model.fit(X,y)1112#PredictOutputpredicted=model.predict(x_test)2x<-cbind(x_train,y_train)34#Fittingmodel5fit<-knn(y_train.,data=x,k=5)6summary(fit)78#PredictOutput9predicted=predict(fit,x_test)7、K均

30、值算法K-均值算法是一種非監(jiān)督式學(xué)習(xí)算法,它能解決聚類問題。使用K-均值算法來將一個(gè)數(shù)據(jù)歸入一定數(shù)量的集群(假設(shè)有k個(gè)集群)的過程是簡(jiǎn)單的。一個(gè)集群內(nèi)的數(shù)據(jù)點(diǎn)是均勻齊次的,并且異于別的集群。還記得從墨水漬里找出形狀的活動(dòng)嗎?K-均值算法在某方面類似于這個(gè)活動(dòng)觀察形狀,并延伸想象來找出到底有多少種集群或者總體。K-均值算法怎樣形成集群:1 .K-均值算法給每個(gè)集群選擇k個(gè)點(diǎn)。這些點(diǎn)稱作為質(zhì)心。2 .每一個(gè)數(shù)據(jù)點(diǎn)與距離最近的質(zhì)心形成一個(gè)集群,也就是k個(gè)集群。3 .根據(jù)現(xiàn)有的類別成員,找出每個(gè)類別的質(zhì)心?,F(xiàn)在我們有了新質(zhì)心。4 .當(dāng)我們有新質(zhì)心后,重復(fù)步驟2和步驟3。找到距離每個(gè)數(shù)據(jù)點(diǎn)最近的質(zhì)心,并

31、與新的k集群聯(lián)系起來。重復(fù)這個(gè)過程,直到數(shù)據(jù)都收斂了,也就是當(dāng)質(zhì)心不再改變。如何決定K值:K-均值算法涉及到集群,每個(gè)集群有自己的質(zhì)心。一個(gè)集群內(nèi)的質(zhì)心和各數(shù)據(jù)點(diǎn)之間距離的平方和形成了這個(gè)集群的平方值之和。同時(shí),當(dāng)所有集群的平方值之和加起來的時(shí)候,就組成了集群方案的平方值之和。我們知道,當(dāng)集群的數(shù)量增加時(shí),K值會(huì)持續(xù)下降。但是,如果你將結(jié)果用圖表來表示,你會(huì)看到距離的平方總和快速減少。到某個(gè)值k之后,減少的速度就大大下降了。在此,我們可以找到集群數(shù)量的最優(yōu)值。Python代碼3456789101 #ImportLibrary2 fromsklearn.clusterimportKMeans#A

32、ssumedyouhave,X(attributes)fortrainingdatasetandx_test(attributes)oftest_dataset# CreateKNeighborsclassifierobjectmodelk_means=KMeans(n_clusters=3,random_state=0)# Trainthemodelusingthetrainingsetsandcheckscoremodel.fit(X)11.一.12#PredictOutputpredicted=model.predict(x_test)2fit<-kmeans(X,3)#5clus

33、tersolution8、隨機(jī)森林隨機(jī)森林是表示決策樹總體的一個(gè)專有名詞。在隨機(jī)森林算法中,我們有一系列的決策樹(因此又名“森林”)。為了根據(jù)一個(gè)新對(duì)象的屬性將其分類,每一個(gè)決策樹有一個(gè)分類,稱之為這個(gè)決策樹“投票”給該分類。這個(gè)森林選擇獲得森林里(在所有樹中)獲得票數(shù)最多的分類。每棵樹是像這樣種植養(yǎng)成的:1 .如果訓(xùn)練集的案例數(shù)是N,則從N個(gè)案例中用重置抽樣法隨機(jī)抽取樣本。這個(gè)樣本將作為“養(yǎng)育”樹的訓(xùn)練集。2 .假如有M個(gè)輸入變量,則定義一個(gè)數(shù)字m<<Mm表示,從M中隨機(jī)選中m個(gè)變量,這m個(gè)變量中最好的切分會(huì)被用來切分該節(jié)點(diǎn)。在種植森林的過程中,m的值保持不變。3 .盡可能大地種

34、植每一棵樹,全程不剪枝。若想了解這個(gè)算法的更多細(xì)節(jié),比較決策樹以及優(yōu)化模型參數(shù),我建議你閱讀以下文章:1 .隨機(jī)森林入門一簡(jiǎn)化版2 .將CART模型與隨機(jī)森林比較(上)3 .將隨機(jī)森林與CART模型比較(下)4 .調(diào)整你的隨機(jī)森林模型參數(shù)Python123456789#ImportLibraryfromsklearn.ensembleimportRandomForestClassifier#Assumedyouhave,X(predictor)andY(target)fortrainingdatasetandx_test(predictor)oftest_dataset# CreateRand

35、omForestobjectmodel=RandomForestClassifier。# Trainthemodelusingthetrainingsetsandcheckscore1Omodel.fit(X,y)11八12#PredictOutputpredicted=model.predict(x_test)1library(randomForest)2x<-cbind(x_train,y_train)34#Fittingmodel5fit<-randomForest(Species.,x,ntree=500)6summary(fit)78#PredictOutput9pred

36、icted=predict(fit,x_test)9、降維算法在過去的4到5年里,在每一個(gè)可能的階段,信息捕捉都呈指數(shù)增長(zhǎng)。公司、政府機(jī)構(gòu)、研究組織在應(yīng)對(duì)著新資源以外,還捕捉詳盡的信息。舉個(gè)例子:電子商務(wù)公司更詳細(xì)地捕捉關(guān)于顧客的資料:個(gè)人信息、網(wǎng)絡(luò)瀏覽記錄、他們的喜惡、購買記錄、反饋以及別的許多信息,比你身邊的雜貨店售貨員更加關(guān)注你。作為一個(gè)數(shù)據(jù)科學(xué)家,我們提供的數(shù)據(jù)包含許多特點(diǎn)。這聽起來給建立一個(gè)經(jīng)得起考研的模型提供了很好材料,但有一個(gè)挑戰(zhàn):如何從1000或者2000里分辨出最重要的變量呢?在這種情況下,降維算法和別的一些算法(比如決策樹、隨機(jī)森林、PCA因子分析)幫助我們根據(jù)相關(guān)矩陣,缺

37、失的值的比例和別的要素來找出這些重要變量。想要知道更多關(guān)于該算法的信息,可以閱讀降維算法的初學(xué)者指南。Python代碼#ImportLibrary345678910fromsklearnimportdecomposition#Assumedyouhavetrainingandtestdatasetastrainandtest# CreatePCAobejectpca=decomposition.PCA(n_components=k)#defaultvalueofk=min(n_sample,n_features)# ForFactoranalysis# fa=decomposition.FactorAnalysis()# ReducedthedimensionoftrainingdatasetusingPCA11121314#Formoredetailonthis,pleasereferthislink.train_reduced=pca.fit_transform(train)#Reducedthedimensionoftestdatasettest_reduced=pca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論