數據挖掘筆記

數據挖掘(KDD)

(1)數據清理(消除噪聲和刪除不一致數據)
(2)數據集成(多種數據源能夠組合在一塊兒)
(3)數據選擇(從數據庫中提取與分析任務相關的數據)
(4)數據變換(經過彙總或彙集操做,把數據變換和統一成適合挖掘的形式)
(5)數據挖掘(基本步驟,使用智能方法提取數據模式)
(6)模式評估(根據某種興趣度度量,識別表明知識真正有趣的模式)
(7)知識表示(使用可視化和知識表示技術,向用戶提供挖掘的知識)
算法

機器學習

監督學習(分類):學習中的監督來自訓練數據集做用標記的實例。數據庫

無監督學習(聚類):學習過程是無監督的,由於輸入實例沒有類標記,咱們可使用聚類發現數據中的類。編程

半監督學習:機器學習技術,在學習模型時,它使用標記的和未標記的實例。在一種方法中,標記的實例用來學習類模型,而未標記的實例用來進一步改進類數組

邊界。能夠把屬於一個類的實例看作正實例,而屬於另外一個類的實例爲負實例。服務器

主動學習:讓用戶在學習過程當中扮演主動角色。主動學習方法要求用戶對一個可能來自未標記的實例集或由學習程序合成的實例進行標記。給定能夠要求標記markdown

的實例數量的約束,目的是經過主動地從用戶獲取知識來提升模型質量。網絡

數據庫系統研究關注爲單位和最終用戶建立、維護和使用數據庫,特別是已創建了數據建模、查詢語言、查詢處理和優化方法、數據存儲以及索引和存取方法數據結構

的公認原則。架構

信息檢索:

搜索文檔或文檔中信息的科學。文檔能夠是文本或多媒體,而且可能駐留在Web上。app

信息檢索與數據庫系統的差異:信息檢索假定所搜索的數據是無結構的;信息檢索查詢主要用關鍵詞,沒有複雜的結構。

主題模型:一個文本文檔集的主題能夠用詞彙表上的機率分佈建模。

數據挖掘應用:商務智能和搜索引擎。

商務智能提供商務運做的歷史、現狀和預測視圖,例子包括報告、聯機分析處理、商務業績管理、競爭情報、標杆管理和預測分析。商務智能的聯機分析處理

依賴於數據倉庫和多維數據挖掘。分類和預測技術是商務智能預測分析的核心。

搜索引擎:專門的計算機服務器,在Web上搜索信息,用戶查詢搜索結果用一張表返給用戶。採樣能夠包含網頁、圖像和其餘類型的文件。它不一樣於網絡目錄(

由人工編輯管理),而搜索引擎是按算法運行的,或者是算反和人工輸入的混合。本質上是大型挖掘應用,包含爬行(計算機程序,系統、自動瀏覽網頁)、

索引和搜索。

數據挖掘主要問題

挖掘方法

挖掘各類新的知識類型:從數據特徵化與區分到關聯與相關性分析、分類、迴歸、聚類、離羣點分析、序列分析以及趨勢和演變分析。

挖掘多維空間中的知識:在大型數據集中搜索知識時,咱們可能在不一樣抽象層的多維組合中搜索有趣模式,稱之爲多維數據挖掘

用戶界面

交互挖掘:容許用戶在挖掘過程當中動態的改變搜索的聚焦點,根據返回的結果提煉挖掘請求

結合背景知識:用於模式評估,指引搜索有趣的模式。

數據挖掘結果的表示和可視化:系統採用有表達能力的知識表示,以及用戶友好界面和可視化技術。

有效性和可伸縮性

爲了有效的從多個數據庫或動態數據流的海量數據中提取信息,數據挖掘算法必須是有效的和可伸縮的,也就是運行時機必須是可預計的、短的和能夠被應用接受的。

並行、分佈式和增量挖掘算法:首先把數據劃分紅若干「片斷」,每一個片斷並行處理,搜索模式。並行處理能夠交互,來自每部分的模式最終合併在一塊兒。

數據庫類型的多樣性

處理複雜的數據類型

挖掘動態的、網絡的、全球的數據庫:互聯網挖掘、多源數據挖掘和信息網絡挖掘。

數據挖掘與社會

保護隱私的數據挖掘

無形的數據挖掘:把數據挖掘合併到它們的組件中,提升功能和性能。用戶不須要數據挖掘算法的任何知識,只需點擊鼠標就能進行數據挖掘或使用數據挖掘。

屬性:數據字段,表示數據對象的一個特徵。屬性、維、特徵和變量能夠互換地使用。

標稱屬性:值是一些符號或事物的名稱。又被看作是分類的。在計算機科學中,這些值也被看作是分類的。

二元屬性:一種標稱屬性,只有兩個類別或狀態:0或1,0表明示該屬性不出現,而1表示出現。

序數屬性:可能的智之間具備意義的序或秩評定,可是相繼值之間的差異是未知的。序數屬性獲得中心趨勢能夠用衆數和中位數表示,可是不能定義均值。

注意:標稱、二元和序數的屬性都是定性的。它們描述對象的特徵,而不給出實際大小或數量。

數值屬性:定量的,計她是可度量的量,用整數或實數值表示。數值屬性是能夠區間標度的或比率標度的。

區間標度屬性;用相等的單位尺度度量。區間屬性的值有序,能夠爲正、0或負。

比率標度屬性是具備零點的數值屬性。也就是說,若是度量是比率標度的,則咱們能夠說一個值是另外一個的倍數。此外,這些值是有序。

離散屬性具備有限或無限可數個值,能夠具備數值值。若是一個屬性可能的值集合是無限的。可是能夠創建一個與天然數的一一對應,則這個屬性是無限可數的。

截尾均值:丟棄高低端值後的均值,對於傾斜(非對稱)數據,數據中心更好度量是中位數。在機率論和統計學,中位數通常用於數據數值。

具備一個、兩個、三個衆數的數據集合分別稱爲單峯、雙峯和三峯的。

具備兩個或者更多衆數的數據是多峯的,在另外一種極端狀況下,若是每一個數據值僅出現一次,則它沒有衆數。

MapReduce編程模型

迭代(iteration),遍歷輸入數據,並將之解析成key/value對。

將輸入key/value對映射(map)成另一些key/value對。

依據key對中間數據進行數組(grouping)。

以組爲單位對數據進行歸約(reduce)。

迭代,將最終產生的key/value對保存到輸出文件。

Hadoop是一個數據處理框架,而在當前大多數應用中處理數據的主力是標準的關係數據庫。SQL是針對結構化數據設計的,而Hadoop最初的許多應用針對的是

文本這種非結構化數據。SQL是一種查詢語言,將Hadoop做爲其執行引擎。

具體比較

1.用向外擴展代替向上擴展

Hadoop的設計就是爲了可以在商用PC集羣上實現向外擴展的架構。添加更多資源,對於Hadoop集羣就是增長更多的機器。一個Hadoop羣的標配是十至數百臺計
算機。

2.用鍵/值對代替關係表

關係數據庫的一個基本原則是讓數據按某種模式存放在具備關係型數據結構的表中。大數據集每每是非結構化或半結構化的。Hadoop中的來源能夠有任何形式

,但最終會轉化爲鍵/值對以供處理。

3.用函數式編程(MapReduce)代替聲明式查詢(SQL)

SQL從根本上說是一個高級聲明式語言,查詢數據的手段是,聲明想要的查詢結果並讓數據庫引擎斷定如何獲取數據。在MapReduce中,實際的數據處理步驟是

由開發者指定的,它很相似於SQL引擎的一個執行計劃。SQL使用查詢語句,而MapReduce則使用腳本和代碼。利用MapReduce能夠用比SQL查詢更爲通常化的數

據處理方式。

4.用離線批處理代替在線處理

Hadoop是專爲離線處理和大規模數據分析而設計的,它並不適合哪一種對幾個記錄隨機讀寫的在線事務處理模式。Hadoop最適合一次寫入,屢次讀取的數據存儲

要求。

例:統計一組文檔中每一個單詞出現的次數
define wordCount as MultiSet;
for each document in documentSet{
T=tokenize(document);
for each token in T{
wordCount[token]++;
}
display(wordCount);
}
這個程序只適合處理少許文檔,一旦文檔數量激增,就不能勝任。例如想編寫一個垃圾郵件過濾器來獲取接收到的幾百萬封垃圾郵件中常用的單詞。使用

單臺計算機遍歷全部文檔將會很是費時。重寫程序,讓工做能夠分佈在多臺機器上,每臺機器處理這些文檔的不一樣部分。當全部機器都完成時,第二個處

理階段將合併這些結果。第一階段要分佈到多臺機器上去的僞代碼爲:

define wordCount as Multiset;
for each document in documentSubset{
T=tokensize(document);
for each token in T{
wordCount[token]++;

}
sendToSecondPhase(wordCount);
第二階段的僞代碼爲:
define totalWordCount as Mutiset;

for each wordCount received from firstPhase{
multisetAdd(totalWordCount,wordCount);
}

}
該程序的另外一個缺點是Wordcount(和totalwordcount)被存儲在內存中。當處理大型文檔集時,一個特定單詞的數量就會超過一臺機器的內存容量。

爲了使單詞統計程序工做在一個分佈式計算機集羣上,須要添加如下功能。

(1)存儲文件到許多臺計算機上

(2)編寫一個基於磁盤的散列表,使得處理不受存容量限制。

(3)劃分來自第一階段的中間數據(即WordCount)

(4)洗牌這些分區到第二階段中合適的計算機上。

MapReduce程序的執行分爲兩個主要階段,爲mapping和reducing。每一個階段均定義爲一個數據處理函數,分別被稱爲mapper和redcucer。在mapping階段,MapR

educe獲取輸入數據並將數據單元裝入mapper,在reducing階段,reducer處理來自mapper的全部輸出,並給出最終結果。

簡而言之,mapper意味着將輸入進行過濾盒轉換,使reducer能夠完成聚合。MapReduce的設計創建在編寫可擴展,分佈式程序的豐富經驗之上。

MapReduce框架中編寫的應用程序就是定製化mapper和reducer的過程,其數據流以下
(1)應用的輸入必須組織爲一個鍵/值對的列表List(

數據可視化旨在經過圖形表示清晰有效的表達數據。

基於像素的可視化技術

像素的顏色反映該維的值。對於一個m維數據集,基於像素的技術在屏幕上建立m個窗口。每維一個。記錄的m個維值映射到這些窗口中對應位置上的m個像素,

像素的顏色反映對應的值。

在窗口內,數據值按全部窗口共用的某種全局序安排。全局序能夠用一種對手頭任務有必定意義方法,經過對全部記錄排序獲得。

在基於像素的技術中,數據記錄也能夠按查詢依賴的方法排序。例如,給定一個點查詢,咱們能夠把全部記錄按照與該點查詢的類似性的遞減序排序。

幾何投影可視化技術

幫助用戶發現多維數據集的有趣投影。首要挑戰是設法解決如何在二維顯示上可視化高維空間。

散點圖使用笛卡爾座標顯示二維數據點。使用不一樣的顏色或形狀表示不一樣的數據點,能夠增長第三維。對於維數超過4的數據集,散點圖通常不太有效。散點圖矩陣是散點圖的一種有用擴充。對於n維數據集,散點圖矩陣是二維散點圖的nxn網格,提供給每一個維與全部其餘維的可視化。

相關文章
相關標籤/搜索