




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大數據殺熟背景下的數據挖掘技術與分類算法研究摘要本文以近年來數據量激增的現象以及大數據殺熟現象為背景,對數據挖掘的發展歷程、國內外研究現狀、過程展開了敘述。在文中也結合近年來一些比較火熱的社會現象,提出了數據挖掘在未來可能的應用會比較多的領域。另外就數據挖掘中的分類算法展開了研究,對常見的分類算法利用Python語言進行了實現,對結果進行了比對。在未來的日子里,數據量仍然會大幅增長,數據挖掘的用武之地也越來越多,這種技術也顯得越來越重要。將數據挖掘技術和分類算法合理的運用在處理海量數據的任務中,可以幫助我們節省大量的時間,提高效率;也更能發現數據背后的秘密,為我們提供有用且準確的信息。關鍵詞:數據挖掘;決策樹算法;貝葉斯算法;最近鄰算法目錄TOC\o"1-3"\h\u27937摘要 19284Abstract 12482目錄 2310651.緒論 4187551.1.研究現狀綜述 4165961.2.選題意義 462431.3.國內外研究現狀 4149441.3.1.國外研究現狀 4287001.3.2.國內研究現狀 5314231.4.數據挖掘的應用前景 667851.4.1.生物醫學和DNA領域的應用 6293541.4.2.Web領域的應用 683381.4.3.金融領域的應用 675871.4.4.視頻領域的應用 7215691.5.論文所要研究內容 782962.數據挖掘技術 7162862.1.數據挖掘技術的發展歷程 871442.2.數據挖掘的過程 8190662.2.1.確定挖掘目的 9248022.2.2.數據準備 9127972.2.3.數據挖掘 9208992.2.4.結果分析 925592.3.數據預處理 9272532.3.1.進行數據的預處理的原因 9322972.3.2.數據預處理詳解 10283463.分類算法的研究 11310193.1.分類算法總述 11265833.2.決策樹算法詳解 11190793.2.1.決策樹算法基本思想與流程 11195303.2.2.ID3算法 13265573.2.3.C4.5算法 1563073.2.4.Cart算法 1730423.3.貝葉斯算法詳解 20126133.3.1.樸素貝葉斯算法的基本思想與流程 20207103.3.2.樸素貝葉斯算法的實現 21233133.3.3.樸素貝葉斯算法的優缺點 22307443.4.最近鄰算法詳解 22190403.4.1.最近鄰算法的基本思想與流程 229293.4.2.最近鄰算法的實現 237723.4.3.最近鄰算法的優缺點 2443713.5.分類算法的對比 24228284.實現算法相關內容 2595394.1.數據集介紹 2587794.1.1.wine數據集的介紹 26235474.1.2.Balloons數據集的介紹 28241944.2.所使用語言、模塊、編譯器介紹 29169794.2.1.Python語言的介紹 2997604.2.2.Sklearn庫的介紹 2963144.2.3.Matplotlib庫的介紹 30174454.2.4.Pandas模塊的介紹 31249874.2.5.Jupyternotebook的介紹 31281494.2.6.graphviz模塊的介紹 3134255.結論 3218851參考文獻 33
緒論研究現狀綜述自從1989年知識發現一次處初露頭角之后,歷經數十年的發展,數據挖掘已經從當初那個只配出現在專題討論會上的小角色一躍變為了萬千專家學者在國際性學術會議上一起研究探討的極具潛力的技術。國內外對數據挖掘的研究現在來看仍然主要集中在三個方面:數據挖掘的算法、理論、應用。畢竟一種技術的出現歸根結底還是要用于生活、生產來服務于人類,為人類創造更多的便利和好處的。所以對一種技術的研究最終一定會跑向應用。數據挖掘技術的算法數量龐雜,這些算法主要可以分為三個大類:分類算法、關聯規則分析算法、聚類算法。其中分類算法又可以細分為:決策樹、貝葉斯、最近鄰、神經網絡、SVM;關聯規則分析算法細分的結果是:Apriori算法、FP樹算法、序列模式;聚類算法進行細分包括:K均值算法、基于密度的聚類方法、使用高斯混合模型來期望最大化聚類、層次聚類算法。無論是國外還是國內已經出現了很多技術成熟而且使用價值很高的軟件,數據挖掘的未來值得期待。選題意義當今世界飛速發展,第三次工業革命帶來了計算機之后,世界的發展速度越來越快。近年來,隨著各種社交媒體,APP的出現,每天都有源源不斷的數據產生,當今的世界,可以說是大數據的時代。在當今的世界,各個行業的數據信息即將達到爆炸的程度,并快要突破人們收集信息的極限。數據量的繁多與格式的復雜多樣讓我們越來越感受到數據信息的重要性,毫不夸張地說,在現如今,數據就是金錢。大數據時代,各行各業的數據信息量可謂是達到了爆炸的地步,并且也快要突破人們搜集信息的極限,再加之大數據的四大特點就是海量、高速、多樣和易變。針對這種現象,研究人員也在摸索解決的方法,研發出了數據挖掘技術,在如何尋找有用信息、如何創造出有用信息等方面,已經得到一些發展的成果。通過數據挖掘技術,能夠將有效的信息從一堆復雜無序的原始數據中提取出來,發揮其最大的用處。深入挖掘數據信息中存在的價值,合理運用數據挖掘技術提升數據價值,不僅能夠及時掌握市場行業的未來發展動向,也能夠幫助一些企業解決當前存在的發展危機,創造出更多的生產價值與自我提升空間。國內外研究現狀國外研究現狀知識發現和數據挖掘在經過十幾年的發展之后已經成為了數據庫領域中不可或缺的研究方向之一。在上世紀八十年代末,在美國底特律舉辦了一次轟動世界的會議,這個會議就是第十一屆人工智能會議,能轟動世界大概就是因為KDD一詞在這次會議上初放異彩,時間一轉來到上世紀九十年代中期,首屆KDD&DataMining國際學術會議于加拿大蒙特利爾舉辦,之后每年這個方面的國際性學術會議都如約而至。歷經十余年的不懈鉆研,有關數據挖掘技術這一領域,研究人員已經取得了令人滿意的成果,許多開發軟件的公司已經開發出了可用于數據挖掘的軟件,而且廣泛應用于北美、歐洲的一些國家。從目前來看,對數據挖掘的研究仍然主要集中在技術、理論和研究三個方面。在市場需求的推動下,在研究人員的不懈努力下,市面上已經出現了一些用來進行數據挖掘的軟件,這些軟件以應用價值高、技術成熟而聞名,比如:KnowledgeStudio、IBMIntelligentMiner、SPSSClementine、CognosScenario。在眾多研究人員的不懈努力下,數據挖掘目前來說經常使用的幾大算法分別是:決策樹算法、人工神經網絡算法、遺傳算法、粗糙集算法、模糊集算法、關聯規則算法。細分之后一些應用很好也廣受大眾喜愛的算法具體是:C4.5算法(在ID3算法的基礎上進行了改進)、K-means算法(這是一種聚類算法,其原理簡單,很容易實現)、SVM算法(這是一種分類算法,策略由原來的向高維空間的非線性映射變換為了使用內積核函數,有效避免了高維度空間的復雜性)、Apriori算法(這是有一種極具影響力的挖掘關聯規則的算法)、PageRank算法(用來給網頁排名,是Google一種十分重要的算法)、Adaboost算法、KNN算法、樸素貝葉斯算法。如下圖所示:圖SEQ圖\*ARABIC1數據挖掘經典算法國內研究現狀相比較于國外的研究,國內在這一方面的研究可謂是雖遲但到。目前,國內對于進行數據挖掘要使用的軟件的研發這一方面,主力軍還是高校,比如MSMiner和ScopeMiner。國內對于數據挖掘技術的研究方向與國外的也大差不離,還是主要集中在了數據挖掘的算法、理論以及應用這三個方面。可以分為三大區域:數據挖掘方法;數據挖掘的應用;Web挖掘[21]。數據挖掘經典的技術的如下圖:圖SEQ圖\*ARABIC2數據挖掘的經典技術數據挖掘的應用前景從目前來看,數據挖掘未來可能的應用領域主要集中在以下幾個方面:生物醫學和DNA領域的應用生物信息以及基因信息對于人類是十分重要的,了解掌握這些信息將有助于人類利用這些信息來治愈疾病,解決一些醫學難題,給更多的人送去希望。但任何一個了解生物的人都知道,基因組合的數量是極其龐大的。就拿人類基因組來舉例,人類基因組由23對染色體組成,大約含有30億個DNA堿基對,其中的某些堿基對所含基因數量大約在20000與25000之間。這么來看,生物信息純靠人工是無法完全提取出來的,所以數據挖掘在這個領域就有了用武之地。但是這也涉及到了計算機專業的學生可能不是很懂生物,懂生物的學生又不太了解數據挖掘的問題,二者的交叉學科近幾年也發展很快,相信數據挖掘在這個領域,在不久的將來一定會大放異彩的。Web領域的應用隨著互聯網的迅猛發展,各類網站,電子商務蓬勃興起。十幾年前無人問津的淘寶、京東,現在幾乎成為了人們生活的必需品,在加之近幾年拼多多的快速發展,可以說這一領域積攢的數據也是十分龐大的。那么利用這些數據,從中提取出有用的信息,就可以幫助顧客擁有更好的購物體驗,免受自己不喜歡事物的打擾。從這些紛繁復雜的數據中,分析出顧客的喜好,給顧客推送他們可能喜歡的東西,既節約了顧客的時間也能給公司帶來更多的收益,可謂是一舉兩得。金融領域的應用隨著經濟的快速發展,人們的財富也在日益增多,于是很多人開始有了理財的想法。已經涉及或者正打算入坑理財的人一定都知道今年股市的行情不是很好,有人甚至賠光了身家財產。在金融領域,投資風險極大,可能賺的盆滿缽滿,也可能賠的身無分文。所以,在這個領域就很有必要利用數據挖掘來分析各種關聯信息,使投資風險最小化。隨著祖國越來越強大,經濟越來越繁榮,相信會有更多的人投身于這個行業,而數據挖掘在這個領域也必將擁有姓名。視頻領域的應用近年來,抖音、快手、今日頭條這些軟件以迅雷不及掩耳之勢火遍大江南北,可以說百分之九十的年輕人都或多或少使用過這些軟件,更有甚者一天中的絕大部分時間時間都用在了利用這些短視頻軟件刷短視頻上,這些軟件也是有很強的吸引力,這些軟件的吸引力來自于精確地給用戶推薦用戶喜歡的內容,刷著自己喜歡的東西,很容易停不下來。這些軟件火了之后,出現了很多類似的軟件,比如好看視頻、微視、刷寶等,足以看出這個領域現在的火爆,基于億萬用戶產生的信息,利用數據挖掘技術進行分析,做到精準推薦,既能讓用戶放松,也能給軟件帶來用戶,從而為公司創收,更重要的一點就是有利用信息共享。論文所要研究內容本論文的研究內容為:數據挖掘技術的發展歷程、研究現狀數據挖掘技術未來用途較多的應用場景分類算法總述常用的三種分類算法的基本流程、原理、代碼實現涉及到的語言、模塊的介紹數據挖掘技術數據挖掘技術,見名知意,就是指一種技術,可以達到從數量多且繁雜的數據中找到有價值意義的數據信息。就一般情況來說,數據挖掘主要應用在文本數據以及圖像數據中,作為分析、整理或者預測風險的基礎技術手段,數據挖掘技術能夠在海量的信息數據中精確尋找到目標數據內容[8]。近年來,隨著智能手機,平板電腦以及個人筆記本電腦的普及,每個人無時無刻都在產生著數據,數據量出現了爆炸式的增長。面對日益龐大而且增加極其快的數據,對這些數據的管理就需要利用到數據庫技術或者數據倉庫技術了。而且從現實世界中挖掘出的數據往往不像已有數據集那樣規整,可能單純只靠一種或少數幾種數據挖掘算法是難以完成對其的處理的,為了達到從凌亂的數據中心提取到有用信息的目的還需要配合使用數據清洗、數據轉換等預處理數據的方法。數據挖掘的主要任務大致可以簡單的概括為數據匯總,概念描述,分類,聚類,相關性分析,偏差分析,建模這幾類。數據挖掘是一門在多學科發展的基礎上發展起來的新興學科,涉及到了很多我們耳熟能詳的學科,比如有:數據庫技術、人工智能、機器學習、數據可視化等多個行業和領域。數據挖掘技術的發展歷程數據挖掘技術的發展與相關學科的發展是緊密相關的,伴隨著數據庫技術的發展日益成熟以及應用日益增多,數據量積累的越來越多,在龐雜的數據背后隱藏著的重要信息開始吸引了越來越多科學家的注意力。通常來說儲存數據會使用到是數據庫管理系統,分析數據會使用到的就是機器學習的方法,這二者的結合促進了數據庫中的知識發現的誕生。二十世紀八十年代末,在美國底特律舉行了一次另學術界發生翻天覆地變化的會議——第十一屆人工智能國際聯合會議的專題討論會,在這次會議上知識發現(KDD)一詞第一次在公眾場合出現。在此之后,迄今為止由美國人工智能協會負責召開的以kdd為主題的國際研討會已經召開了很多次,從最初的只有少數人參與的專題討論會發展成為世界各地學者爭先搶后想要參加的國際性學術會議;學者們在會議上研討的重點也在慢慢發生著改變,從最初的單純只是想找到新的方法轉變為了更多的關注應用,集成多種發現策略和技術來解決問題也成為了學者們關注研究的重點,多學科之間的相互交叉滲透更是成為了研究中的香餑餑。所謂的知識開發和探索(kdd)中最常用、最核心的構成部分之一就是數據挖掘(dm)。全球知識發現與數據挖掘技術第四次會議于1998年在國際性的學術會議上大放異彩,不僅是來自世界各地的科學家,研究人員在學術方面進行了廣泛深刻的討論,而且有來自全球的30余家軟件公司給我們生動耐心地介紹展示了他們先進的數據挖掘技術和相應的軟件產品,其中許多已經應用于北美和歐洲等地區。經過十幾年的不斷探索和發展,數據挖掘已成為了一個完全自成系統的應用性學科。數據挖掘的過程圖SEQ圖\*ARABIC3數據挖掘的流程數據挖掘的過程大致上可以分為以下幾步:確定挖掘目的這個階段主要就是為了明確數據挖掘的目的,數據挖掘得出的最終結果可能是無法預見的,但是一開始的目的應該是可以預見的,弄清楚數據挖掘的目的將會達到一舉兩得的效果。數據準備數據集的選擇:根據挖掘的目的選擇合適的數據集。數據的保存與預處理:通過深入地研究保存數據的質量,為進一步分析數據所做好的準備。并且確定了將要開展的挖掘運算操作。常見的進行數據預處理的方法主要包括以下幾種:1)數據清洗:這個方法主要是為了針對缺失值、噪聲、距離群點等情況進行處理。2)數據集成:這個集成放大主要是涉及到了適用于識別、冗余、相關性的分析。3)數據歸約:維歸約、數據壓縮、數量歸約這三種是目前來看最受歡迎和最為常見的數據歸約方法。4)數據變換:光滑,屬性創建,聚集,離散化以及對概念進行分層。數據的轉換:在使用數據挖掘算法之前,很關鍵也很重要的一步就是數據的轉換了。將我們經過保存預處理的數據轉換成一個合適的分析模型。利用合適的分析模型在加上合適的算法才能達到事倍功半的效果。數據挖掘這個階段實際的挖掘工作,包括:先決定怎么樣來創建假設:這個階段可以分為兩種,一種是利用數據挖掘系統給用戶創建假設;另一種是以數據庫中可能出現的知識為基礎,從而產生假設。前一種稱為發現型的數據挖掘,后一種稱為驗證型的數據挖掘REF_Ref22990\r\h[21];選擇合適的工具:利用前面提到的數據挖掘方法挖掘數據庫中的知識[21];證實發現的知識[21]。結果分析這個階段主要是為了解釋并評估結果,通常會用到數據可視化工具。分析所得的結果主要是針對模型的優缺點的,客觀公正的看待自己所建立的模型。改進就是利用分析的結果對模型進行改進優化。數據預處理進行數據的預處理的原因我們在使用數據挖掘技術的時候,會利用到一些算法,因此我們十分希望自己所得到的數據能夠滿足算法的要求,便于得出結果。可事實上,在我們的日常生活中,由于各種有意無意的行為,經常會導致數據的缺失、不完整、甚至是錯誤數據,這對于我們進行數據挖掘十分的不利,因此進行數據預處理至關重要。數據預處理詳解數據預處理的主要手段包括:數據清理、數據集成、數據規約以及數據變換與數據離散化。數據清理的主要任務就是處理缺失值、噪聲數據。我們可以分為兩部分來看,首先來看對缺失值的處理。缺失值的處理分為兩種思想,一種是不要缺失值了,另一種是想辦法補起來。那么何為不要缺失值了,在數據挖掘中稱為忽略元組,大多數情況下是用于缺少類標記的時候,而且只有在針對于元組有不止一個屬性缺失值的情況效果才會好。至于第二種思想,就可以細分為五類了。這五種補缺失值的方法分別為:人工填寫缺失值;使用一個全局常量填充缺失值;使用屬性的中心度量填充缺失值;使用與給定元組同一類的所有樣本的屬性均值或中位數;使用可能的值填充缺失值。最后一種方法就是最常用最受研究者青睞的方法,利用了已有的數據進行了合理的推測得到彌補缺失值的數據,要比其他方法的結果更可靠一些。然后我們來看對噪聲數據的處理,仍然是有兩大類方法。第一類是使用回歸技術,找一個合適的函數擬合非噪聲數據,本質上還是舍棄。第二類是使用離群點分析,通過利用形成簇來去掉離群點。第三類就是利用分箱的方法來光滑數據,具體的又有用箱中位數光滑、用箱邊界光滑。數據集成的主要任務就是進行合并,合并之后就會涉及到同名異義與異名同義的問題了,即數據挖掘中的術語:實體識別。數據集成的另一大任務就是冗余和相關性分析。這一任務可以利用卡方相關檢驗、計算數據間的相關系數、計算數據間的協方差來實現。數據歸約的分類在上文中已經提過了,可以分為三類。維歸約這一類,本質上思想還是化簡,展開來說就是要精簡隨機變量或特征的數量。在維歸約中常見的方法有小波變化和PCA。數量歸約這一類,本質上是替換的思想。具體來說就是把原數據進行替換,用來替換原數據的是那些較小的數據。數據壓縮這一類,見名之義,壓縮的目的就是為了變小,便于存放。數據壓縮就是使用一些變換,將原數據壓縮。數據變化和數據離散化這一部分主要包括:光滑、屬性構造、聚集、規范化、離散化、由標稱數據產生概念分層。規范化常見方法如下:最大—最小規范化: vi'=vi?minAZ-score規范化: vi'=vi?Aσ其中A是屬性A的均值。離散化的常見方法有:通過分箱離散化,通過直方圖分析離散化。這兩種都是無監督的離散化技術。分類算法的研究分類算法總述前文中提到數據挖掘的任務之一就是分類,在現實生活中我們每個人每天都在有意無意間做著分類,分類現象在生活中隨處可見。比如:為了環保而實施的垃圾分類;為了方便查閱書籍圖書館的書都會分門別類放置;為了避免自己的生活被無止境的打擾,我們一般都會分出騷擾電話進行攔截;為了使用方便,生活中我們會將自己的物品分類歸置好分類在生活中處處可見,也為我們的日常生活提供了很多便捷之處,于是我們不禁在想,如果將分類用于生產,那豈不是會有意想不到的收獲嗎。于是在眾多科學家的研究下,出現了幾大分類算法:決策樹算法[24];基于規則的分類器[24];最近鄰算法[24];貝葉斯分類算法[24];人工神經網絡算法[24];支持向量機算法[24]。分類算法的目的就是利用自己設計好的分類函數或分類模型,對數據庫中的數據進行操作,確定某個數據是屬于哪個類別。其中,最常見的就是決策樹算法、貝葉斯算法、最近鄰算法,本文將著重介紹這三種算法。決策樹算法詳解因為決策樹算法兼具了簡單易懂和可解釋性強這兩大優點,深受大眾的喜愛和追捧,在分類算法中占據了一席之地,廣泛存在于數據挖掘和機器學習中。J.R.Quinlan于1979年提出并在之后逐漸修正完善的ID3算法[18],是決策樹算法中最先面世的算法,當然其也有很多的不足。后來有學者在ID3的基礎之上推出了效率更高、實用性更強的C4.5算法,它不僅適用于分類問題,又適用于回歸問題[16]。近幾年,在學術界出現了新的寵兒——選擇性集成,這個概念是由西瓜書的作者周志華教授提出的。而且近年來出現了一種稱為GASEN-b的新的選擇性集成算法,這個算法同樣也是由西瓜書的作者周志華教授所提出的,這個算法是以遺傳算法為基礎的。決策樹算法基本思想與流程決策樹說白了就是一種類似于樹的層次結構,決策樹的根結點相當于樹的根部,決策樹的內部結點相當于樹中靠內的葉子,決策樹的葉結點就相當于樹最外層的葉子。每棵決策樹也像樹一樣,因此我們也可以得知一個根節點、一些內部節點、一些葉結點就構成了一棵決策樹。葉結點也稱為終結點。與葉結點對應的是決策結果,剩下的每個結點對應的都是一個屬性測試;每個結點會包含哪些樣本集合,這是根據屬性測試的結果來進行劃分的;根結點包含的是整個樣本集合。決策樹的基本流程采用的是分而治之的思想。決策樹的結構如下圖:圖SEQ圖\*ARABIC4決策樹的結構決策樹算法的基本流程如下表所示:表SEQ表\*ARABIC1決策樹算法的基本流程輸入:訓練集D={(x1,y1),(x2,y2),,(xm,ym)}屬性集A={a1,a2,,ad}過程:函數TreeGenerate(D,A)生成結點nodeifD中樣本全屬于同一類別Cthen將node標記為C類葉結點;returnendififA=?ORD中樣本在A上取值相同then將node標記為葉結點,其類別標記為D中樣本數最多的類;returnendif從A中選擇最優劃分屬性a*;fora*的每一個值do為node生成一個分支;另Dv表示D中在a*上取值為的樣本子集;ifDv為空then將分支結點標記為葉結點,其類別標記為D中樣本最多的類;returnelse以TreeGenerate(DV,)為分支結點endifendfor輸出:以node為根結點的一棵決策樹從這段偽代碼中可以看出,對于決策樹算法來說,重中之重就是第八行的內容——選擇最優的劃分屬性在結點處進行分裂,而基于不同的劃分屬性方法,決策樹算法又可以細分為ID3算法、C4.5算法以及CART算法。下面我將具體介紹這三種算法。在應對過擬合的問題方面,決策樹采取的是剪枝方法。剪枝可以分為預剪枝和后剪枝兩種。預剪枝:正如名字所說,預剪枝就是先評估再決定劃不劃分。具體來說就是在生成一棵決策樹的過程中,對于每個結點,在選定了最優劃分點劃分之前先要進行評估。對于候選的劃分點,若對其進行劃分對于決策樹泛化性能的提升沒有幫助的話,那么就停止對這個劃分點的劃分,并將當前的這個結點標記為葉結點。后剪枝:見名知意,后剪枝就是為了防止出現過擬合的問題,所以在完整的決策樹建立之后,對已經建立的完整的決策樹進行評估,根據評估結果進行剪枝。具體來說就是先利用從樣本集中劃分出來的訓練集進行訓練擬合構造出完整的決策樹,然后由下到上,對內部結點進行評估,如果對于一個內部結點來說,將這個內部結點對應的子樹用葉結點來替換可以帶來性能的提升,那么就將該內部結點替換為葉結點,同時刪去該內部結點原來有的子樹。ID3算法ID3是決策樹算法的其中之一,利用信息增益來對樣本集中的屬性進行劃分,遞歸的生成決策樹,從而起到做好分類的效果,是決策樹最經典,出現最早的一種算法。ID3算法的基本思想ID3算法的基本流程與上文中的偽代碼一致,ID3算法的具體劃分規則如下:熵是一種用來度量某一系統混亂程度的標準。在剛開始的樣本數據集中肯定是凌亂無比的,熵值會很大,我們為什么要構建決策樹呢?就是為了減小數據的不可預見性,使數據更純。信息熵是一種十分常見的用來衡量一個系統純度的標準,在信息熵的基礎上進行計算可以得到信息增益,利用信息增益來選擇最優的劃分屬性進而確定劃分點就是ID3算法的核心所在。假定樣本集合D中第k類樣本所占的比例為pk(k=1,2,,|y|),那么D的信息熵定義為: (SEQ(\*ARABIC3)信息熵的值越小,代表樣本集合越純,越不混亂。假定樣本集合D中某一離散屬性為a,這個屬性一共有V種取值,DV表示一個樣本集合,這個樣本集合由數據集D中那些在離散屬性a上的取值為av的樣本個所構成,這個樣本集合的個數記為|DV|,則利用這一離散屬性a對整個數據集進行劃分,對應的信息增益就可以用以下公式計算: (SEQ(\*ARABIC4) 其中可以看成是劃分屬性所占的權重。前文中我們提到信息熵的值越小代表這個系統越好,那么結合信息增益的公式來看,在樣本集合確定的情況下,即在Ent(D)確定的情況下,根據某一屬性來對樣本集進行劃分,根據信息熵越小越好的原則來看,信息增益越大,那么利用這一屬性來進行劃分就越好,代表純度提升度越大。ID3算法的實現利用wine數據集與sklearn模塊,實現了ID3算法,模型的準確率為94.44%,所畫出來的決策樹為:圖SEQ圖\*ARABIC5利用ID3算法構建的決策樹我還利用matplotlib對算法所劃分的測試集以及利用模型進行預測所得出的結果進行了可視化,從可視化的結果中我們可以更加清楚明晰的了解到這個模型的分類效果,如下圖所示:圖SEQ圖\*ARABIC6模型效果可視化ID3算法的優缺點ID3算法的優點:訓練過程中包容缺少屬性值的實例。理論簡單,容易實現,受噪音影響很小。速度快,適合于高維數據。ID3算法的缺點:對屬性樣本數較大的屬性有傾向性,受計算信息增益的影響,數量越多。只能處理離散屬性,對于連續屬性無法處理。不支持剪枝操作。C4.5算法C4.5算法的基本思想C4.5算法和ID3算法師出同門,都歸屬于決策樹算法。兩者不同之處就是對屬性劃分所使用的標準不一樣。C4.5基于ID3算法又高于ID3算法,彌補了ID3算法的一些不足,但也有自己的問題。從信息增益的計算公式中我們可以分析出這樣的信息:可取值數目越多,權重就越大,權重越大那么利用這樣的屬性進行劃分就會越好,這也導致了ID3算法有所局限。C4.5算法針對于這一點進行了改進,不在直接使用信息增益來選擇屬性從而選擇出最優劃分點,而是使用了信息增益率來選擇屬性進行劃分。利用信息增益除以了屬性的固有值,便得到了信息增益率。對于ID3算法無法處理連續值的劣勢,C4.5所做的改進是利用二分法的思想,將連續屬性離散化,具體操作如下:假定這個連續屬性是m,則排序成{m1,m2,,mn},排序的規則是按升序,其中m1,m2,,mn代表這個屬性的所有取值。利用相鄰的屬性的取值構成的區間[mi,mi+1),從這個區間中任意取值所產生的劃分結果是一樣的。一般來說我們會取區間的中位點來作為候選劃分點,即: (SEQ(\*ARABIC5) 接下來我們來計算信息增益率,計算的時候是針對每個待選的劃分點的,我們會分別計算每個待選劃分點所對應的信息增益率,找到那個能使得信息增益率最大的待選劃分點,將這個候選劃分點作為最終的劃分點。具體的計算如下所示: (SEQ(\*ARABIC6)其中在連續屬性上取值小于候選劃分點的樣本就歸在類里,在這一屬性上取值大于候選劃分點的樣本歸在類里。針對于非連續的屬性,信息增益率的計算做了改進,具體的計算公式為: (SEQ(\*ARABIC7) (SEQ(\*ARABIC8)IV(a)稱為屬性a的固有值。C4.5算法化簡為繁,稱之為化簡為繁的原因如下。C4.5算法沒有采用直接選取信息增益率最大的候選劃分屬性來作為最優劃分屬性的方法,而是采用了一種啟發式的方法:先利用信息增益,篩選掉一部分屬性。具體來說就是要先從所有的候選劃分屬性中篩選掉那些信息增益低于平均水平的屬性,留下那些信息增益較高的屬性。然后從余留下來的這些屬性中再來選擇信息增益率最高的屬性來作為最優的劃分屬性。雖然增加了運算量但是卻在理解性方面有了很大的提升。C4.5算法的實現C4.5算法我利用了Balloons數據集,能編寫代碼實現,所得到的結果如下圖:圖SEQ圖\*ARABIC7C4.5算法所建立的決策樹C4.5算法的優缺點C4.5算法的優點:彌補了ID3算法的缺點,使用信息增益率來選擇最優劃分屬性。分類結果較為可靠。能夠處理具有連續值的屬性。C4.5算法的缺點:用信息增益率代替信息增益選擇最優劃分點的策略帶來了對取值數目較少的屬性的由偏向性的問題。算法的效率非常低,算法的低效來源于C4.5算法在運行的過程中需要對數據集進行多次順序掃描和排序。在選擇最優劃分點的時候并沒有考慮條件屬性間的相關性問題,有可能會影響正確性。Cart算法CART算法的基本思想CART算法的英文全稱是classifactionandregressiontree,從其英文全稱中我們可以得知CART算法一個很大的特別之處——不單只適用于分類也適用于回歸。CART算法的核心思想有兩個,第一個思想就是使用訓練樣本集來遞歸的對屬性進行劃分從而生成決策樹;第二個思想就是進行剪枝預防過擬合的現象。而且CART算法在處理分類問題的時候從本質上來說就是在生成一棵二叉樹。也就是說,每次都會根據樣本點在每個屬性上的每種取值與利用基尼指數算的劃分標準是否相等來把數據分成兩部分。CART算法在用于解決回歸問題時是使用平方誤差最小準則作為評估標準來選擇最優劃分點;在用于解決分類問題的時候是使用基尼指數作為評估標準來選擇最優劃分屬性的。與熵類似,基尼值也是一種經常用來衡量一個數據集的純度的標準。基尼值越小說明數據集越純。基尼值的計算公式為: (SEQ(\*ARABIC9)對于某一屬性a來說,其所對應的基尼指數的計算公式為: (SEQ(\*ARABIC10)我們會選擇將那些基尼指數取值最小的屬性來進行結點分裂。Cart算法的停止條件是結點中樣本個數小于閾值,或者樣本集的基尼指數小于指定閾值,或者沒有更多特征[28]。圖SEQ圖\*ARABIC8CART算法的基本流程Cart算法的實現利用wine數據集與sklearn模塊,實現了CART算法,模型的準確率為96.3%,所畫出來的決策樹為:圖SEQ圖\*ARABIC9CART算法所構建的決策樹我還利用matplotlib對算法所劃分的測試集以及利用模型進行預測所得出的結果進行了可視化,從可視化的結果中我們可以更加清楚明晰的了解到這個模型的分類效果,如下圖所示:圖SEQ圖\*ARABIC10CART算法效果可視化Cart算法的優缺點Cart算法的優點:能夠處理連續值,能處理離散值,也支持剪枝。既可用于分類問題也可用于回歸問題。簡單直觀。Cart算法的缺點:受數據集的變化影響較大,哪怕是一點點的代表也會導致樹結構的巨變。分類決策不應該由某一屬性決定,應該由一組屬性來決定。貝葉斯算法詳解樸素貝葉斯算法的基本思想與流程樸素貝葉斯算法的理論基礎是貝葉斯定理。Bayes’theorem誕生于18世紀,是由英國數學家ThomasBayes提出[29],在概率論領域中起著十分重要的作用。貝葉斯定理是用于解決隨機事件A與B的條件概率的問題的。P(A):代表A事件發生的概率,P(B):代表B事件發生的概率;P(A|B):B事件發生的條件下A事件發生的概率,A事件發生的后驗概率;P(B|A):A事件發生的條件下B事件發生的概率,B事件發生的后驗概率。用這四個概率中已知的三個概率進行推測得到第四個概率,這就是貝葉斯定理所能解決的問題。例如:(SEQ(\*ARABIC11)就可以通過已知的P(A|B),P(B),P(A)來計算P(B|A)。樸素貝葉斯算法的基本思想是:針對已經知道的待分類樣本,當該樣本發生的時候,計算所有可能的類別出現的概率,最后所求項的類別就是計算得到的概率最大的類別。那么樸素貝葉斯的分類過程是怎么樣的呢?表SEQ表\*ARABIC2樸素貝葉斯算法的過程設X={a1,a2,,am}為一個待分類項,而每個a為X的一個特征屬性。類別集合為:C={y1,y2,,yn}。計算P(y1|X),P(y2|X),,P(yn|X)。如果P(yk|X)=max{P(y1|X),P(y2|X),,P(yn|X)},則X的類別為yk。整個過程中最重要的就是第3步計算條件概率,依據貝葉斯定理我們可以得出:(SEQ(\*ARABIC12)P(X)對于所有類別都是一樣的,所以我們需要做的就是最大化分子,最大化了分子就可以得出概率最大的類別,計算如下:(SEQ(\*ARABIC13)圖SEQ圖\*ARABIC11樸素貝葉斯的分類過程為了避免因為訓練集中從未出現過的屬性其概率為0而在最后計算的時候因為乘了0導致整個式子為0的情況發生,我們在樸素貝葉斯算法中使用的是拉普拉斯修正方法,即:(SEQ(\*ARABIC14)(SEQ(\*ARABIC15)xi的含義是x在第i個屬性上的取值,Dc,xi代表一個樣本集合,這個樣本集合要滿足兩個條件,第一個條件是分類結果為C;第二個條件是在第i個屬性上取值為xi。這個樣本集合就是由這樣的樣本組成的。的含義是訓練集D中可能出現的類別總數,Ni的含義是第i個屬性可能出現的取值總數。樸素貝葉斯算法的實現利用的仍然是wine數據集加sklearn模塊,用樸素貝葉斯算法進行分類準確率為98.15%,可視化得到的結果為:圖SEQ圖\*ARABIC12樸素貝葉斯的效果可視化樸素貝葉斯算法的優缺點樸素貝葉斯算法的優點:樸素貝葉斯算法具有極其成熟的理論基礎——貝葉斯定理,有穩定的分類效率。在小規模的數據集上表現良好,在增量式的訓練方面表現良好。對缺失數據不是十分敏感,可以用拉普拉斯法來進行修正。樸素貝葉斯算法的缺點:要求個屬性之間相互獨立,但現實生活中很難保證相互獨立,所以經常導致效果不是很好。輸入數據的不同的表達形式對結果影響很大。樸素貝葉斯要通過數據和先驗概率來確定后驗概率,從而決定分類,所以分類決策存在一定的誤差。最近鄰算法詳解最近鄰算法的基本思想與流程最近鄰算法是另一種常見且重要的分類算法,在非參數法中有著重要的地位,具有很高的應用價值[16]。同時,最近鄰算法也擁有十分成熟的理論基礎,尤其是在用于文本分類的時候,效果特別好。最近鄰算法的核心思想是由距離未標記樣本最近的K個最近鄰來決定未標記樣本的類別。未標記樣本的類別和與已知類別的距離最近的K個鄰居一致。最近鄰算法假定所有實例都是屬于n維歐式空間中的點。算法的實現過程是:首先計算距離:選擇一個點,計算其與其他點之間的距離確定鄰居:確定合適的K值,找出K個鄰居統計找最大:對算出的最近的K個距離進行統計,找出分類比例最大的,即為對應的類別距離度量:在計算相似性的時候,一般使用歐式距離。Lp距離的計算公式為:(SEQ(\*ARABIC16)當p=1的時候Lp就是常說的曼哈頓距離,當p=2的時候,Lp距離就是更為常用的歐式距離。N為空間中的兩個點(X1,X2),之間的歐式距離為:(SEQ(\*ARABIC17)表SEQ表\*ARABIC3最近鄰算法的偽代碼輸入:A[n]為N個訓練樣本的分類特征;
k為近鄰個數;選擇A[1]至A[k]作為x的初始近鄰;計算初始近鄰與測試樣本x間的歐氏距離d(x,A[i]),i=1,2,...k;按d(x,A[i])從小到大排序;計算最遠樣本與x間的距離D,即max{d(x,A[j])|j=1,2...k};for(i=k+1;i<n+1;i++)計算A[i]與x間的距離d(x,A[i]);If(d(x,A[i])<D)then用A[i]代替最遠樣本;按照d(x,A[i])從小到大排序;計算最遠樣本與x間的距離D,即max{d(x,A[j])|j=1,...i};計算前k個樣本A[i]所屬類別的概率,i=1,2,...k;具有最大概率的類別即為樣本x的類;end
for輸出:x所屬的類別。最近鄰算法的實現仍然利用wine數據集和sklearn模塊,得到的準確率為79.63%,因為K值對KNN算法的影響非常大,為了能得到最好的分類效果,我先對最佳的K值進行了搜索,將結果進行可視化之后發現,最佳的K值應該是4。然后我對KNN分類器的分類效果進行了可視化。圖SEQ圖\*ARABIC13尋找最佳K值圖SEQ圖\*ARABIC14KNN算法分類效果可視化最近鄰算法的優缺點最近鄰算法的優點:簡單有效,理論成熟。算法復雜度低。方便進行多分類任務。最近鄰算法的缺點:計算量的大,要計算到每個點之間的距離。k值的選取很關鍵,k太小容易過擬合,k太大容易欠擬合。對于離群點、不平衡樣本很敏感。是一種消極學習的方法。分類算法的對比上文中我對ID3、CART、C4.5、樸素貝葉斯、最近鄰算法的思想以及基本流程進行了論述,并且利用Python語言基于wine數據集和Balloons數據集進行了實現。其中都對wine數據集進行分類,所使用的算法不同得出的準確率也有所不同。將代碼運行三次,得到的準確率情況為如下。ID3算法的準確率分別為:94.44%、88.89%、92.59%;CART算法的準確率分別為:87.04%、96.30%、94.44%;樸素貝葉斯算法的準確率分別為:98.15%、100%、96.30%;KNN算法的準確率分別為:62.96%、70.37%、75.93%。這幾種算法的平均準確率分別為:ID3(91.97%)CART(92.59%)樸素貝葉斯(98.15%)KNN(69.75%),從對同一數據集進行分類的結果來看,樸素貝葉斯算法的分類效果是最好的。但是我們也可看到在使用樸素貝葉斯算法的時候,對wine數據集分類出現了準確率為100%的情況,這說明模型出現了過擬合的現象。結合這幾種算法的優缺點以及實現原理來看,因為樸素貝葉斯算法是以貝葉斯定理為基準的,所以對于條件獨立這一方面有很強的要求,但是日常生活中產生的數據總不太可能是如此規整的,做不到很強的條件獨立性,這就給使用這個算法帶來了很大的不便之處。在日常生活中為了使自己所設計的模型能夠得到別人的認可、我們一般會要求可解釋性強一點,那么這個時候來選擇決策樹算法就在合適不過了。其中,決策樹算法中ID3算法是最基礎也是最原始的算法,由于這個算法本身的缺陷,研究人員開發出了新的算法,后續開發的算法不論是在準確率上還是在可解釋性方面都要比ID3算法強一點,CART算法已經不是單純的分類算法了,其也可以用于回歸,適用性更強,可以使用的范圍也更廣。對于KNN算法,因為其是一種基于樣本實例的算法,對K值的依賴性很大,確定最佳K值會額外增加大量工作量。另外分類算法又可以分為單一的分類算法與集成學習算法,像本文中提到的這幾種算法就歸屬于單一分類算法,另外常見的單一分類算法還有支持向量機,這種算法可以有效的避免維數災難,也較好的解決了局部極小點的問題。俗話說眾人拾柴火焰高,在算法這一領域這句諺語也很適用,很多情況下,只靠單一的分類算法是無法得到令人滿意的結果的,這時候集成學習算法就派上了大用場,常見的集成學習算法有:裝袋、boosting。實現算法相關內容數據集介紹本文在實現ID3算法、C4.5算法、CART算法的時候,是用的數據集為wine數據集和balloon數據集,這兩個數據集都是從HYPERLINK"/ml/index.php"/ml/index.php這個網站上下載的,這個網站是美國加州大學所提出的,用來存放可以用于機器學習、深度學習、數據挖掘的數據的。這個網站打開之后是這樣的:圖SEQ圖\*ARABIC15UCI數據庫網站然后進入該網站的數據庫中,如下圖:圖SEQ圖\*ARABIC16UCI數據庫從這個界面中我們可以看到,UCI這個網站上的數據集分門別類的放置,很方便我們尋找適合自己使用的數據集。由于要用于分類問題,所以我選擇了wine和Balloons這兩個數據集。wine數據集的介紹Wine數據集一共有14列,178行。這14列中,第1列代表的是類別,即酒屬于哪一類,剩余的13列,每列代表的都是一種屬性,這13種屬性發揮作用共同決定酒的類別。下圖貼上我利用Python語言在jupyternotebook中實現的對數據集的讀取截圖。從截圖中我們可以清晰地看到數據集的信息,我們還利用類別為分組對象,統計了一下每個類別的樣本數量,在圖17中也有顯示,從圖17中看出每類的樣本數量分別為59,71,48,看起來相差不是很大,接著我們用matplotlib利用箱圖進行一下可視化,直觀的觀看一下差距,可以看出樣本的分布還是十分平衡的,在本文中我們只附上了其中四個屬性的箱圖結果。圖SEQ圖\*ARABIC17wine數據集的信息圖SEQ圖\*ARABIC18wine數據集的前五行圖SEQ圖\*ARABIC19箱圖結果1圖SEQ圖\*ARABIC20箱圖結果2圖SEQ圖\*ARABIC21箱圖結果3Balloons數據集的介紹Balloons數據集一共有5列,16行。這5列中,第5列代表的是氣球是否是扁平的,剩余的4列,每列代表的都是一種屬性,分別為顏色,尺寸,對氣球的動作,年齡。下圖貼上我利用Python語言在jupyternotebook中實現的對數據集的讀取截圖,從圖21中我們可以看出Balloons數據集的詳細信息,分類的結果為該氣球是不是為扁平狀態。同樣我們以類別為分組對象,對每類的數據量進行了統計,從代碼運行的結果來看,數據集中的樣本分布很是平衡。分布平衡的數據集十分有利于我們利用算法進行處理。圖SEQ圖\*ARABIC22Balloons數據的信息圖SEQ圖\*ARABIC23Balloons數據集的展示圖SEQ圖\*ARABIC24Balloons數據集的樣本分布情況所使用語言、模塊、編譯器介紹Python語言的介紹在編程的領域里,有著“人生苦短,我用Python”的說法。我剛開始接觸的編程語言是C語言,然后是java,之后才是Python。對于一道很簡單的兩個數的加法題,C語言需要用10行代碼來實現,java語言則需要9行代碼來實現,python只需要4行代碼就可以實現,我們有理由相信在處理一些困難的問題的時候Python語言的代碼量也會是最少的。在接觸過C語言和java語言之后再接觸Python語言,就會發現利用Python語言編寫代碼的時候一般就是腦子里怎么想就怎么編寫就可以,不需要向C和java那樣還需要先導入頭文件,變量還要預先聲明,輸出還在格式方面有嚴格的規定。我想正是因為Python語言簡潔易懂,可讀性更強、也更容易理解才會有更多的人喜歡Python語言吧。Python是由GuidovanRossum所創建的,可以說只要會英文就能讀懂Python語言編寫的代碼。而且Python語言的可移植性特別好,我們再也不需要擔心Windows下寫的代碼在linux下不能使用的問題了。同時Python語言的交互性也很好,在編寫的代碼的過程中你會有一種有人在和你交流的感覺,很人性化。但是Python語言也有其欠缺之處,比如Python語言在處理一些較為復雜的問題的時候,一般來說所用時間會比其他語言更久。Sklearn庫的介紹對于機器學習和深度學習的學習者來說,sklearn庫并不陌生。在sklearn庫中封裝著大量的算法,利用sklearn庫我們可以很容易的實現一些算法,使用之前我們要先導入sklearn庫。我們可以利用sklearn導入數據集,比如導入常見的iris數據集;利用sklearn對數據進行預處理,可以做歸一化啊、正則化啊、one-hot編碼啊,這些在tensorflow中也很常見。可以利用train_test_split()方法對數據集進行劃分,這個方法看名字就可以知道用途;利用sklearn中內置的fit()、score()、predict()這些方法可以對模型進行操作,得到我們想要的結果。具體來說,sklearn庫可以分為七個部分,即數據導入外加六大模塊。這六大類模塊分別為:分類、回歸、聚類、降維、預處理以及模型選擇。數據導入又可以細分為三部分,利用load_來導入小型數據集;利用fetch_來導入大型數據集;利用make_來進行數據集的創建,具體實現算法的方法在官網都有介紹,忘了的時候可以在官網進行查看。圖SEQ圖\*ARABIC25sklearn庫官網Matplotlib庫的介紹Matplotlib是用來作數據可視化的一種十分方便且好用的庫。利用matplotlib庫可以實現餅圖、條形圖、折線圖、散點圖、詞云等,只需要在使用之前導入matplotlib庫,對于中文無法顯示的問題還需要添加下面這句代碼:matplotlib.rc("font",family='YouYuan'),對于圖形顯示不出來的還需要添加%matplotlibinline這句代碼。在實現各種圖的時候只需要調用相對應的方法即可。將數據可視化可以幫助我們很方便清楚的觀看數據,對數據進行對比,更容易抓住重點。圖24為matplotlub庫的官網截圖,圖25是自己在使用matplotlib庫的時候使用度比較高的方法總結。圖SEQ圖\*ARABIC26matplotlib官網截圖圖SEQ圖\*ARABIC27常用方法總結Pandas模塊的介紹Pandas模塊對于數據挖掘的工作異常重要,我們在日常生活中得到的數據大部分情況下是凌亂無比的,一般來說不可能直解可以用于算法,這時候就需要提前對數據進行一些處理,使其符合我們算法的要求,這便用到了pandas模塊。可以利用pandas來讀取文本文件、csv文件、excel文件,對讀取的數據緊接著就可以進行處理。對數據進行過濾,提取特定的我們需要的數據,對缺失值進行處理,對數據進行求最大值啊、求最小值、按組分啊,這些都能在最大程度上給我們后續對數據進行操作提供幫助。Jupyternotebook的介紹Jupyternotebook是一個交互式的編寫代碼的軟件,在最開始接觸jupyernotebook的時候我以為這個軟件只能用來編寫Python代碼,僅僅是一個很好的編寫Python代碼的交互式軟件,后來使用下來才發現,其實jupyternotebook能做的事情不止是編寫Python代碼那么簡單,jupyternotebook還支持markdown,可以利用jupyternotebook來做筆記,可以創建共享文檔,使用的時候利用win+r打開運行命令快捷鍵,然后輸入cmd打開命令提示符,接著在命令提示符里輸入jupyternotebook就可以打開notebook,如果遇到無法自己彈出,可以復制網址在瀏覽器里打開。然后根據需要進行選擇語言進行編寫。graphviz模塊的介紹我相信不管是在我們的日常生活中還是在我們的學習生活中,圖形都能使我們更加直觀清楚的了解一些東西,大部分人是沒有耐心去讀一大段文字的,相反圖片總是能吸引人們的注意力。目前市面上用來畫圖的軟件有很多,比較常見的應該是幕布、Xmind,然而這些對于程序員來說使用的并不是很多,對于程序員來說使用最多的應該就是利用eclipse畫er圖以及利用graphviz畫圖。第一次接觸到graphviz是在學校數據挖掘的實訓課上,老師給我們介紹了這個畫圖工具,當時就是用來畫決策樹的,當然本文也利用到了graphviz畫決策樹。經過了解之后,自己才明白graphviz所能做的絕對不是單純的畫決策樹這么簡單,graphviz是國外一個實驗室開發的開源的工具,被譽為程序員的畫圖利器。當然談到graphviz就必須提到dot語言了,因為graphviz就是來處理dot語言從而來畫圖的。利用graphviz可以繪制無向圖、有向圖、流程圖、鏈表等,可以利用dot語言為節點起名字,給節點設置一些屬性,繪制出來的圖形也很簡潔易懂,方便了我們獲取有用的信息。結論伴隨著我國綜合國力的不斷提升,經濟文化軟實力越來越強,人們早已不再只滿足于簡單的衣食住行了,不僅在文化娛樂方面的需求大幅提升,而且對于衣食住行來說,更多人追求的是更好的服務,更貼切的推薦。從幾十年前摩托羅拉公司研發出了第一部智能手機到現在;從最開始的智能手機支持WAP1.1無線上網到現在發展到了6.0;從一開始功能簡單手寫輸入識別準確率極低到現在可以通過語音控制手機功能覆蓋生活方方面面,可以說更好的為我們提供了服務,方便了我們的生活。但是這些方便的背后,特別是隨著淘寶的流行,數據量也在激增,這一點從手機的內存容量不斷擴大,直逼電腦的容量也能看出來。龐雜的數據背后隱藏著的豐富的信息如果利用好了,那么將會為大幅提升我們的生活水平添磚加瓦。在一系列學科的不斷發展與龐雜數據背后誘人的信息的吸引下,數據挖掘技術應運而生,在數據挖掘技術誕生之后,歷經數十年的發展,也的的確確使我們的生活更加方便了,省下了很多我們逛商場挑選中意物品的時間,淘寶、拼多多、京東大幅使用推薦算法,讓我們能夠在最短的時間內買到適合自己的東西。像抖音、火山、今日頭條、微博這類娛樂性的軟件,利用推薦算法也能讓我們最大程度的避免看見自己不感興趣的內容,為我們的好心情保駕護航。在未來的生活中,可以說各個領域都會用到數據挖掘技術,使用好這個技術可以使我們提前預知一些危險,最大程度避免損失,也能最大程度地節省時間,讓我們在有限的時間內做更多的事情,提高我們的效率。相信很多人聽過這樣一句話——人分三六九等,那么這又會涉及到數據挖掘技術中很重要的一個分支——分類。從大自然到我們的日常生活,從雞零狗碎的小事到至關重要的大事,處處體現著分類的思想。將事物、要做的事情分類既能幫助我們更快更準確的找到自己想要的又能使我們更專注有效的完成多件事情。在專家學者的不懈努力下,目前已經有很多分類算法面世,最基礎也是使用最多的莫過于是決策樹、貝葉斯以及最近鄰算法。在上文中我論述了這些算法的原理以及優缺點,并利用代碼和從UCI官網上下載的數據進行了實現,直觀的感受就是凌亂無章的數據經過分類算法的處理之后很容易看出所屬類別,我想在這些基礎算法之上進行更深入的研究,使其更符合工業的需求,然后投入使用一定會極大的方便我們的日常生活的。比如說樸素貝葉斯算法會要求各屬性之間相互獨立,事實上在現實生活中很多事情之間都是或多或少會有關聯的,很難做到相互獨立,于是就有了貝葉斯信念網絡。顯而易見,這些基礎算法用于生產實踐中是需要進一步改進的。
參考文獻DuXianping,XuHongyi,ZhuFeng.Adataminingmethodforstructuredesignwithuncerta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙漿篩選與凈化設備的運行與維護考核試卷
- 海洋油氣開采中的海洋生物多樣性保護考核試卷
- 紙板容器生命周期分析考核試卷
- 終端設備在水下通信技術考核試卷
- 林業與地方特色農產品的區域品牌營銷考核試卷
- 纖維素纖維在聲學材料中的應用考核試卷
- 種子種苗在氣候變化適應中的作用考核試卷
- 玻璃纖維增強型塑料水處理設備的制備考核試卷
- 畜禽智能養殖環境監測與調控系統考核試卷
- 南京旅游職業學院《交通運輸工程前沿講座》2023-2024學年第二學期期末試卷
- 人行天橋施工組織設計方案
- 工程設計管理規定
- 信息通信網絡線務員
- 學習解讀2023年《堤防運行管理辦法》《水閘運行管理辦法》課件
- 新課標背景下課堂教學中的跨學科教學探究 論文
- 安徽筑格橋梁構件有限公司高端工程金屬橡膠產品(公路橋梁伸縮裝置、板式橡膠支座、盆式橡膠支座、QZ球形支座、橡膠止水帶等)項目 環境影響報告書
- 危險廢物填埋場
- 視線設計、座位排布分析
- YY 0780-2018電針治療儀
- RB/T 039-2020檢測實驗室儀器設備計量溯源結果確認指南
- GB/T 39043-2020游樂設施風險評價危險源
評論
0/150
提交評論