大數據常用的演算法
『壹』 澶ф暟鎹鏈夊摢浜涚畻娉
澶ф暟鎹鐨勭畻娉曞寘鎷錛
涓銆佹暟鎹鎸栨帢綆楁硶
1. 鍒嗙被綆楁硶
鍒嗙被綆楁硶鏄澶ф暟鎹涓甯哥敤鐨勬暟鎹鎸栨帢綆楁硶涔嬩竴錛岀敤浜庨勬祴鏁版嵁鎵灞炵殑綾誨埆銆傚父瑙佺殑鍒嗙被綆楁硶鍖呮嫭鍐崇瓥鏍戝垎綾匯佹湸緔犺礉鍙舵柉鍒嗙被銆佹敮鎸佸悜閲忔満絳夈傝繖浜涚畻娉曢氳繃瀵瑰凡鐭ユ暟鎹闆嗙殑鐗瑰緛榪涜屽垎鏋愶紝寤虹珛鍒嗙被妯″瀷錛屼粠鑰屽規湭鐭ユ暟鎹榪涜岄勬祴鍜屽垎綾匯
2. 鑱氱被綆楁硶
鑱氱被綆楁硶鏄灝嗗ぇ鏁版嵁闆嗕腑鐨勬暟鎹鍒掑垎涓轟笉鍚岀殑緹ょ粍鎴栫皣錛屼嬌寰楀悓涓綈囦腑鐨勬暟鎹鐩鎬技搴﹁緝楂橈紝涓嶅悓綈囦箣闂寸殑鏁版嵁鐩鎬技搴﹁緝浣庛傚父瑙佺殑鑱氱被綆楁硶鍖呮嫭K鍧囧艱仛綾匯佸眰嬈¤仛綾葷瓑銆傝繖浜涚畻娉曞箍娉涘簲鐢ㄤ簬甯傚満緇嗗垎銆佺ぞ浜ょ綉緇滃垎鏋愮瓑棰嗗煙銆
浜屻佹満鍣ㄥ︿範綆楁硶
1. 鍥炲綊綆楁硶
鍥炲綊綆楁硶鐢ㄤ簬棰勬祴鏁板煎瀷鏁版嵁銆傚畠閫氳繃鍒嗘瀽杈撳叆涓庤緭鍑哄彉閲忎箣闂寸殑鍏崇郴錛屽緩絝嬫暟瀛︽ā鍨嬶紝鐒跺悗鍒╃敤榪欎釜妯″瀷榪涜岄勬祴銆傚湪澶ф暟鎹鍒嗘瀽涓錛屽洖褰掔畻娉曡騫挎硾搴旂敤浜庨勬祴鍒嗘瀽銆佸競鍦洪勬祴絳夐嗗煙銆
2. 娣卞害瀛︿範綆楁硶
娣卞害瀛︿範綆楁硶鏄鏈哄櫒瀛︿範鐨勪竴涓鍒嗘敮錛岄氳繃妯℃嫙浜鴻剳紲炵粡緗戠粶鐨勭粨鏋勶紝寤虹珛澶氬眰紲炵粡緗戠粶妯″瀷錛岃嚜鍔ㄦ彁鍙栨暟鎹鐨勭壒寰佸苟榪涜屽垎綾繪垨棰勬祴銆傚湪澶ф暟鎹澶勭悊涓錛屾繁搴﹀︿範綆楁硶琚騫挎硾搴旂敤浜庡浘鍍忚瘑鍒銆佽闊寵瘑鍒銆佽嚜鐒惰璦澶勭悊絳夐嗗煙銆
涓夈佹帹鑽愮郴緇熺畻娉
鎺ㄨ崘緋葷粺綆楁硶鏄鐢ㄤ簬鍦ㄥぇ鏁版嵁涓鎵懼嚭鐢ㄦ埛鍙鑳芥劅鍏磋叮鐨勭墿鍝佹垨鍐呭癸紝騫舵帹鑽愮粰鐢ㄦ埛鐨勭畻娉曘傚父瑙佺殑鎺ㄨ崘緋葷粺綆楁硶鍖呮嫭鍗忓悓榪囨護銆佸熀浜庡唴瀹圭殑鎺ㄨ崘絳夈傝繖浜涚畻娉曢氳繃鍒嗘瀽鐢ㄦ埛鐨勮屼負鏁版嵁銆佸叴瓚e嚲濂界瓑淇℃伅錛屼負鐢ㄦ埛鎻愪緵涓鎬у寲鐨勬帹鑽愭湇鍔°
浠ヤ笂鏄澶ф暟鎹涓甯哥敤鐨勫嚑縐嶇畻娉曪紝瀹冧滑鍦ㄤ笉鍚岀殑棰嗗煙鍜屽満鏅涓鍙戞尌鐫閲嶈佷綔鐢錛屽府鍔╀漢浠鏇存湁鏁堝湴澶勭悊鍜屽垎鏋愬ぇ鏁版嵁銆
『貳』 澶ф暟鎹鏈甯哥敤鐨勭畻娉曟湁鍝浜
澶ф暟鎹鏈甯哥敤鐨勭畻娉曚富瑕佸寘鎷鍒嗙被綆楁硶銆佽仛綾葷畻娉曘佸洖褰掔畻娉曞拰棰勬祴妯″瀷銆
鍒嗙被綆楁硶鏄澶ф暟鎹涓鏈甯哥敤鐨勪竴綾葷畻娉曪紝鐢ㄤ簬灝嗘暟鎹闆嗕腑鐨勫硅薄鎸夌収鍏跺睘鎬ф垨鐗瑰緛鍒掑垎鍒頒笉鍚岀殑綾誨埆涓銆傚父瑙佺殑鍒嗙被綆楁硶鍖呮嫭鍐崇瓥鏍戙佹敮鎸佸悜閲忔満銆佹湸緔犺礉鍙舵柉絳夈備緥濡傦紝鍦ㄥ瀮鍦鵑偖浠惰繃婊や腑錛屽垎綾葷畻娉曞彲浠ュ府鍔╂垜浠灝嗛偖浠跺垝鍒嗕負鍨冨溇閭浠跺拰闈炲瀮鍦鵑偖浠朵袱綾伙紝浠庤屾湁鏁堝湴榪囨護鎺変笉蹇呰佺殑閭浠躲
鑱氱被綆楁硶鍒欐槸灝嗘暟鎹闆嗕腑鐨勫硅薄鎸夌収鍏剁浉浼兼ц繘琛屽垎緇勶紝浣垮緱鍚屼竴緇勫唴鐨勫硅薄灝藉彲鑳界浉浼礆紝鑰屼笉鍚岀粍闂寸殑瀵硅薄灝藉彲鑳戒笉鍚屻傚父瑙佺殑鑱氱被綆楁硶鍖呮嫭K-means銆佸眰嬈¤仛綾匯丏BSCAN絳夈備緥濡傦紝鍦ㄧ數鍟嗙綉絝欎腑錛岃仛綾葷畻娉曞彲浠ュ皢鐢ㄦ埛鎸夌収鍏惰喘鐗╄屼負鍜屽叴瓚e嚲濂藉垝鍒嗕負涓嶅悓鐨勭敤鎴風兢浣擄紝浠庤屼負鐢ㄦ埛鎻愪緵鏇村姞綺懼噯鐨勬帹鑽愭湇鍔°
鍥炲綊綆楁硶鍒欐槸涓縐嶉勬祴鎬х殑寤烘ā鎶鏈錛屽畠鐮旂┒鐨勬槸鍥犲彉閲忥紙鐩鏍囷級鍜岃嚜鍙橀噺錛堢壒寰侊級涔嬮棿鐨勫叧緋匯傚父瑙佺殑鍥炲綊綆楁硶鍖呮嫭綰挎у洖褰掋侀昏緫鍥炲綊銆佸喅絳栨爲鍥炲綊絳夈備緥濡傦紝鍦ㄦ埧鍦頒駭甯傚満涓錛屽洖褰掔畻娉曞彲浠ユ牴鎹鎴垮眿鐨勯潰縐銆佸湴鐞嗕綅緗銆佽呬慨紼嬪害絳夌壒寰佹潵棰勬祴鍏跺敭浠鳳紝涓轟拱瀹跺拰鍗栧舵彁渚涘喅絳栨敮鎸併
棰勬祴妯″瀷鍒欐槸鍩轟簬鍘嗗彶鏁版嵁寤虹珛鐨勪竴縐嶆暟瀛︽ā鍨嬶紝鐢ㄤ簬棰勬祴鏈鏉ヤ簨浠舵垨瓚嬪娍銆傚父瑙佺殑棰勬祴妯″瀷鍖呮嫭鏃墮棿搴忓垪鍒嗘瀽銆佹満鍣ㄥ︿範妯″瀷絳夈備緥濡傦紝鍦ㄩ噾鋙嶉嗗煙錛岄勬祴妯″瀷鍙浠ユ牴鎹鍘嗗彶鑲$エ浠鋒牸銆佸競鍦鴻蛋鍔跨瓑鏁版嵁鏉ラ勬祴鏈鏉ヨ偂紲ㄤ環鏍肩殑璧板娍錛屼負鎶曡祫鑰呮彁渚涘喅絳栦緷鎹銆
鎬諱箣錛屽ぇ鏁版嵁鐨勭畻娉曠嶇被綣佸氾紝姣忕嶇畻娉曢兘鏈夊叾鐙鐗圭殑搴旂敤鍦烘櫙鍜屼紭鍔褲傚湪瀹為檯搴旂敤涓錛屾垜浠闇瑕佹牴鎹鍏蜂綋鐨勬暟鎹鐗圭偣鍜岄棶棰橀渶奼傞夋嫨鍚堥傜殑綆楁硶錛屼互杈懼埌鏈浣崇殑鍒嗘瀽鍜岄勬祴鏁堟灉銆
『叄』 大數據挖掘的演算法有哪些
大數據挖掘的演算法:
1.樸素貝葉斯,超級簡單,就像做一些數數的工作。如果條件獨立假設成立的話,NB將比鑒別模型收斂的更快,所以你只需要少量的訓練數據。即使條件獨立假設不成立,NB在實際中仍然表現出驚人的好。
2. Logistic回歸,LR有很多方法來對模型正則化。比起NB的條件獨立性假設,LR不需要考慮樣本是否是相關的。與決策樹與支持向量機不同,NB有很好的概率解釋,且很容易利用新的訓練數據來更新模型。如果你想要一些概率信息或者希望將來有更多數據時能方便的更新改進模型,LR是值得使用的。
3.決策樹,DT容易理解與解釋。DT是非參數的,所以你不需要擔心野點(或離群點)和數據是否線性可分的問題,DT的主要缺點是容易過擬合,這也正是隨機森林等集成學習演算法被提出來的原因。
4.支持向量機,很高的分類正確率,對過擬合有很好的理論保證,選取合適的核函數,面對特徵線性不可分的問題也可以表現得很好。SVM在維數通常很高的文本分類中非常的流行。
如果想要或許更多更詳細的訊息,建議您去參加CDA數據分析課程。大數據分析師現在有專業的國際認證證書了,CDA,即「CDA 數據分析師」,是在數字經濟大背景和人工智慧時代趨勢下,面向全行業的專業權威國際資格認證, 旨在提升全民數字技能,助力企業數字化轉型,推動行業數字化發展。 「CDA 數據分析師」具體指在互聯網、金融、零售、咨詢、電信、醫療、旅遊等行業專門從事數據的採集、清洗、處理、分析並能製作業務報告、 提供決策的新型數據分析人才。點擊預約免費試聽課。
『肆』 大數據演算法:分類演算法
KNN演算法,即K近鄰(K Nearest Neighbour)演算法,是一種基本的分類演算法。其主要原理是:對於一個需要分類的數據,將其和一組已經分類標注好的樣本集合進行比較,得到距離最近的K個樣本,K個樣本最多歸屬的類別,就是這個需要分類數據的類別。下面我給你畫了一個KNN演算法的原理圖。
圖中,紅藍綠三種顏色的點為樣本數據,分屬三種類別 、 、 。對於待分類點 ,計算和它距離最近的5個點(即K為5),這5個點最多歸屬的類別為 (4個點歸屬 ,1個點歸屬 ),那麼 的類別被分類為 。
KNN的演算法流程也非常簡單,請看下面的流程圖。
KNN演算法是一種非常簡單實用的分類演算法,可用於各種分類的場景,比如新聞分類、商品分類等,甚至可用於簡單的文字識別。對於新聞分類,可以提前對若干新聞進行人工標注,標好新聞類別,計算好特徵向量。對於一篇未分類的新聞,計算其特徵向量後,跟所有已標注新聞進行距離計算,然後進一步利用KNN演算法進行自動分類。
讀到這你肯定會問,如何計算數據的距離呢?如何獲得新聞的特徵向量呢?
KNN演算法的關鍵是要比較需要分類的數據與樣本數據之間的距離,這在機器學習中通常的做法是:提取數據的特徵值,根據特徵值組成一個n維實數向量空間(這個空間也被稱作特徵空間),然後計算向量之間的空間距離。空間之間的距離計算方法有很多種,常用的有歐氏距離、餘弦距離等。
對於數據 和 ,若其特徵空間為n維實數向量空間 ,即 , ,則其歐氏距離計算公式為
這個歐式距離公式其實我們在初中的時候就學過,平面幾何和立體幾何里兩個點之間的距離,也是用這個公式計算出來的,只是平面幾何(二維幾何)里的n=2,立體幾何(三維幾何)里的n=3,而機器學習需要面對的每個數據都可能有n維的維度,即每個數據有n個特徵值。但是不管特徵值n是多少,兩個數據之間的空間距離的計算公式還是這個歐氏計算公式。大多數機器學習演算法都需要計算數據之間的距離,因此掌握數據的距離計算公式是掌握機器學習演算法的基礎。
歐氏距離是最常用的數據計算公式,但是在文本數據以及用戶評價數據的機器學習中,更常用的距離計算方法是餘弦相似度。
餘弦相似度的值越接近1表示其越相似,越接近0表示其差異越大,使用餘弦相似度可以消除數據的某些冗餘信息,某些情況下更貼近數據的本質。我舉個簡單的例子,比如兩篇文章的特徵值都是:「大數據」「機器學習」和「極客時間」,A文章的特徵向量為(3, 3, 3),即這三個詞出現次數都是3;B文章的特徵向量為(6, 6, 6),即這三個詞出現次數都是6。如果光看特徵向量,這兩個向量差別很大,如果用歐氏距離計算確實也很大,但是這兩篇文章其實非常相似,只是篇幅不同而已,它們的餘弦相似度為1,表示非常相似。
餘弦相似度其實是計算向量的夾角,而歐氏距離公式是計算空間距離。餘弦相似度更關注數據的相似性,比如兩個用戶給兩件商品的打分分別是(3, 3)和(4, 4),那麼兩個用戶對兩件商品的喜好是相似的,這種情況下,餘弦相似度比歐氏距離更合理。
我們知道了機器學習的演算法需要計算距離,而計算距離需要還知道數據的特徵向量,因此提取數據的特徵向量是機器學習工程師們的重要工作,有時候甚至是最重要的工作。不同的數據以及不同的應用場景需要提取不同的特徵值,我們以比較常見的文本數據為例,看看如何提取文本特徵向量。
文本數據的特徵值就是提取文本關鍵詞,TF-IDF演算法是比較常用且直觀的一種文本關鍵詞提取演算法。這種演算法是由TF和IDF兩部分構成。
TF是詞頻(Term Frequency),表示某個單詞在文檔中出現的頻率,一個單詞在一個文檔中出現的越頻繁,TF值越高。
詞頻:
IDF是逆文檔頻率(Inverse Document Frequency),表示這個單詞在所有文檔中的稀缺程度,越少文檔出現這個詞,IDF值越高。
逆文檔頻率:
TF與IDF的乘積就是TF-IDF。
所以如果一個詞在某一個文檔中頻繁出現,但在所有文檔中卻很少出現,那麼這個詞很可能就是這個文檔的關鍵詞。比如一篇關於原子能的技術文章,「核裂變」「放射性」「半衰期」等詞彙會在這篇文檔中頻繁出現,即TF很高;但是在所有文檔中出現的頻率卻比較低,即IDF也比較高。因此這幾個詞的TF-IDF值就會很高,就可能是這篇文檔的關鍵詞。如果這是一篇關於中國原子能的文章,也許「中國」這個詞也會頻繁出現,即TF也很高,但是「中國」也在很多文檔中出現,那麼IDF就會比較低,最後「中國」這個詞的TF-IDF就很低,不會成為這個文檔的關鍵詞。
提取出關鍵詞以後,就可以利用關鍵詞的詞頻構造特徵向量,比如上面例子關於原子能的文章,「核裂變」「放射性」「半衰期」這三個詞是特徵值,分別出現次數為12、9、4。那麼這篇文章的特徵向量就是(12, 9, 4),再利用前面提到的空間距離計算公式計算與其他文檔的距離,結合KNN演算法就可以實現文檔的自動分類。
貝葉斯公式是一種基於條件概率的分類演算法,如果我們已經知道A和B的發生概率,並且知道了B發生情況下A發生的概率,可以用貝葉斯公式計算A發生的情況下B發生的概率。事實上,我們可以根據A的情況,即輸入數據,判斷B的概率,即B的可能性,進而進行分類。
舉個例子:假設一所學校里男生佔60%,女生佔40%。男生總是穿長褲,女生則一半穿長褲一半穿裙子。假設你走在校園中,迎面走來一個穿長褲的學生,你能夠推斷出這個穿長褲學生是男生的概率是多少嗎?
答案是75%,具體演算法是:
這個演算法就利用了貝葉斯公式,貝葉斯公式的寫法是:
意思是A發生的條件下B發生的概率,等於B發生的條件下A發生的概率,乘以B發生的概率,除以A發生的概率。還是上面這個例子,如果我問你迎面走來穿裙子的學生是女生的概率是多少。同樣帶入貝葉斯公式,可以計算出是女生的概率為100%。其實這個結果我們根據常識也能推斷出來,但是很多時候,常識受各種因素的干擾,會出現偏差。比如有人看到一篇博士生給初中學歷老闆打工的新聞,就感嘆讀書無用。事實上,只是少見多怪,樣本量太少而已。而大量數據的統計規律則能准確反映事物的分類概率。
貝葉斯分類的一個典型的應用場合是垃圾郵件分類,通過對樣本郵件的統計,我們知道每個詞在郵件中出現的概率 ,我們也知道正常郵件概率 和垃圾郵件的概率 ,還可以統計出垃圾郵件中各個詞的出現概率 ,那麼現在一封新郵件到來,我們就可以根據郵件中出現的詞,計算 ,即得到這些詞出現情況下,郵件為垃圾郵件的概率,進而判斷郵件是否為垃圾郵件。
現實中,貝葉斯公式等號右邊的概率,我們可以通過對大數據的統計獲得,當有新的數據到來的時候,我們就可以帶入上面的貝葉斯公式計算其概率。而如果我們設定概率超過某個值就認為其會發生,那麼我們就對這個數據進行了分類和預測,具體過程如下圖所示。
訓練樣本就是我們的原始數據,有時候原始數據並不包含我們想要計算的維度數據,比如我們想用貝葉斯公式自動分類垃圾郵件,那麼首先要對原始郵件進行標注,需要標注哪些郵件是正常郵件、哪些郵件是垃圾郵件。這一類需要對數據進行標注才能進行的機器學習訓練也叫作有監督的機器學習。
『伍』 需要掌握哪些大數據演算法
數據挖掘領域的十大經典演算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART。
1、C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3演算法。
2、2、k-means algorithm演算法是一個聚類演算法,把n的對象根據他們的屬性分為k個分割,k < n。
3、支持向量機,英文為Support Vector Machine,簡稱SV機(論文中一般簡稱SVM)。它是一種監督式學習的方法,它廣泛的應用於統計分類以及回歸分析中。
4、Apriori演算法是一種最有影響的挖掘布爾關聯規則頻繁項集的演算法。其核心是基於兩階段頻集思想的遞推演算法。
5、最大期望(EM)演算法。在統計計算中,最大期望(EM,Expectation–Maximization)演算法是在概率(probabilistic)模型中尋找參數最大似然 估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。
6、PageRank是Google演算法的重要內容。2001年9月被授予美國專利,專利人是Google創始人之一拉里·佩奇(Larry Page)。因此,PageRank里的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。
7、Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。
8、K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。
9、Naive Bayes。在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBC)。
10、CART, Classification and Regression Trees。 在分類樹下面有兩個關鍵的思想。
關於大數據演算法的相關問題推薦CDA數據分析師的相關課程,課程內容兼顧培養解決數據挖掘流程問題的橫向能力以及解決數據挖掘演算法問題的縱向能力。要求學生具備從數據治理根源出發的思維,通過數字化工作方法來探查業務問題,通過近因分析、宏觀根因分析等手段,再選擇業務流程優化工具還是演算法工具,而非「遇到問題調演算法包」點擊預約免費試聽課。
『陸』 大數據核心演算法有哪些
1、A* 搜索演算法——圖形搜索演算法,從給定起點到給定終點計算出路徑。其中使用了一種啟發式的估算,為每個節點估算通過該節點的最佳路徑,並以之為各個地點排定次序。演算法以得到的次序訪問這些節點。因此,A*搜索演算法是最佳優先搜索的範例。
2、集束搜索(又名定向搜索,Beam Search)——最佳優先搜索演算法的優化。使用啟發式函數評估它檢查的每個節點的能力。不過,集束搜索只能在每個深度中發現最前面的m個最符合條件的節點,m是固定數字——集束的寬度。
3、二分查找(Binary Search)——在線性數組中找特定值的演算法,每個步驟去掉一半不符合要求的數據。
4、分支界定演算法(Branch and Bound)——在多種最優化問題中尋找特定最優化解決方案的演算法,特別是針對離散、組合的最優化。
5、Buchberger演算法——一種數學演算法,可將其視為針對單變數最大公約數求解的歐幾里得演算法和線性系統中高斯消元法的泛化。
6、數據壓縮——採取特定編碼方案,使用更少的位元組數(或是其他信息承載單元)對信息編碼的過程,又叫來源編碼。
7、Diffie-Hellman密鑰交換演算法——一種加密協議,允許雙方在事先不了解對方的情況下,在不安全的通信信道中,共同建立共享密鑰。該密鑰以後可與一個對稱密碼一起,加密後續通訊。
8、Dijkstra演算法——針對沒有負值權重邊的有向圖,計算其中的單一起點最短演算法。
9、離散微分演算法(Discrete differentiation)。