導航:首頁 > 源碼編譯 > 數據挖掘演算法實驗

數據挖掘演算法實驗

發布時間:2023-01-27 00:59:43

Ⅰ 數據挖掘的主要步驟有哪些

(1)信息收集:根據確定的數據分析對象抽象出在數據分析中所需要的特徵信息,然後選擇合適的信息收集方法,將收集到的信息存入資料庫。對於海量數據,選擇一個合適的數據存儲和管理的數據倉庫是至關重要的。


(2)數據集成:把不同來源、格式、特點性質的數據在邏輯上或物理上有機地集中,從而為企業提供全面的數據共享。


(3)數據規約:執行多數的數據挖掘演算法即使在少量數據上也需要很長的時間,而做商


業運營數據挖掘時往往數據量非常大。數據規約技術可以用來得到數據集的規約表示,它小得多,但仍然接近於保持原數據的完整性,並且規約後執行數據挖掘結果與規約前執行結果相同或幾乎相同。


(4)數據清理:在資料庫中的數據有一些是不完整的(有些感興趣的屬性缺少屬性值),含雜訊的(包含錯誤的屬性值),並且是不一致的(同樣的信息不同的表示方式),因此需要進行數據清理,將完整、正確、一致的數據信息存入數據倉庫中。不然,挖掘的結果會差強人意。


(5)數據變換:通過平滑聚集,數據概化,規范化等方式將數據轉換成適用於數據挖掘的形式。對於有些實數型數據,通過概念分層和數據的離散化來轉換數據也是重要的。


(6)數據挖掘過程:根據數據倉庫中的數據信息,選擇合適的分析工具,應用統計方法、事例推理、決策樹、規則推理、模糊集、甚至神經網路、遺傳演算法的方法處理信息,得出有用的分析信息。


(7)模式評估:從商業角度,由行業專家來驗證數據挖掘結果的正確性。


(8)知識表示:將數據挖掘所得到的分析信息以可視化的方式呈現給用戶,或作為新的知識存放在知識庫中,供其他應用程序使用。

Ⅱ 畢業設計題目是(選用決策樹演算法的數據挖掘實例分析與設計)

應用遺傳演算法和決策樹演算法在數據挖掘中的比較
賈修一 MG0533024
(南京大學 計算機科學與技術系, 江蘇省南京市 210093)
A Comparision between the Genetic Algorithms and Decision Tree For Data
Mining
Abstract: This chapter introces the application with the genetic algorithms and ID3 for the data mining, choose
the better algorithm to classifier the given data sets through.the comparision between the two algorithms. And
analyzing the results of the experiment as well as reasons.
Key words: genetic algrithms; data ming; decision Tree
摘 要: 對訓練數據分別採用遺傳演算法和決策樹演算法進行數據挖掘,通過比較兩者實驗得出的結果,來選
擇更適合本數據集的演算法進行分類,並分析實驗結果及原因.
關鍵詞: 遺傳演算法;數據挖掘;決策樹演算法

1. 數據的描述
數據屬性有139351維,每個屬性的取值為0或1,分類標識只有兩類:A和I.數據的維數太高,在數
據預處理階段最好做屬性的約簡,進行降維的處理.
(1)數據維數太高,易造成一定的維數災難,使得分類挖掘時間過長.
(2)數據龐大,肯定有些噪音數據.
2.演算法的設計
為了提高最後分類的精確度,特設計了兩種方法進行比較,從中選出一種精確度高的方法.第一種是根
據數據的特點,每個屬性只取值0和1,所以進行屬性約簡的時候採用遺傳演算法.遺傳演算法的優點是可以對
大規模的數據進行一定的屬性約簡.
2.1 遺傳演算法描述:
(1) 遺傳演算法的步驟是編碼,選擇,交叉,變異.通過模仿自然界中的遺傳進化原理,來對數據進行
處理.而遺傳演算法的好壞取決於適應度函數的選擇,進化的次數,和交叉變異的合理性和概率性等,所以要
想設計一個合適的遺傳演算法必須經過大量的實驗.
(2) 就訓練數據而言,對每一維屬性的取值,在類標識一定的條件下,取1和取0的概率之間有個絕
對值差α1,α2,該差越大,說明該屬性的重要程度越高.同時還要考慮對同一維屬性,不論最終類標識是
什麼,取值都相同的話,則該屬性可以被認為是無效的屬性,對最後的分類沒有影響,所以適應度函數取對
每一維屬性的α1,α2的熵,熵越大,則屬性的重要程度就越低.
(3) 編碼階段,就把每一位屬性做為一個長度為139351的染色體的一個基因,1表示選擇該屬性,0
表示不選擇該屬性.隨機初始化8個種群,按照適應度函數的定義,從中選取4個適應度函數最小的染色體
做為父代.
(4) 將選出的父代進行交叉操作,因為是降維操作,所以交叉就是取兩個染色體之間隔位進行AND(與)
操作,變異就是按照一定的概率,在139351維上隨機的100位進行非操作,即:0變為1,1變為0.依次又
產生4個後代,結合原來的4個父代組成新的8個初始種群.進化50次.
然後利用貝葉斯方法進行分類.得到的是一個弱的學習器h,然後利用AdaBoost方法進行強化學習分類器.
2.2 AdaBoost演算法描述:
(1) 給定訓練集(x1,y1),(x2,y2),…,(xm,ym)m個.
(2) yi∈{-1,+1},實例xi∈X的正確標識.
(3) for t=1,…,T
2
{
構造{1,…,m}上的分布Dt,找出弱分類器 ht:X->{-1,+1},
同時在Dt產生很小的錯誤εt:
εt=PrDt[ht(xi)≠yi]
}
(4)構造 Dt,D1(i)=1/m
Dt+1(i)= Dt/Zt*exp(-αt*yi*ht(xi))//(注:yi和ht(xi)只能取值於{-1,+1})
其中Zt是歸一化因子(使Dt+1為分布)
αt=1/2*㏑((1-εt)/ εt)>0
(5)輸出最終分類器:Hfinal(x)=sign(∑αt*ht(x)).
第二種方法就是直接使用決策樹方法(ID3演算法)進行分類.求出每一維屬性的的信息增益,建立一棵
決策樹,利用決策樹來進行分類.
2.3 決策樹演算法(ID3)
(1)創建節點N;
(2)if samples都在同一個類C then
{
返回N作為葉結點,以類C標識;
}
(3)if attribut_list為空 then
{
返回N作為葉結點,標記為samples中最普通的類;
}
(4) 選擇attribute_list中具有最高信息增益的屬性test_attribute;標記節點N為test_attribute;
(5) for each test_attribute中的已知值a
由節點N長出一個條件為test_attribute=a的分枝;
(6) 設s是samples中test_attribute=a的樣本的集合;
(7) if s為空 then
加上一個樹葉,標記weisamples中最普通的類;
else
加上一個由ID3(s,attribute_list-test_attribute)返回的節點;
3. 實驗分析
就第一種方法:通過實驗,在進化次數上選取50次,使得維數約簡到1500維左右時得到的分類效果最
好,但由於種群是隨機產生的,所以在未進行boosting強化時正確率在60~85%之間,不是很穩定,但是符
合弱分類器的要求,即只要正確率超過50%就行,在進行boosting後,正確率能超過80%,但可能是數據進
行約簡的不好或進行迭代的次數選取不太合適,正確率卻沒有ID3的高.就本數據集而言,由於最終標識只
有2個,所以比較適合使用遺傳演算法和Adaboost進行訓練.正確率不高主要問題應該在:
(1)遺傳演算法的適應度函數沒有選好,不同的編碼方式對應不同的適應度函數取法,就本例而言,二進
制編碼方式應該是可以的,就是在對適應度函數取的時候沒有一個合適的數據表示,只好利用了熵的概念,
但在實際意義上感覺效果並不是很好.屬性約簡後正確率不高,這應該是最主要的原因.
(2)交叉變異的方式或許有問題,但是不是主要問題,只要適應度函數選好,也就是選擇操作正確的話,
這兩步操作對最終結果應該影響不大.
(3)進化次數的改進,通過實驗,考慮最後的正確率和運行時間,發現在進化50次和約簡到1500維時
賈修一:應用遺傳演算法和決策樹演算法在數據挖掘中的比較3
效果最好.但隨著適應度函數的不同,進化次數也不同.從理論上說,進化次數越多,效果也應該越好,最
終達到一個最優解,但同時要避免得到局部最優解,就需要對傳統的遺傳演算法進行改進,避免早熟問題.在
此就不討論.
(4)利用貝葉斯分類得到的弱學習器,在格式上並不和Adaboost完全適應,所以在應用的時候效果不
是很好,這也取決於迭代的次數和訓練樣集的選取.
就決策樹方法,對這么多維的屬性在某種意義上說並不合適,但就對本實驗給定的訓練樣例集而言,通
過建樹,只要6個結點就可以,而且正確率超過90%,所以,根據不同的數據集採用不同的方法得到的正確
率是不一樣的.所以在某種程度上說,奧卡姆剃刀原理是正確的.
由於時間有限,沒有對第一種方法進行一定的改進和進行其他方法的實驗,故最終採用ID3演算法進行分
類,採用前100個數據進行訓練,後10個進行測試,錯誤的只有1個.採用前80個數據進行訓練,後30
個進行測試的時候只有2個分類錯誤.正確率自測還是可以的.
4. 總結和感謝
通過本次實驗,最大的收獲就是採用了兩種不同的方法進行了實驗比較,雖然自己原先設計的演算法沒有
得到期望中的效果,並最終採用了其他的演算法,但是通過實驗,我對遺傳演算法和AdaBoost強化弱學習器方法
等有了更深的了解,也明白對不同的數據,是沒有一種萬能通用的解法的.以後會繼續改進自己的演算法,爭
取取得好的效果.最後感謝老師能提供這次實驗的數據.

Ⅲ 帶你了解數據挖掘中的經典演算法

數據挖掘的演算法有很多,而不同的演算法有著不同的優點,同時也發揮著不同的作用。可以這么說,演算法在數據挖掘中做出了極大的貢獻,如果我們要了解數據挖掘的話就不得不了解這些演算法,下面我們就繼續給大家介紹一下有關數據挖掘的演算法知識。
1.The Apriori algorithm,
Apriori演算法是一種最有影響的挖掘布爾關聯規則頻繁項集的演算法。其核心是基於兩階段頻集思想的遞推演算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這里,所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。這個演算法是比較復雜的,但也是十分實用的。
2.最大期望演算法
在統計計算中,最大期望演算法是在概率模型中尋找參數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數。最大期望經常用在機器學習和計算機視覺的數據集聚領域。而最大期望演算法在數據挖掘以及統計中都是十分常見的。
3.PageRank演算法
PageRank是Google演算法的重要內容。PageRank里的page不是指網頁,而是創始人的名字,即這個等級方法是以佩奇來命名的。PageRank根據網站的外部鏈接和內部鏈接的數量和質量倆衡量網站的價值。PageRank背後的概念是,每個到頁面的鏈接都是對該頁面的一次投票,被鏈接的越多,就意味著被其他網站投票越多。這個就是所謂的「鏈接流行度」,這個標准就是衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自學術中一篇論文的被引述的頻度——即被別人引述的次數越多,一般判斷這篇論文的權威性就越高。
3.AdaBoost演算法
Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器,然後把這些弱分類器集合起來,構成一個更強的最終分類器。其演算法本身是通過改變數據分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的准確率,來確定每個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最後的決策分類器。這種演算法給數據挖掘工作解決了不少的問題。
數據挖掘演算法有很多,這篇文章中我們給大家介紹的演算法都是十分經典的演算法,相信大家一定可以從中得到有價值的信息。需要告訴大家的是,我們在進行數據挖掘工作之前一定要事先掌握好數據挖掘需呀掌握的各類演算法,這樣我們才能在工總中得心應手,如果基礎不牢固,那麼我們遲早是會被淘汰的。職場如戰場,我們一定要全力以赴。

閱讀全文

與數據挖掘演算法實驗相關的資料

熱點內容
蘇州零基礎怎麼學編程序 瀏覽:290
無人機App怎麼應用 瀏覽:374
s/1LGf5g6I0YPWhleH_k_6oHg?pwd=lyxq lyxq 瀏覽:979
pws1711編程軟體下載 瀏覽:885
逛淘寶為什麼顯示伺服器出錯了 瀏覽:801
洋蔥的貨物溯源碼從哪裡查詢 瀏覽:128
壓縮包和解壓 瀏覽:348
楊凡孫娜哪免費閱讀 瀏覽:332
網站小電影 瀏覽:761
傢具廠做傢具怎麼編程 瀏覽:779
三洋空調壓縮機質量好嗎 瀏覽:624
法國love電影解析 瀏覽:456
包書網txt小說網 瀏覽:687
富婆養鴨子的電影有哪些 瀏覽:481
如何固定一個文件夾 瀏覽:11
妻子出軌偷情電影 瀏覽:454
法國啄木鳥經典電影 瀏覽:115
什麼網站看電影投屏最好 瀏覽:146
雲伺服器公網ip不夠用 瀏覽:353