狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

數據挖掘之隨機森林算法實驗報告

| 瀏覽次數:

 太原師范學院

 實 實

 驗

 報

 告 告

 Experimentation Report of Taiyuan Normal University

  系

 部

 計算機系

  年

 級

 大三

 課

 程

 大數據分析

  姓

 名

 XXX

 同組者

 日

 期

  項 項

 目

 數據挖掘 之 隨機森林算法

 一、 實驗目的 1. 了解隨機森林。隨機森林就是通過集成學習的思想將多棵樹集成的一種算法,它的基本單元是決策樹,而它的本質屬于機器學習的一大分支——集成學習(Ensemble Learning)方法。

 2. 掌握隨機森林的相關知識,信息、熵、信息增益等的概念。

 3. 掌握隨機森林中數據分析的幾種基本方法,決策樹算法,CART 算法等。

 4. 了解集成學習的定義和發展。

 5. 掌握隨機森林的生成規則,隨機森林的生成方法,隨機森林的特點等相關知識。

 二、 實驗內容 1. 結合老師上課所講內容及課本知識,通過查找相關資料,報

 告

 內

 容

 一、實驗目的

 四、實驗方法

  二、實驗原理

 五、實驗記錄及數據處理 三、實驗儀器及材料

 六、誤差分析及討論

 學習與決策樹,隨機森林相關的知識。

 2. 查找相關例題,深入理解隨機森林的各種算法。

 3. 找一個數據集,利用隨機森林的相關算法訓練隨機森林,對樣本進行判段并計算其判斷的準確度。

 三、 實驗儀器及平臺 計算機一臺 MATLAB 2018a 四、 實驗原理 1. 隨機森林的基本概念:

 通過集成學習的思想將多棵樹集成的一種算法,它的基本單元是決策樹,而它的本質屬于機器學習的一大分支——集成學習(Ensemble Learning)方法。隨機森林的名稱中有兩個關鍵詞,一個是“隨機”,一個就是“森林”。“森林”我們很好理解,一棵叫做樹,那么成百上千棵就可以叫做森林了,這樣的比喻還是很貼切的,其實這也是隨機森林的主要思想--集成思想的體現。

 2. 決策樹 2.1 信息、熵、信息增益 這三個基本概念是決策樹的根本,是決策樹利用特征來分類時,確定特征選取順序的依據。

 2.2 決策樹算法 決策樹算法是一種逼近離散函數值的方法。它是一種典型的分類方法,首先對數據進行處理,利用歸納算法生成可

 讀的規則和決策樹,然后使用決策對新數據進行分析。本質上決策樹是通過一系列規則對數據進行分類的過程。

 3. CART 算法 Classification And Regression Tree,即分類回歸樹算法,簡稱 CART 算法,它是決策樹的一種實現。

 CART 算法是一種二分遞歸分割技術,把當前樣本劃分為兩個子樣本,使得生成的每個非葉子結點都有兩個分支, 因此 CART 算法生成的決策樹是結構簡潔的二叉樹。由于 CART 算法構成的是一個二叉樹,它在每一步的決策時只能是“是”或者“否”,即使一個 feature 有多個取值,也是把數據分為兩部分。

 4. 決策樹 C4.5 一種分類算法,目標是將具有 p 維特征的 n 個樣本分到 c 個類別中去。相當于做一個投影,c=f(n),將樣本經過一種變換賦予一種類別標簽。決策樹為了達到這一目的,可以把分類的過程表示成一棵樹,每次通過選擇一個特征 pi來進行分叉。

 5. 隨機森林的生成規則 (1)

 如果訓練集大小為 N,隨機且有放回地從訓練集中抽 取 N 個訓練樣本,構成一個新的樣本集(含重復的訓練樣本)。

 (2)如果每個樣本的特征維度為 M ,指定一個常數 m,且

 m< M,隨機地從 M 個特征中選取 m 個特征子集,每次樹進行分裂時,從這 m 個特征中選擇最優的,決策樹成長期間 m的大小始終不變。(注意:此處采用無放回的選擇)

 (3)每棵樹都盡可能最大程度地(完全地)生長,并且沒 有剪枝過程。

 (將預測結果累加起來從而得到整個隨機森林的預測果)

 通過之前的三步就可以得到一棵決策樹,重復 X 次這樣的 過程那么就能得到 X 棵決策樹。來一個測試樣本就對它分類一遍,就得到 X 個分類結果。使用簡單的投票機制(或用最終分類結果)來判別該樣本的所屬類。

 注意:兩類隨機性的引入對隨機森林的生成至關重要。

 6. 隨機森林的簡單實例分析 根據已有的訓練集已經產生了對應的隨機森林,隨機森林如何利用某一個人的年齡(Age)、性別(Gender)、教育情況(Hinhest Educational Qualification)、工作領域(Industry)以及住宅地(Residence)共 5 個字段來預測他的收入層次。

 表 1

 收入層次

  Band1 Below$40000 Band 2 $40000 – 150000 Band3 More

 than $150000

 隨機森林中每一棵樹都可以看做是一棵 CART (分類回歸樹),這里假設森林中有 5 棵 CART 樹,總特征個數 N=5, 取m=1 (m 為建立決策樹時,隨機選取的特征個數,這里假設每個 CART 樹對應一個不同的特征)。(表格中的百分數指的是在不同條件下的數據樣本占對應類別的比例)

  假如要預測的某個人的信息如下:

 1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry :Manufacturing; 5. Residence : Metro. 根據這五棵 CART 樹的分類結果,可以針對此人的信息建立收入層次的分布情況:

  最后,我們得出結論:這個人的收入層次 70%是一等,24%是二等,6%是三等。所以我們得出結論:這個人的收入層次是一等(小于$40000)。

 五、 實驗流程 1. 尋找數據集。從 UCI 數據集網站下載了紅葡萄酒品質的數據集。

 2. 打開 MATLAB 2018a,清空工作區變量。

 3. 導入數據集。把下載好的數據集導入進來。

 4. 按照寫好的代碼,利用數據集訓練并生成隨機森林,計算隨機森林判斷樣本類別的準確率。

 六、隨機森林實現代碼 %清空環境變量 clear all clc warning off

 %導入數據

 %1.隨機產生訓練集 測試集 a=randperm(1599); Train=winequalityred(a(1:1200),:);

  %產生 1200 個訓練集 Test=winequalityred(a(1201:end),:);

  %剩下的是測試集 399個 %2.訓練數據 P_train=Train(:,1:11); T_train=Train(:,12);

 %3.測試數據 P_test=Test(:,1:11); T_test=Test(:,12);

 %調用 Random Forest 算法 btree=TreeBagger(50,P_train,T_train,"NVarToSample","all","Method","classification"); [pred_labels,scoresl]=predict(btree,Test); predict_label=cellfun(@(x)str2double(x),pred_labels);

 %將 cell 類型的 pred_labels 轉化為 double 型的 predict_label T_test1=table2cell(T_test);

 %將 table 型的 T_test 轉化為 cell 型的 T_test1 T_test2=cell2mat(T_test1);

  %將 cell 型的 T_test 轉化為 double 型的 T_test2 accuray=sum(T_test2( :,1)==predict_label( :,1))/399;

  %計算測試集數據的標簽預測準確率 六、 實驗結果分析

  七、 心得體會 訓練隨機森林時一定要多次實驗,選取不同的參數,以求得預測的最大準確率。

 將 table 型數據通過 cell 型數據才能轉換為 double 類型的數據。

推薦訪問: 算法 數據挖掘 隨機

【數據挖掘之隨機森林算法實驗報告】相關推薦

工作總結最新推薦

NEW