1. 程式人生 > >機器學習10大經典演算法

機器學習10大經典演算法

1C4.5

機器學習中,決策樹是一個預測模型;他代表的是物件屬性與物件值之間的一種對映關係。樹中每個節點表示某個物件,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的物件的值。決策樹僅有單一輸出,若欲有複數輸出,可以建立獨立的決策樹以處理不同輸出。

從資料產生決策樹的機器學習技術叫做決策樹學習通俗說就是決策樹。

決策樹學習也是資料探勘中一個普通的方法。在這裡,每個決策樹都表述了一種樹型結構,他由他的分支來對該型別的物件依靠屬性進行分類。每個決策樹可以依靠對源資料庫的分割進行資料測試。這個過程可以遞迴式的對樹進行修剪。 當不能再進行分割或一個單獨的類可以被應用於某一分支時,遞迴過程就完成了。另外,隨機森林分類器將許多決策樹結合起來以提升分類的正確率。

決策樹同時也可以依靠計算條件概率來構造。決策樹如果依靠數學的計算方法可以取得更加理想的效果。

決策樹是如何工作的

決策樹一般都是自上而下的來生成的。

選擇分割的方法有好幾種,但是目的都是一致的:對目標類嘗試進行最佳的分割。

從根到葉子節點都有一條路徑,這條路徑就是一條“規則”。

決策樹可以是二叉的,也可以是多叉的。

對每個節點的衡量:

1)        通過該節點的記錄數

2)        如果是葉子節點的話,分類的路徑

3)        對葉子節點正確分類的比例。

有些規則的效果可以比其他的一些規則要好。

由於ID3演算法在實際應用中存在一些問題,於是Quilan提出了C4.5演算法,嚴格上說C4.5只能是ID3的一個改進演算法。相信大家對ID3演算法都很.熟悉了,這裡就不做介紹。

    C4.5演算法繼承了ID3演算法的優點,並在以下幾方面對ID3演算法進行了改進:

    1) 用資訊增益率來選擇屬性,克服了用資訊增益選擇屬性時偏向選擇取值多的屬性的不足;

    2) 在樹構造過程中進行剪枝;

    3) 能夠完成對連續屬性的離散化處理;

    4) 能夠對不完整資料進行處理。

    C4.5演算法有如下優點:產生的分類規則易於理解,準確率較高。其缺點是:在構造樹的過程中,需要對資料集進行多次的順序掃描和排序,因而導致演算法的低效。此外,C4.5只適合於能夠駐留於記憶體的資料集,當訓練集大得無法在記憶體容納時程式無法執行。

來自搜尋的其他內容:

C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3演算法

  分類決策樹演算法是從大量事例中進行提取分類規則的自上而下的決策樹

      決策樹的各部分是

            根:   學習的事例集

            枝:   分類的判定條件

            葉:   分好的各個類

§4.3.2     ID3演算法 

  1.概念提取演算法CLS 

1)     初始化引數C={E},E包括所有的例子,為根

2)       IF     C中的任一元素e同屬於同一個決策類則建立一個葉子     

              節點YES終止

          ELSE     依啟發式標準,選擇特徵Fi={V1,V2,V3,...Vn}並建立 

                      判定節點 

劃分C為互不相交的N個集合C1,C2,C3,...,Cn; 

3)     對任一個Ci遞迴

2.     ID3演算法 

1)     隨機選擇C的一個子集W   (視窗). 

2)     呼叫CLS生成W的分類樹DT(強調的啟發式標準在後). 

3)     順序掃描C蒐集DT的意外(即由DT無法確定的例子). 

4)     組合W與已發現的意外,形成新的W. 

5)     重複2)4),直到無例外為止

啟發式標準

      只跟本身與其子樹有關,採取資訊理論用熵來量度

      熵是選擇事件時選擇自由度的量度,其計算方法為 

              P   =   freq(Cj,S)/|S|; 

      INFO(S)=   -   SUM(   P*LOG(P)   )   ;       SUM()函式是求j1n

      Gain(X)=Info(X)-Infox(X); 

      Infox(X)=SUM(   (|Ti|/|T|)*Info(X); 

為保證生成的決策樹最小,ID3演算法在生成子樹時,選取使生成的子樹的熵(Gain(S))最小的的特徵來生成子樹

§4.3.3:   ID3演算法對資料的要求 

1.     所有屬性必須為離散量

2.     所有的訓練例的所有屬性必須有一個明確的值

3.     相同的因素必須得到相同的結論且訓練例必須唯一

§4.3.4:   C4.5ID3演算法的改進

      1.     熵的改進,加上了子樹的資訊

            Split_Infox(X)=   -   SUM(     (|T|/|Ti|   )   *LOG(|Ti|/|T|)     ); 

            Gain   ratio(X)=     Gain(X)/Split   Infox(X); 

2.     在輸入資料上的改進

        1) 

因素屬性的值可以是連續量,C4.5對其排序並分成不同的集合後按照ID3演算法當作離散量進行處理,但結論屬性的值必須是離散值

      2)   訓練例的因素屬性值可以是不確定的,以   ?   表示,但結論必須是確定的 

      3.     對已生成的決策樹進行裁剪,減小生成樹的規模.

2The k-means algorithm

   k-means algorithm演算法是一個聚類演算法,把n的物件根據他們的屬性分為k個分割,k < n。它與處理混合正態分佈的最大期望演算法很相似,因為他們都試圖找到資料中自然聚類的中心。它假設物件屬性來自於空間向量,並且目標是使各個群組內部的均方誤差總和最小。

  假設有k個群組Si, i=1,2,...,k。μi是群組Si內所有元素xj的重心,或叫中心點。

  k平均聚類發明於1956年, 該演算法最常見的形式是採用被稱為勞埃德演算法(Lloyd algorithm)的迭代式改進探索法。勞埃德演算法首先把輸入點分成k個初始化分組,可以是隨機的或者使用一些啟發式資料。然後計算每組的中心點,根據中心點的位置把物件分到離它最近的中心,重新確定分組。繼續重複不斷地計算中心並重新分組,直到收斂,即物件不再改變分組(中心點位置不再改變)。

  勞埃德演算法和k平均通常是緊密聯絡的,但是在實際應用中,勞埃德演算法是解決k平均問題的啟發式法則,對於某些起始點和重心的組合,勞埃德演算法可能實際上收斂於錯誤的結果。(上面函式中存在的不同的最優解)

  雖然存在變異,但是勞埃德演算法仍舊保持流行,因為它在實際中收斂非常快。實際上,觀察發現迭代次數遠遠少於點的數量。然而最近,David ArthurSergei Vassilvitskii提出存在特定的點集使得k平均演算法花費超多項式時間達到收斂。

  近似的k平均演算法已經被設計用於原始資料子集的計算。

  從演算法的表現上來說,它並不保證一定得到全域性最優解,最終解的質量很大程度上取決於初始化的分組。由於該演算法的速度很快,因此常用的一種方法是多次執行k平均演算法,選擇最優解。

  k平均演算法的一個缺點是,分組的數目k是一個輸入引數,不合適的k可能返回較差的結果。另外,演算法還假設均方誤差是計算群組分散度的最佳引數。

3SVM

支援向量機,英文為Support Vector Machine,簡稱SV機(論文中一般簡稱svm)。它是一種監督式學習的方法,它廣泛的應用於統計分類以及迴歸分析中。

支援向量機屬於一般化線性分類器.他們也可以認為是提克洛夫規範化(Tikhonov Regularization)方法的一個特例.這族分類器的特點是他們能夠同時最小化經驗誤差與最大化幾何邊緣區.因此支援向量機也被稱為最大邊緣區分類器。在統計計算中,最大期望(EM)演算法是在概率(probabilistic)模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。最大期望經常用在機器學習和計算機視覺的資料集聚(Data Clustering)領域。最大期望演算法經過兩個步驟交替進行計算,第一步是計算期望(E),也就是將隱藏變數象能夠觀測到的一樣包含在內從而計算最大似然的期望值;另外一步是最大化(M),也就是最大化在 步上找到的最大似然的期望值從而計算引數的最大似然估計。步上找到的引數然後用於另外一個 步計算,這個過程不斷交替進行。

Vapnik等人在多年研究統計學習理論基礎上對線性分類器提出了另一種設計最佳準則。其原理也從線性可分說起,然後擴充套件到線性不可分的情況。甚至擴充套件到使用非線性函式中去,這種分類器被稱為支援向量機(Support Vector Machine,簡稱SVM)。支援向量機的提出有很深的理論背景。支援向量機方法是在近年來提出的一種新方法。

  SVM的主要思想可以概括為兩點: (1) 它是針對線性可分情況進行分析,對於線性不可分的情況,通過使用非線性對映演算法將低維輸入空間線性不可分的樣本轉化為高維特徵空間使其線性可分,從而使得高維特徵空間採用線性演算法對樣本的非線性特徵進行線性分析成為可能;(2) 它基於結構風險最小化理論之上在特徵空間中建構最優分割超平面,使得學習器得到全域性最優化,並且在整個樣本空間的期望風險以某個概率滿足一定上界。

  在學習這種方法時,首先要弄清楚這種方法考慮問題的特點,這就要從線性可分的最簡單情況討論起,在沒有弄懂其原理之前,不要急於學習線性不可分等較複雜的情況,支援向量機在設計時,需要用到條件極值問題的求解,因此需用拉格朗日乘子理論,但對多數人來說,以前學到的或常用的是約束條件為等式表示的方式,但在此要用到以不等式作為必須滿足的條件,此時只要瞭解拉格朗日理論的有關結論就行。

介紹

支援向量機將向量對映到一個更高維的空間裡,在這個空間裡建立有一個最大間隔超平面。在分開資料的超平面的兩邊建有兩個互相平行的超平面。分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。一個極好的指南是C.J.C Burges的《模式識別支援向量機指南》。van der Walt 和 Barnard 將支援向量機和其他分類器進行了比較。

動機

 

有很多個分類器(超平面)可以把資料分開,但是隻有一個能夠達到最大分割。我們通常希望分類的過程是一個機器學習的過程。這些資料點並不需要是中的點,而可以是任意(統計學符號)中或者 (電腦科學符號的點。我們希望能夠把這些點通過一個n-1維的超平面分開,通常這個被稱為線性分類器。有很多分類器都符合這個要求,但是我們還希望找到分類最佳的平面,即使得屬於兩個不同類的資料點間隔最大的那個面,該面亦稱為最大間隔超平面。如果我們能夠找到這個面,那麼這個分類器就稱為最大間隔分類器。

問題定義

設樣本屬於兩個類,用該樣本訓練svm得到的最大間隔超平面。在超平面上的樣本點也稱為支援向量.我們考慮以下形式的樣本點

其中ci為1或−1 --用以表示資料點屬於哪個類.  是一個p − (統計學符號), 或 n − (電腦科學符號) 維向量,其每個元素都被縮放到[0,1]或[-1,1].縮放的目的是防止方差大的隨機變數主導分類過程.我們可以把這些資料稱為“訓練資料”,希望我們的支援向量機能夠通過一個超平面正確的把他們分開。超平面的數學形式可以寫作

根據幾何知識,我們知道向量垂直於分類超平面。加入位移b的目的是增加間隔.如果沒有b的話,那超平面將不得不通過原點,限制了這個方法的靈活性。

由於我們要求最大間隔,因此我們需要知道支援向量以及(與最佳超平面)平行的並且離支援向量最近的超平面。我們可以看到這些平行超平面可以由方程族:

來表示。

如果這些訓練資料是線性可分的,那就可以找到這樣兩個超平面,在它們之間沒有任何樣本點並且這兩個超平面之間的距離也最大.通過幾何不難得到這兩個超平面之間的距離是 2/|w|,因此我們需要最小化 |w|。同時為了使得樣本資料點都在超平面的間隔區以外,我們需要保證對於所有的 滿足其中的一個條件

這兩個式子可以寫作:

原型

現在尋找最佳超平面這個問題就變成了在(1)這個約束條件下最小化|w|.這是一個二次規劃QP(quadratic programming)最優化中的問題。

更清楚的,它可以表示如下:

最小化, 滿足

1/2 這個因子是為了數學上表達的方便加上的。

對偶型(Dual Form)

把原型的分類規則寫作對偶型,可以看到分類器其實是一個關於支援向量(即那些在間隔區邊緣的訓練樣本點)的函式。

支援向量機的對偶型如下:  並滿足αi > = 0

軟間隔

1995, Corinna Cortes Vapnik 提出了一種改進的最大間隔區方法,這種方法可以處理標記錯誤的樣本。如果可區分正負例的超平面不存在,則“軟邊界”將選擇一個超平面儘可能清晰地區分樣本,同時使其與分界最清晰的樣本的距離最大化。這一成果使術語“支援向量機”(或“SVM”)得到推廣。這種方法引入了鬆馳引數ξi以衡量對資料xi的誤分類度。

隨後,將目標函式與一個針對非0ξi的懲罰函式相加,在增大間距和縮小錯誤懲罰兩大目標之間進行權衡優化。如果懲罰函式是一個線性函式,則等式(3)變形為

4Apriori演算法

Apriori演算法是一種最有影響的挖掘布林關聯規則頻繁項集的演算法。其核心是基於兩階段頻集思想的遞推演算法。該關聯規則在分類上屬於單維、單層、布林關聯規則。在這裡,所有支援度大於最小支援度的項集稱為頻繁項集,簡稱頻集。

Apriori演演算法所使用的前置統計量包括了:

•最大規則物件數:規則中物件組所包含的最大物件數量

•最小支援:規則中物件或是物件組必頇符合的最低案例數

•最小信心水準:計算規則所必須符合的最低信心水準門檻

  該演算法的基本思想是:首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支援度一樣。然後由頻集產生強關聯規則,這些規則必須滿足最小支援度和最小可信度。然後使用第1步找到的頻集產生期望的規則,產生只包含集合的項的所有規則,其中每一條規則的右部只有一項,這裡採用的是中規則的定義。一旦這些規則被生成,那麼只有那些大於使用者給定的最小可信度的規則才被留下來。為了生成所有頻集,使用了遞推的方法。

  可能產生大量的候選集,以及可能需要重複掃描資料庫,是Apriori演算法的兩大缺點。

5最大期望(EM)演算法

在統計計算中,最大期望(EMExpectationMaximization)演算法是在概率(probabilistic)模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。最大期望經常用在機器學習和計算機視覺的資料集聚(Data Clustering)領域。最大期望演算法經過兩個步驟交替進行計算,第一步是計算期望(E),也就是將隱藏變數象能夠觀測到的一樣包含在內從而計算最大似然的期望值;另外一步是最大化(M),也就是最大化在 步上找到的最大似然的期望值從而計算引數的最大似然估計。步上找到的引數然後用於另外一個 步計算,這個過程不斷交替進行。

最大期望過程說明

我們用  表示能夠觀察到的不完整的變數值,用  表示無法觀察到的變數值,這樣  和  一起組成了完整的資料。 可能是實際測量丟失的資料,也可能是能夠簡化問題的隱藏變數,如果它的值能夠知道的話。例如,在混合模型(Mixture Model)中,如果“產生”樣本的混合元素成分已知的話最大似然公式將變得更加便利(參見下面的例子)。

估計無法觀測的資料

讓  代表向量 θ:  定義的引數的全部資料的概率分佈(連續情況下)或者概率集聚函式(離散情況下),那麼從這個函式就可以得到全部資料的最大似然值,另外,在給定的觀察到的資料條件下未知資料的條件分佈可以表示為:

6PageRank

PageRankGoogle演算法的重要內容。20019月被授予美國專利,專利人是Google創始人之一拉里·佩奇(Larry Page)。因此,PageRank裡的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。

  Google的 PageRank根據網站的外部連結和內部連結的數量和質量倆衡量網站的價值。PageRank背後的概念是,每個到頁面的連結都是對該頁面的一次投票,被連結的越多,就意味著被其他網站投票越多。這個就是所謂的“連結流行度”——衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自學術中一篇論文的被引述的頻度——即被別人引述的次數越多,一般判斷這篇論文的權威性就越高。

  Google有一套自動化方法來計算這些投票。GooglePageRank分值從0到 10PageRank10表示最佳,但非常少見,類似里氏震級(Richter scale),PageRank級別也不是線性的,而是按照一種指數刻度。這是一種奇特的數學術語,意思是PageRank4不是比PageRank3好一級——而可能會好67倍。因此,一個PageRank5的網頁和PageRank8的網頁之間的差距會比你可能認為的要大的多。

  PageRank較高的頁面的排名往往要比PageRank較低的頁面高,而這導致了人們對連結的著魔。在整個SEO社群,人們忙於爭奪、交換甚至銷售連結,它是過去幾年來人們關注的焦點,以至於Google修改了他的系統,並開始放棄某些型別的連結。比如,被人們廣泛接受的一條規定,來自缺乏內容的“link farm”(連結工廠)網站的連結將不會提供頁面的PageRank,從PageRank較高的頁面得到連結但是內容不相關(比如說某個流行的漫畫書網站連結到一個叉車規範頁面),也不會提供頁面的PageRankGoogle選擇降低了PageRank對更新頻率,以便不鼓勵人們不斷的對其進行監測。

  Google PageRank一般一年更新四次,所以剛上線的新網站不可能獲得PR值。你的網站很可能在相當長的時間裡面看不到PR值的變化,特別是一些新的網站。PR值暫時沒有,這不是什麼不好的事情,耐心等待就好了。

  為您的網站獲取外部連結是一件好事,但是無視其他SEO領域的工作而進行急迫的連結建設就是浪費時間,要時刻保持一個整體思路並記住以下幾點:

  ·Google的排名演算法並不是完全基於外部連結的

  ·高PageRank並不能保證Google高排名

  ·PageRank值更新的比較慢,今天看到的PageRank值可能是三個月前的值

  因此我們不鼓勵刻意的去追求PageRank,因為決定排名的因素可以有上百種。儘管如此,PageRank還是一個用來了解Google對您的網站頁面如何評價的相當好的指示,建議網站設計者要充分認識PageRankGoogle判斷網站質量中的重要作用,從設計前的考慮到後期網站更新都要給予PageRank足夠的分析,很好的利用。我們要將PageRank看作是一種業餘愛好而不是一種信仰。

  ---------------------------------------------------------------------------------------------------------------------

  通過對由超過 50,000 萬個變數和 20 億個詞彙組成的方程進行計算,PageRank 能夠對網頁的重要性做出客觀的評價。PageRank 並不計算直接連結的數量,而是將從網頁 指向網頁 的連結解釋為由網頁 對網頁 所投的一票。這樣,PageRank 會根據網頁 所收到的投票數量來評估該頁的重要性。

  此外,PageRank 還會評估每個投票網頁的重要性,因為某些網頁的投票被認為具有較高的價值,這樣,它所連結的網頁就能獲得較高的價值。重要網頁獲得的 PageRank(網頁排名)較高,從而顯示在搜尋結果的頂部。Google 技術使用網上反饋的綜合資訊來確定某個網頁的重要性。搜尋結果沒有人工干預或操縱,這也是為什麼 Google 會成為一個廣受使用者信賴、不受付費排名影響且公正客觀的資訊來源。

  ---------------

  其實簡單說就是民主表決。打個比方,假如我們要找李開復博士,有一百個人舉手說自己是李開復。那麼誰是真的呢?也許有好幾個真的,但即使如此誰又是大家真正想找的呢?:-) 如果大家都說在 Google 公司的那個是真的,那麼他就是真的。

  在網際網路上,如果一個網頁被很多其它網頁所連結,說明它受到普遍的承認和信賴,那麼它的排名就高。這就是 Page Rank 的核心思想。 當然 Google 的 Page Rank 演算法實際上要複雜得多。比如說,對來自不同網頁的連結對待不同,本身網頁排名高的連結更可靠,於是給這些連結予較大的權重。Page Rank 考慮了這個因素,可是現在問題又來了,計算搜尋結果的網頁排名過程中需要用到網頁本身的排名,這不成了先有雞還是先有蛋的問題了嗎?

  Google 的兩個創始人拉里·佩奇 (Larry Page )和謝爾蓋·布林 (Sergey Brin) 把這個問題變成了一個二維矩陣相乘的問題,並且用迭代的方法解決了這個問題。他們先假定所有網頁的排名是相同的,並且根據這個初始值,算出各個網頁的第一次迭代排名,然後再根據第一次迭代排名算出第二次的排名。他們兩人從理論上證明了不論初始值如何選取,這種演算法都保證了網頁排名的估計值能收斂到他們的真實值。值得一提的事,這種演算法是完全沒有任何人工干預的。

  理論問題解決了,又遇到實際問題。因為網際網路上網頁的數量是巨大的,上面提到的二維矩陣從理論上講有網頁數目平方之多個元素。如果我們假定有十億個網頁,那麼這個矩陣就有一百億億個元素。這樣大的矩陣相乘,計算量是非常大的。拉里和謝爾蓋兩人利用稀疏矩陣計算的技巧,大大的簡化了計算量,並實現了這個網頁排名演算法。今天 Google 的工程師把這個演算法移植到並行的計算機中,進一步縮短了計算時間,使網頁更新的週期比以前短了許多。

  我來 Google 後,拉里 (Larry) 在和我們幾個新員工座談時,講起他當年和謝爾蓋(Sergey) 是怎麼想到網頁排名演算法的。他說:"當時我們覺得整個網際網路就像一張大的圖(Graph),每個網站就像一個節點,而每個網頁的連結就像一個弧。我想,網際網路可以用一個圖或者矩陣描述,我也許可以用這個發現做個博士論文。他和謝爾蓋就這樣發明了 Page Rank 的演算法。

  網頁排名的高明之處在於它把整個網際網路當作了一個整體對待。它無意識中符合了系統論的觀點。相比之下,以前的資訊檢索大多把每一個網頁當作獨立的個體對待,很多人當初只注意了網頁內容和查詢語句的相關性,忽略了網頁之間的關係。 

  今天,Google 搜尋引擎比最初複雜、完善了許多。但是網頁排名在 Google 所有演算法中依然是至關重要的。在學術界這個演算法被公認為是文獻檢索中最大的貢獻之一,並且被很多大學引入了資訊檢索課程 (Information Retrieval) 的教程。 

  如何提高你網頁的 PR 值?

  什麼是PR值呢? PR值全稱為PageRankPR是英文Pagerank 的縮寫形式,Pagerank取自Google的創始人LarryPage,它是Google排名運演算法則(排名公式)的一部分,Pagerank是 Google對網頁重要性的評估,是Google用來衡量一個網站的好壞的唯一標準。PageRank(網頁級別)Google用於評測一個網頁“重要性”的一種方法。在揉合了諸如Title標識和Keywords標識等所有其它因素之後,Google通過PageRank來調整結果,使那些更具“重要性”的網頁在搜尋結果中另網站排名獲得提升,從而提高搜尋結果的相關性和質量。 PR值的級別從110級,10級為滿分。PR值越高說明該網頁越受歡迎。Google把自己的網站的PR值定到10,這說明Google這個網站是非常受歡迎的,也可以說這個網站非常重要。Google大受青睞的另一個原因就是它的網站索引速度。向Google提交你的網站直到為Google收錄,一般只需兩個星期。如果你的網站已經為Google收錄,那麼通常Google會每月一次遍歷和更新(重新索引)你的網站資訊。不過對於那些PR值 (Pagerank)較高的網站,Google索引週期會相應的短一些。一個PR值為1的網站表明這個網站不太具有流行度,而PR值為710則表明這個網站非常受歡迎。PR值最高為10,一般PR值達到4,就算是一個不錯的網站了。那麼PR值都受那些因素影響呢?下面我們一起來看看。

  第一:網站外部連結的數量和質量

  在計算網站排名時,Pagerank會將網站的外部連結數考慮進去。並不能說一個網站的外部連結數越多其PR值就越高,如果這樣的話,一個網站儘可能獲得最多的外部連結就OK了,有這種想法是錯誤的。Google對一個網站上的外部連結數的重視程度並不意味著你因此可以不求策略地與任何網站建立連線。這是因為Google並不是簡單地由計算網站的外部連結數來決定其等級。Google的 Pagerank系統不單考慮一個網站的外部連結質量,也會考慮其數量。這個問題看來很有複雜。首先讓我們來解釋一下什麼是阻尼因數(damping factor)。阻尼因素就是當你投票或連結到另外一個站點時所獲得的實際PR分值。阻尼因數一般是0.85。當然比起你網站的實際PR值,它就顯得微不足道了。 

  現在讓我們來看看這個PR分值的計算公式:PR(A)=(1- d)+d(PR(t1)/C(t1)+...+PR(tn)/C(tn)) 公式解釋:其中PR(A)表示的是從一個外部連結站點t1上,依據Pagerank?系統給你的網站所增加的PR分值;PR(t1)表示該外部連結網站本身的PR分值;C(t1)則表示該外部連結站點所擁有的外部連結數量。大家要謹記:一個網站的投票權值只有該網站PR分值的0.85, 

  那麼,是不是說對一個網站而言,它所擁有的較高網站質量和較高PR分值的外部連結數量越多就越好呢?錯,因為-GooglePagerank系統不單考慮一個網站的外部連結質量,也會考慮其數量.比方說,對一個有一定PR值的網站X來說,如果你的網站Y是它的唯一一個外部連結,那麼Google就相信網站X將你的網站Y視做它最好的一個外部連結,從而會給你的網站Y更多的分值。可是,如果網站上已經有49個外部連結,那麼Google就相信網站X只是將你的網站視做它第50個好的網站。因而你的外部連結站點上的外部連結數越多,你所能夠得到的 PR分值反而會越低,它們呈反比關係。

  說它對是因為-一般情況下,一個PR分值大於等於6的外部連結站點,可顯著提升你的PR分值。但如果這個外部連結站點已經有100個其它的外部連結時,那你能夠得到的PR分值就幾乎為零了。同樣,如果一個外部連結站點的PR值僅為2,但你卻是它的唯一一個外部連結,那麼你所獲得的PR值要遠遠大於那個PR值為6,外部連結數為100的網站。 

  而且這個0.85的權值平均分配給其連結的每個外部網站。 

  第二:Google在你的網站抓取的頁面數

  Google在你的網站抓取的頁面數,數目越多,Pagerank值越高。但通常Google 並不會主動抓取你的網站的所有頁面,尤其是網址裡帶有“?”的動態連結,Google不主動,那就要我們主動了,最笨的辦法是把網站所有的頁面都提交給 Google,但我想沒有誰真會這麼做,但頁面不多的話可以試試。更好的辦法是製作一個靜態Html頁面,通常被稱作“網站地圖”或“網站導航”,它裡面包含你要新增的所有網址,然後把這個靜態頁面提交給Google

  第三:網站被世界三大知名網站 DMOZYahooLooksmart 收錄

  眾所周知,GooglePagerank系統對那些門戶網路目錄如DMOZYahoo和 Looksmart尤為器重。特別是對DMOZ。一個網站上的DMOZ連結對GooglePagerank?來說,就好像一塊金子一樣珍貴。如果你的網站為ODP收錄,則可有效提升你的頁面等級。向ODP提交你的站點併為它收錄,其實並不是一件難事,只是要多花點時間而已。只要確保你的網站提供了良好的內容,然後在ODP合適的目錄下點選"增加站點",按照提示一步步來就OK了。至少要保證你的索引頁(INDEX PAGE)被收錄進去。所以,如果你的網站內容涉及完全不同的幾塊內容,你可以把每個內容的網頁分別向ODP提交-不過請記住"欲速則不達"。等到 Google對其目錄更新後,你就能看到你的PR值會有什麼變化了。如果你的網站為YahooLooksmart所收錄,那麼你的PR值會得到顯著提升。如果你的網站是非商業性質的或幾乎完全是非商業性質的內容,那麼你可以通過zeall.com使你的網站為著名的網路目錄Looksmart所收錄。 Looksmart也是從Zeal網路目錄獲得非商業搜尋列表。 

  Google PR值的更新週期是多長時間?

  一般情況下PR值更新的週期是2.53個月!最近一次PR更新是20081月中旬。 

  PageRank相關演算法總結:

  1.PageRank

  基本思想:如果網頁T存在一個指向網頁A的連線,則表明T的所有者認為A比較重要,從而把T的一部分重要性得分賦予A。這個重要性得分值為:PRT/C(T)

  其中PRT)為TPageRank值,C(T)T的出鏈數,則APageRank值為一系列類似於T的頁面重要性得分值的累加。

  優點:是一個與查詢無關的靜態演算法,所有網頁的PageRank值通過離線計算獲得;有效減少線上查詢時的計算量,極大降低了查詢響應時間。

  不足:人們的查詢具有主題特徵,PageRank忽略了主題相關性,導致結果的相關性和主題性降低;另外,PageRank有很嚴重的對新網頁的歧視。

  2.Topic-Sensitive PageRank(主題敏感的PageRank

  基本思想:針對PageRank對主題的忽略而提出。核心思想:通過離線計算出一個 PageRank向量集合,該集合中的每一個向量與某一主題相關,即計算某個頁面關於不同主題的得分。主要分為兩個階段:主題相關的PageRank向量集合的計算和線上查詢時主題的確定。

  優點:根據使用者的查詢請求和相關上下文判斷使用者查詢相關的主題(使用者的興趣)返回查詢結果準確性高。

  不足:沒有利用主題的相關性來提高連結得分的準確性。

  3.Hilltop

  基本思想:與PageRank的不同之處:僅考慮專家頁面的連結。主要包括兩個步驟:專家頁面搜尋和目標頁面排序。

  優點:相關性強,結果準確。

  不足:專家頁面的搜尋和確定對演算法起關鍵作用,專家頁面的質量決定了演算法的準確性,而專家頁面的質量和公平性難以保證;忽略了大量非專家頁面的影響,不能反應整個Internet的民意;當沒有足夠的專家頁面存在時,返回空,所以Hilltop適合對於查詢排序進行求精。

  那麼影響google PageRank的因素有哪些呢?

  pr高的網站做連結:

  內容質量高的網站連結

  3加入搜尋引擎分類目錄

  加入免費開源目錄

  你的連結出現在流量大、知名度高、頻繁更新的重要網站上

  6googleDPF格式的檔案比較看重。

  7安裝Google工具條

  8域名和tilte標題出現關鍵詞與meta標籤等

  9反向連線數量和反向連線的等級

  10Google抓取您網站的頁面數量

  11匯出連結數量

  PageRank科學排名遏止關鍵字垃圾

  目前,五花八門的網站為爭奪網上排名採用惡意點選和輸入關鍵字垃圾的手段來吸引網民的眼球,無論對於網際網路企業還是網際網路使用者,這都不是一個好現象。

  為了解決這樣的問題,Google 創始人之一拉里.佩奇(Larry Page)發明了一種演算法PageRank,是由搜尋引擎根據網頁之間相互的超連結進行計算的網頁排名。它經常和搜尋引擎優化有關。PageRank 系統目前被Google 用來體現網頁的相關性和重要性,以便科學排名,遏止關鍵字垃圾。

  PageRank這個概念引自一篇學術論文的被媒體轉載的頻度,一般被轉載的次數越多,這篇論文的權威性就越高,價值也就越高。PageRank1998年在斯坦福大學問世的,2001

  年月被授予美國專利。如今它在 Google 所有演算法中依然是至關重要的。在學術界這個演算法被公認為是文獻檢索中最大的貢獻之一,並且被很多大學引入了資訊檢索課程(Information Retrieval) 的教程。

  PageRank 通過對由超過 億個變數和 20 億個詞彙組成的方程進行計算,能科學公正地標識網頁的等級或重要性。PR級別為110PR值越高說明該網頁越重要。例如:一個PR 值為的網站表明這個網站不太具有流行度,而PR 值為710則表明這個網站極其重要。PageRank級別不是一般的算術級數,而是按照一種幾何級數來劃分的。PageRank3 不是比PageRank2 好一級,而可能會好到數倍。

  PageRank根據網站的外部連結和內部連結的數量和質量來衡量網站的價值。 PageRank的概念是,每個到頁面的連結都是對該頁面的一次投票,被連結得越多,就意味著被其他網站投票越多。Google 有一套自動化方法來計算這些投票,但Google 的排名演算法不完全基於外部連結。PageRank 對來自不同網頁的連結會區別對待,來自網頁本身排名高的連結更受青睞,給這些連結有較大的權重。

  同時,Google 不只是看一個網站的投票數量,或者這個網站的外部連結數量。它會對那些投票的網站進行分析。如果這些網站的PR 值比較高,則其投票的網站可從中受益。因此,Google 的技術專家提醒人們,在建設網站的外部連結時,應儘可能瞄準那些PR 值高且外部連結數又少的網站。這樣的外部連結站點越多,你的PR 值就會越高,從而使得你的Google 排名得到顯著提升。

  PageRank的另一作用是對關鍵字垃圾起到巨大的遏制作用。眼下,一些垃圾網站為了提高點選率,用一些與站點內容無關的關鍵字垃圾壯聲威,比如用明星的名字、用公共突

  發事件稱謂等。這些網頁的目的或是為了騙取廣告點選,或是為了傳播病毒。還有一些無賴式的部落格評論也從中攪局,在網上招搖過市,騙取網民的注意力,這也被網路技術人員

  視為垃圾。

  PageRank目前使用一種基於信任和名譽的演算法幫助遏止關鍵字垃圾,它忽視這些關鍵字垃圾的存在,以網頁相互連結評級別論高低。Google 排名之所以大受追捧,是由於它並非

  只使用關鍵字或代理搜尋技術, 而是將自身建立在高階的網頁級別技術基礎之上。別的搜尋引擎提供給搜尋者的是多種渠道值為 的網站資訊得來的一個粗略的搜尋結果,而Google 提供給它的搜尋者的則是它自己產生的高度精確的搜尋結果。這就是為什麼網站管理員會千方百計去提高自己網站在Google 的排名了。

  PageRank一般一年更新四次,所以剛上線的新網站不可能獲得PR 值。不過PR 值暫時沒有,並不是什麼不好的事情,耐心等待就能得到Google 的青睞。

7AdaBoost

Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。其演算法本身是通過改變資料分佈來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新資料集送給下層分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最後的決策分類器。使用adaboost分類器可以排除一些不必要的訓練資料特徵,並將關鍵放在關鍵的訓練資料上面。

  目前,對adaboost演算法的研究以及應用大多集中於分類問題,同時近年也出 現了一些在迴歸問題上的應用。就其應用adaboost系列主要解決了兩類問題、 多類單標籤問題、多類多標籤問題、大類單標籤問題,迴歸問題。它用全部的訓練樣本進行學習。

  該演算法其實是一個簡單的弱分類演算法提升過程,這個過程通過不斷的訓練,可以提高對資料的分類能力。整個過程如下所示:

  1. 先通過對N個訓練樣本的學習得到第一個弱分類器 ;

  2. 將 分錯的樣本和其他的新資料一起構成一個新的N個的訓練樣本,通過對這個樣本的學習得到第二個弱分類器 ;

  3. 將 和 都分錯了的樣本加上其他的新樣本構成另一個新的N個的訓練樣本,通過對這個樣本的學習得到第三個弱分類器 ;

  4. 最終經過提升的強分類器 。即某個資料被分為哪一類要通過 , ……的多數表決。

  2.3 Adaboost(Adaptive Boosting)演算法

  對於boosting演算法,存在兩個問題:

  1. 如何調整訓練集,使得在訓練集上訓練的弱分類器得以進行;

  2. 如何將訓練得到的各個弱分類器聯合起來形成強分類器。

  針對以上兩個問題,adaboost演算法進行了調整:

  1. 使用加權後選取的訓練資料代替隨機選取的訓練樣本,這樣將訓練的焦點集中在比較難分的訓練資料樣本上;

  2. 將弱分類器聯合起來,使用加權的投票機制代替平均投票機制。讓分類效果好的弱分類器具有較大的權重,而分類效果差的分類器具有較小的權重。

  Adaboost演算法是FreundSchapire根據線上分配演算法提出的,他們詳細分析了Adaboost演算法錯誤率 的上界,以及為了使強分類器 達到錯誤率,演算法所需要的最多迭代次數等相關問題。與Boosting演算法不同的是,adaboost演算法不需要預先知道弱學習演算法學習正確率的下限即弱分類器的誤差,並且最後得到的強分類器的分類精度依賴於所有弱分類器的分類精度, 這樣可以深入挖掘弱分類器演算法的能力。

  Adaboost演算法中不同的訓練集是通過調整每個樣本對應的權重來實現的。開始時,每個樣本對應的權重是相同的,即 其中 為樣本個數,在此樣本分佈下訓練出一弱分類器 。對於分類錯誤的樣本,加大其對應的權重;而對於分類正確的樣本,降低其權重,這樣分錯的樣本就被突出出來,從而得到一個新的樣本分佈。在新的樣本分佈下,再次對弱分類器進行訓練,得到弱分類器。依次類推,經過 次迴圈,得到 個弱分類器,把這 個弱分類器按一定的權重疊加(boost)起來,得到最終想要的強分類器。

  Adaboost演算法的具體步驟如下:

  1. 給定訓練樣本集 ,其中 分別對應於正例樣本和負例樣本; 為訓練的最大迴圈次數;

  2. 初始化樣本權重 ,即為訓練樣本的初始概率分佈;

  3. 第一次迭代:

  (1) 訓練樣本的概率分佈 下,訓練弱分類器:

  (2) 計算弱分類器的錯誤率:

  (3) 選取 ,使得 最小

  (4) 更新樣本權重:

  (5) 最終得到的強分類器:

  Adaboost演算法是經過調整的Boosting演算法,其能夠對弱學習得到的弱分類器的錯誤進行適應性調整。上述演算法中迭代了 次的主迴圈,每一次迴圈根據當前的權重分佈對樣本x定一個分佈P,然後對這個分佈下的樣本使用若學習演算法得到一個錯誤率為 的弱分類器 ,對於這個演算法定義的弱學習演算法,對所有的 ,都有,而這個錯誤率的上限並不需要事先知道,實際上。每一次迭代,都要對權重進行更新。更新的規則是:減小弱分類器分類效果較好的資料的概率,增大弱分類器分類效果較差的資料的概率。最終的分類器是個弱分類器的加權平均。

8k-nearest neighbor classification

鄰近演算法

KNN演算法的決策過程  k-Nearest Neighbor algorithm 

  右圖中,綠色圓要被決定賦予哪個類,是紅色三角形還是藍色四方形?如果K=3,由於紅色三角形所佔比例為2/3,綠色圓將被賦予紅色三角形那個類,如果K=5,由於藍色四方形比例為3/5,因此綠色圓被賦予藍色四方形類。

  K最近鄰(k-Nearest NeighborKNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。KNN演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。 KNN方法雖然從原理上也依賴於極限定理,但在類別決策時,只與極少量的相鄰樣本有關。由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。

  KNN演算法不僅可以用於分類,還可以用於迴歸。通過找出一個樣本的k個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不