熱線電話:13121318867

登錄
首頁精彩閱讀數據挖掘分類、聚類算法學習摘要
數據挖掘分類、聚類算法學習摘要
2016-05-10
收藏
數據挖掘分類、聚類算法學習摘要
一、有關數據挖掘
1.1 數據挖掘相關概念與定義
數據挖掘有廣義和狹義之分。廣義的數據挖掘,指從大量的數據中發現隱藏的、內在的和有用的知識或信息的過程。狹義的數據挖掘,是指知識發現中的一個關鍵步驟,是一個抽取有用模式或建立模型的重要環節。知識發現:知識發現是識別出存在于數據庫中有效的、新穎的、具有潛在價值的乃至最終顆粒劑的模式的非平凡過程。兩者之間的關系:知識發現是從數據庫中發現知識的全部過程,而數據挖掘則是此全部過程的一個特定的關鍵步驟。數據發掘的對象不應只局限于數據庫,在現實看來,數據倉庫是其最新、最符合的對象。
1.2 數據挖掘與傳統統計學之間的關系
數據挖掘是揭示存在數據里的模式及數據間的關系的學科,它強調對大型數據的處理及數據和知識間的潛在關系。統計學是一門關于數據資料的搜集、整理、分析和推理的科學。數據挖掘統計分析之間有明顯的聯系,它們有共同的目標,就是發現數據間隱藏的關系。
過去生硬的去區分兩者之間的關系實際意義并不大,但是相較于傳統統計分析而言,數據挖掘有下列幾項特性:
處理大型數據更有優勢,且無須太專業的統計背景去使用數據挖掘的工具;
數據挖掘技術不僅涉及統計學原理,而且包括數據庫管理、人工智能、機器學習、模式識別、以及數據可視化等技術。
數據挖掘核心是算法,當然也考慮模型和可解釋性問題,但算法及可實現性是第一位的。它所強調的首先是發現,其次才是解釋。因而,數據挖掘并不過分依賴于嚴格的邏輯推理,而是大量采用很多“黑箱”方法和本質上是探索性的方法。
數據挖掘,作為很多學科交叉的結果繼承了機器學習的“冒險”態度,比統計學更強調實踐性、探索性和靈活性。實際上,與現代科學中常見的“從假設出發演繹推理”的做法相比,數據挖掘更多地是一個歸納過程。
二、R語言介紹
2.1 R語言簡介
R是一種為統計計算和圖形顯示而設計的語言環境,是貝爾實驗室(BeflLaboratories)的RickBeeke、JohnChamberS和AllanWilkS開發的S語言的一種實現,提供了一系列統計和圖形顯示工具。
R是一組數據操作,計算和圖形顯示工具的整合包。相對于同類軟件其特色在于:
有效的數據處理和保存機制。
擁有一整套數組和矩陣操作運算符。
一系列連貫而又完整的數據分析中間工具。
圖形統計可對數據直接進行分析顯示,可用于多種圖形設備。
一種相當完善、簡潔和高效的程序設計語言。它包括條件語句、循環語句、用戶自定義的遞歸函數以及輸入輸出接口。
    R是徹底面向對象的統計編程語言。
    R和其它編程語言、數據庫之間有很好的接口。
    R是自由軟件且功能不比任何同類軟件差。
    R具有豐富的網上資源,更為重要一點的是R提供了非常豐富的程序包,除了推薦的標準包外還有很多志愿者貢獻的貢獻包,可直接利用這些包提高工作效率。
2.2 R語言數據挖掘
數據挖掘工具可根據應用領域分為三類:
    通用單任務類。僅支持KDD(KDD:Knowledge Discovery in Data,即知識發現)的數據采掘步驟,并且需要大量的預處理和善后處理工作。主要采用決策樹、神經網絡、基于例子和規則的方法,發現任務大多屬于分類范疇。
    通用多任務類??蓤绦卸鄠€領域的知識發現任務,集成了分類、可視化、聚集、概括等多種策略,如IBM公司的IntelligentMiner和Almaden研究中心開發的QUEST系統,SGI公司開發的Mineset系統,加拿大SimonFraser大學開發的DBMiner系統,SPSS公司的Clementine以及SGI公司的Mineset。
    專用領域類。特定領域的數據挖掘工具針對某個特定領域的問題提供解決方案。在設計算法的時候,充分考慮到數據、需求的特殊性,并作了優化?,F有的許多數據采掘系統是專為特定目的開發的,用于專用領域的知識發現,對采掘的數據庫有語義要求,挖掘的知識和采用的方法也較單一,有些系統雖然能發現多種形式的知識,但基本器學習、統計分析為主,計算量大。
三、分類分析算法
3.1 分類的一般步驟
第一步,建立模型,描述預定的數據類集或概念集。通過分析由屬性描述的數據庫元組來構造模型。
第二步,使用模型進行分類。首先需要評估模型(或分類方法)的預測準確率。
3.2 數據的預處理
在進行分類前,對數據的預處理可以提高分類預測的準確性、有效性和可伸縮性。分類前一般要進行如下幾種數據預處理:
    數據清理:為了消除和減少數據噪聲和處理缺失值的數據預處理。雖然大部分的分類算法都會處理噪聲和缺失值,但在進行分類對數據的清理可以減少學習時的混亂。
    相關性分析:數據中很多屬性可能與分類預測任務不相關或是冗余的。因此在分類前進行相關性分析可以刪除學習過程中不相關的或冗余的屬性,提高分類預測的效率和準確率。
    數據變換:分類前的數據變換主要有概念分層和規范化兩種。概念分層就是把連續值屬性概化為離散的區間,壓縮了原來的訓練數據,學習時可以減少輸入輸出操作。規范化是將給定屬性的所有值按比例縮放,使得它們落入較小的指定區間,比如落入[0,1]內,可以防止具有較大初始域的屬性相對于具有較小初始域的屬性權種過大,該方法常用于神經網絡和距離度量方法。
3.3 分類方法的評估標準
準確率。指模型正確地預測新的或未見過的數據的類標號的能力,這也是模型的首要能力。如果一個模型的分類準確率小于百分之五十,那么可以認為其結果是無價值的。在其他條件等同的情況下,當然首選準確率高的分類方法。
速度。指產生和使用模型的時間復雜度。產生模型的試驗數據集通常是巨量的,因為一般情況下其數量和分類準確率成正比。如果產生和使用模型的時間過長,將嚴重影響用戶的使用。
穩健性。指給定噪聲數據或具有空缺值的數據,模型正確預測的能力?,F實中的數據庫通常有噪聲,有時還很大。如果一個分類器不善于消除噪聲的影響,將嚴重影響分類準確率。
可伸縮性。指給定大量數據,有效的構造模型的能力。有些分類器在數據量很小的情況下可以有效的構造模型,隨著數據量的增大,其構造模型的能力顯著下降,這最終也會影響分類準確率。
可解釋性。指學習模型提供的理解和洞察的層次。
3.4 基于距離分類方法概述
基本概念:假定每個類用類中心來表示,每個元組必須和各個類的中心來比較,從而可以找出最近的類中心,得到確定的類標記,基于距離分類一個元組的復雜性一般是O(n)。
方法應用之KNN算法:K最臨近方法(K Nearest Neighbors,簡稱KNN)是實際運用中經常被采用的一種基于距離的分類算法。KNN算法的基本思想:假定每個類包含多個訓練數據,且每個訓練數據都有一個唯一的類別標記,計算每個訓練數據到待分類元組的距離,取和待分類元組距離最近的k個訓練數據,k個數據中哪個類別的訓練數據占多數,則待分類元組就屬于哪個類別。
3.5 基于決策樹分類方法
一般來說,決策樹的構造主要由兩個階段組成:第一階段,生成樹階段。選取部分受訓數據建立決策樹,決策樹是按廣度優先建立直到每個葉節點包括相同的類標記為止。第二階段,決策樹修剪階段。用剩余數據檢驗決策樹,如果所建立的決策樹不能正確回答所研究的問題,我們要對決策樹進行修剪直到建立一棵正確的決策樹。
目前決策樹修剪策略有三種:基于代價復雜度的修剪(Cost–ComplexityPruning)、悲觀修剪(PeSSimistiCPruning)和MDL修剪(MinimumDeSCriptionLengthPruoing)?;诖鷥r復雜度的修剪使用了獨立的樣本集用于修剪,即與決策樹生成過程所使用的樣本集不同。在很多情況下,特別是當訓練集很小時,更期望將所有的樣本既用于決策樹的生成也用于決策樹的修剪。悲觀修剪是Quinlan在1987年提出的,將所有的訓練樣本都用于決策樹的生成與修剪,經驗表明,該方法產生的樹太大并且有時精度不高,在實際使用過程用的較多的并且效果較好的是MDL修剪。
方法應用之C4.5算法:國際上最早,最有影響的決策樹方法是Quinlan提出的ID3算法。ID3是一個典型的決策樹學習系統,它以信息嫡作為分離目標評價函數,采用自頂向下不可返回的策略,搜出全部空間的一部分,它確保決策樹建立最簡單,每次所做的測試數據最少。但由于工D3具有偏向于選擇屬性較多的屬性、學習簡單的邏輯表達能力較差等缺點。Qu1lan在1993年提出了C4.5算法,它既是工D3算法的后繼,也成為以后諸多決策樹算法的基礎。
C4.5除了擁有ID3算法的功能外,還引入了新的方法和增加了新的功能。例如:
用信息增益比例的概念替代信息增益。
合并具有連續屬性的值。
可以處理具有缺少屬性值得訓練樣本。
通過使用不容的修剪技術以避免樹的過渡擬合(overfitting)。
K交叉驗證。
方法應用之VART算法
3.6 基于神經網絡分類算法
神經網絡建立在有自學習能力的數學模型基礎上,可以對復雜的數據進行分析,并完成對腦或其他計算機來說極為復雜的模式抽取及趨勢分析。神經網絡的典型應用是建立分類模型。神經網絡將每一個連接看作一個處理單元(PE),試圖模擬人腦神經元的功能。神經網絡從經驗中學習,常用于發現一組輸入數據和一個結果之間的未知聯系。同其它方法一樣,神經網絡首先檢測數據中存在的模式,再對從數據中發現的關系進行概括,然后給出預測結果。神經網絡由于能對復雜過程進行預測而受到了特別的關注。處理單元采用一系列數學函數,通過匯總和轉換對數據進行處理。一個處理單元的功能有限,但若干個處理單元連接起來形成系統后,就可以創建一個智能模型。處理單元可以許多種不同的方式互連,為了更精確地擬合需要為之建立模型的數據,它們可被反復訓練若干次,成百次,甚至上千次。處理單元要和輸入輸出單元連接起來。在網絡訓練過程中,需對輸入單元和輸出單元之間的連接強度(即權值)進行修改。某一個連接強度的提高或減弱根據它對產生某一個結果的重要性進行的。連接強度依賴于在反復訓練過程中賦予它的權值。訓練過程采用一種稱為學習規則的數學方法調節權值。神經網絡的訓練是根據歷史樣本數據反復進行的。訓練過程中,處理單元對數據進行匯總和轉換,它們之間的連接被賦以不同的權值。也就是說,為了對每一個樣本的結果變量進行預測,一個網絡要嘗試各種不同的方案。當輸出結果在指定的精度級別上與已知結果吻合,或滿足其它的結束準則時,網絡的訓練就不再進行。
神經網絡的最大優點是它能精確地對復雜問題進行預測。在與其它方法進行的精度對比 測試中,神經網絡的精確度是比較高的。神經網絡方法也有一些缺點:
第一,神經網絡雖然在預測方面有用但卻難于理解。誠然,早期的神經網絡工具的確像被指責的那樣,是一種“黑盒子”預測引擎,但當今市場上的新型神經網絡工具卻有了明顯的改進。
第二,神經網絡易于受訓練過度的影響。如果對具有很強學習功能的神經網絡用支持這種功能的少量數據進行訓練,開始時正如我們希望的那樣,網絡學習的是數據中的一般趨勢,但此后網絡卻不斷地學習訓練數據中非常具體的特征,這不是我們所希望的。這樣的網絡由于記住了訓練數據,缺乏概括能力。
方法應用之BP算法
四、聚類分析方法
聚類分析是數據挖掘的一項重要功能,而聚類算法是數據挖掘研究領域中一個非?;钴S的研究課題。聚類是把一組對象按照相似性歸成若干類別,即“物以類聚”。它的目的是使得屬于同一類別的對象之間的距離盡可能的小,而不同類別的對象間的距離盡可能的大。
聚類分析就是使用聚類算法來發現有意義的聚類,它的主要依據是把相似的樣本歸為一類,而把差異大的樣本區分開來,這樣所生成的簇是一組數據對象的集合,這些對象與同一個簇中的對象彼此相似,而與其他簇中的對象彼此相異。在許多應用中可以把一個簇中的數據對象當做一個整體來對待。
作為一個數據挖掘的功能,聚類分析能作為一個獨立的工具來獲得數據分布的情況,觀察每個簇的特點,集中對特定的簇做進一步的分析。聚類分析也可以作為其他方法(如特征和分類等)的預處理。
目前文獻中存在大量的聚類算法。算法的選擇取決于數據的類型、目的和應用。如果聚類分析被用作描述或探查的工具,可以對同樣的數據嘗試多種算法,以發現數據可能揭示的結果。大體上,按照聚類算法的主要思路可以劃分為如下幾類:劃分方法(partitioningmethods)、層次方法(hierarehiealmethods)、基于密度的方法(Density一basedMethods)、基于模型的方法(model一basedmcthods)等。
4.1 數據挖掘對聚類分析方法的要求
數據挖掘技術的一個突出特點是處理巨大的、復雜的數據集,這對聚類分析技術提出了特殊的挑戰,要求算法具有可伸縮性、處理不同類型屬性的能力、處理高維數據的能力等。具體地說,數據挖掘對聚類的特殊要求如下:
   可伸縮性。許多聚類方法在小于1000個數據對象的小數據集合上工作得很好;但是,一個大規模數據庫可能包含幾百萬個對象,在這樣的大數據集合樣本上進行聚類可能導致較大偏差。
    處理不同類型屬性的能力。許多聚類方法只能聚類數值型數據。但是,在數據挖掘領域,數據類型是多樣的。
    用于決定輸入參數的領域知識最少。許多聚類方法在聚類分析中要求用戶輸入一定的參數,例如希望產生類的數目,而且聚類結果對于輸入參數十分敏感。參數通常很難確定,特別是對于包含高維對象的數據集來說,更是如此。要求用戶輸入參數不僅加重了用戶的負擔,也使得聚類的質量難以控制。
    發現任意形狀的聚類。許多聚類方法基于歐氏距離來決定聚類?;谶@樣的距離度量的算法趨向于發現具有相似此尺度和密度的球狀簇。
    處理噪聲數據的能力。絕大多數的現實世界中的數據庫都包含了異常值、缺失值或錯誤的數據。有些聚類方法對于這樣的數據較為敏感,可能導致低質量的聚類結果。
    對于輸入數據的順序不敏感。有些聚類方法對于輸入數據的順序是敏感的。例如,同一個數據集合,當以不同的順序提交給同一個方法時,可能生成差別很大的聚類結果。
    高維性。一個數據庫或者數據倉庫可能包含若干維或者屬性。許多聚類方法擅長處理低維的數據,可能只涉及兩到三維。在高維空間中聚類數據對象是非常有挑戰性的,特別是這樣的數據可能非常稀疏,而且高度偏斜。
    基于約束的聚類?,F實世界中的應用可能需要在各種約束條件下進行聚類。要找到既滿足特定的約束,又具有良好聚類特性的數據分組是一項具有挑戰性的任務。
    可解釋性和可用性。用戶希望聚類結果是可解釋的、可理解的、可用的。也就是說,聚類可能需要和特定的語義解釋和應用相聯系。
4.2 劃分聚類方法
實例:K-means算法
輸入:聚類個數k,以及包含n個數據對象的數據庫;
輸出:滿足平方誤差準則最小的k個聚類。
處理流程: 1. 從n個數據對象任意k個對象作為初始簇中心。 2. 循環下述流程(3)到(4),直到每個聚類不再發生變化為止。 3. 根據每個簇中對象的均值(中心對象),計算每個對象與這些中心對象的距離,并根據最小距離重新對相應對象進行劃分。 4. 重新計算每個(有變化)簇的均值。
4.3 基于密度聚類方法
絕大多數劃分方法基于對象之間的距離進行聚類。這樣的方法只能發現球狀的或凸形的簇,而在發現任意形狀的簇上遇到了困難。在這種情況下提出了基于密度的另一類聚類方法。其主要思想是:只要臨近區域的密度(對象或數據點的數目)超過某個閥值,就繼續聚類。也就是說對給定類中的每個數據點在一個給定范圍的區域中必須至少包含某個數目的點。這樣的方法可以用來過濾“噪聲”孤立點數據,發現任意形狀的簇。
4.4 基于模型聚類方法
基于模型的聚類方法試圖優化給定的數據和某些數學模型之間的適應性。該方法經常是基于數據是根據潛在的概率分布生成的假設?;谀P偷木垲惙椒ㄖ饕袃深悾航y計學方法和神經網絡方法。
4.5 模糊聚類方法
對于模糊集來說,一個數據點都是以一定程度屬于某個類,也可以同時以不同的程度屬于幾個類。常用的模糊聚類算法是模糊C平均值FCM(FuZZyC一MeanS)算法,該算法是在傳統C均值算法中應用了模糊技術。FCM算法的步驟算法步驟如下:
輸入:設定聚類數目C和參數b。
輸出:聚類結果
初始化各個聚類中心m;
REPEAT:
用當前的聚類中心計算隸屬度函數;
用當前的隸屬度函數更新計算各類聚類中心;
UNTIL各樣本隸屬度值穩定;
當算法收斂時,就得到了各類的聚類中心和各個樣本對于各類的隸屬度值從而完成了模糊聚類劃分。如果需要,還可將模糊聚類結果進行去模糊化,即用一定的規則把模糊類分劃分轉化為確定性分類。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢