待刪

訓練集有多大?

如果你的訓練集很小,高偏差/低方差的分類器(如樸素貝葉斯)比低偏差/高方差的分類器(如K近鄰或Logistic迴歸)更有優勢,因爲後者容易過擬合。但是隨着訓練集的增大,高偏差的分類器並不能訓練出非常準確的模型,所以低偏差/高方差的分類器會勝出(它們有更小的漸近誤差)。

你也可以從生成模型與鑑別模型的區別來考慮它們。

某些分類器的優勢

樸素貝葉斯(Naive Bayes, NB)
超級簡單,就像做一些數數的工作。如果條件獨立假設成立的話,NB將比鑑別模型(如Logistic迴歸)收斂的更快,所以你只需要少量的訓練數據。即使條件獨立假設不成立,NB在實際中仍然表現出驚人的好。如果你想做類似半監督學習,或者是既要模型簡單又要性能好,NB值得嘗試。

Logistic迴歸(Logistic Regression, LR)
LR有很多方法來對模型正則化。比起NB的條件獨立性假設,LR不需要考慮樣本是否是相關的。與決策樹與支持向量機(SVM)不同,NB有很好的概率解釋,且很容易利用新的訓練數據來更新模型(使用在線梯度下降法)。如果你想要一些概率信息(如,爲了更容易的調整分類閾值,得到分類的不確定性,得到置信區間),或者希望將來有更多數據時能方便的更新改進模型,LR是值得使用的。

決策樹(Decision Tree, DT)
DT容易理解與解釋(對某些人而言——不確定我是否也在他們其中)。DT是非參數的,所以你不需要擔心野點(或離羣點)和數據是否線性可分的問題(例如,DT可以輕鬆的處理這種情況:屬於A類的樣本的特徵x取值往往非常小或者非常大,而屬於B類的樣本的特徵x取值在中間範圍)。DT的主要缺點是容易過擬合,這也正是隨機森林(Random Forest, RF)(或者Boosted樹)等集成學習算法被提出來的原因。此外,RF在很多分類問題中經常表現得最好(我個人相信一般比SVM稍好),且速度快可擴展,也不像SVM那樣需要調整大量的參數,所以最近RF是一個非常流行的算法。

支持向量機(Support Vector Machine, SVM)
很高的分類正確率,對過擬合有很好的理論保證,選取合適的核函數,面對特徵線性不可分的問題也可以表現得很好。SVM在維數通常很高的文本分類中非常的流行。由於較大的內存需求和繁瑣的調參,我認爲RF已經開始威脅其地位了。

回到LR與DT的問題(我更傾向是LR與RF的問題),做個簡單的總結:兩種方法都很快且可擴展。在正確率方面,RF比LR更優。但是LR可以在線更新且提供有用的概率信息。鑑於你在Square(不確定推斷科學家是什麼,應該不是有趣的化身),可能從事欺詐檢測:如果你想快速的調整閾值來改變假陽性率與假陰性率,分類結果中包含概率信息將很有幫助。無論你選擇什麼算法,如果你的各類樣本數量是不均衡的(在欺詐檢測中經常發生),你需要重新採樣各類數據或者調整你的誤差度量方法來使各類更均衡。

但是。。。

更好的數據往往比更好的算法更重要,提取好的特徵也需要很大的功夫。如果你的數據集非常大,那麼分類算法的選擇可能對最後的分類性能影響並不大(所以可以根據運行速度或者易用性來選擇)。

如果你很在意分類的正確率,那麼你得嘗試多種分類器,根據交叉驗證的結果來挑選性能最好的。或者,學習下Netflix Prize和Middle Earth, 使用某種集成的方法來組合多個分類器。

方差,偏差
方差(標準差): 預測值的變化範圍,離散層度,也就是離期望值的距離。方差越大,數據越分散。解釋爲 換同樣規模的訓練集,模型的擬合程度怎麼樣。方差是刻畫數據擾動對模型的影響,描述數據結果的分散層度。

Var(x)
=E((x−E(x))2)
=E(x2−2xE(x)+(E(x))2)
=E(x2)−2E(x)E(x)+(E(x))2
=E(x2)−2(E(x))2+(E(x))2
=E(x2)−(E(x))2

標準差(均方差):方差與我們要處理的數據量綱不一樣。

協方差

相關係數

偏差(均方誤差):預測值的期望與真實值之間的差距。偏差越大,越偏離真實數據。解釋爲 模型對本訓練集的擬合層度。

偏差方差與模型的複雜度的關係:

實際中,我們需要找到偏差和方差都較小的點。

XGBOOST中,我們選擇儘可能多的樹,儘可能深的層,來減少模型的偏差;
通過cross-validation,通過在驗證集上校驗,通過正則化,來減少模型的方差

從而獲得較低的泛化誤差。

數據挖掘

分類 :依據歷史數據形成刻畫用戶特徵的類標識,進而可以預測未來數據的歸類情況。

聚類: 一種無指導的學習,在事先不知道數據分類的情況下,根據數據之間的相似度進行劃分,目的是使得同類別的數據對象之間的差別儘可能的小,不同類別的數據對象之間的差別儘可能的大。

數據挖掘方法 : 關聯規則 決策樹 貝葉斯 聚類分析 神經網絡 時間序列

線性迴歸 因子分析 羅輯迴歸 信度分析 層次分析 效度分析

數據挖掘過程模型:

SEMMA: Sample(數據抽樣) Explore(數據探索) Modify(數據調整) Model(模型研發) Assess(綜合評價)

5A : Assess(評價需求) Access(存取數據) Analyse(完備分析) Act(模型展示) Automate(結果展現)

CRISP-DM : 商業理解 數據理解 數據準備 模型建立 模型評估 模型分佈

隨機試驗:1.在相同的條件下能夠重複進行;2.能事先明確試驗的所有可能結果;3.試驗期不能確定會出現的結果。

決策樹學習的本質是從訓練數據集中歸納出一組分類規則。(啓發式方法)

決策樹學習的損失函數通常是正則化的極大似然函數。

決策樹學習的策略是以損失函數爲目標函數的最小化。

決策樹的學習算法包含:特徵選擇,決策樹的生成(局部選擇),決策樹的剪枝(全局選擇)

決策樹常用算法:ID3,C4.5,CART

決策樹分類特徵選擇的依據是使得各個子集在當前條件下有最好分類。可以用熵(隨機變量不確定性的度量)表示,熵越大,隨機變量的不確定性就越大。

最大似然函數:

  1. 寫出似然函數;

  2. 如果無法直接求導的話,對似然函數取對數;

  3. 求導數 ;

  4. 求解模型中參數的最優值。

在設計與操作維護數據庫時,最關鍵的問題就是要確保數據能夠正確地分佈到數據庫的表中。使用正確的數據結構,不僅有助於對數據庫進行相應的存取操作,還可以極大地簡化應用程序中的其他內容(查詢、窗體、報表、代碼等),按照“數據庫規範化”對錶進行設計,其目的就是減少數據庫中的數據冗餘,以增加數據的一致性。

泛化時在識別數據庫中的一個數據元素、關係以及定義所需的表和各表中的項目這些初始工作之後的一個細化的過程。常見的範式有1NF、2NF、3NF、BCNF以及4NF。下面對這幾種常見的範式進行簡要分析。

1、1NF(第一範式)

第一範式是指數據庫表中的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。

如果出現重複的屬性,就可能需要定義一個新的實體,新的實體由重複的屬性構成,新實體與原實體之間爲一對多關係。第一範式的模式要求屬性值不可再分裂成更小部分,即屬性項不能是屬性組合或是由一組屬性構成。

簡而言之,第一範式就是無重複的列。例如,由“職工號”“姓名”“電話號碼”組成的表(一個人可能有一部辦公電話和一部移動電話),這時將其規範化爲1NF可以將電話號碼分爲“辦公電話”和“移動電話”兩個屬性,即職工(職工號,姓名,辦公電話,移動電話)。

2、2NF(第二範式)

第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求數據庫表中的每個實例或行必須可以被唯一地區分。爲實現區分通常需要爲表加上一個列,以存儲各個實例的唯一標識。

如果關係模型R爲第一範式,並且R中的每一個非主屬性完全函數依賴於R的某個候選鍵,則稱R爲第二範式模式(如果A是關係模式R的候選鍵的一個屬性,則稱A是R的主屬性,否則稱A是R的非主屬性)。

例如,在選課關係表(學號,課程號,成績,學分),關鍵字爲組合關鍵字(學號,課程號),但由於非主屬性學分僅依賴於課程號,對關鍵字(學號,課程號)只是部分依賴,而不是完全依賴,因此此種方式會導致數據冗餘以及更新異常等問題,解決辦法是將其分爲兩個關係模式:學生表(學號,課程號,分數)和課程表(課程號,學分),新關係通過學生表中的外關鍵字課程號聯繫,在需要時進行連接。

3、3NF(第三範式)

如果關係模型R是第二範式,且每個非主屬性都不傳遞依賴於R的候選鍵,則稱R是第三範式的模式。

以學生表(學號,姓名,課程號,成績)爲例,其中學生姓名無重名,所以該表有兩個候選碼(學號,課程號)和(姓名,課程號),故存在函數依賴:學號——>姓名,(學號,課程號)——>成績,唯一的非主屬性成績對碼不存在部分依賴,也不存在傳遞依賴,所以屬性屬於第三範式。

4、BCNF(BC範式)

它構建在第三範式的基礎上,如果關係模型R是第一範式,且每個屬性都不傳遞依賴於R的候選鍵,那麼稱R爲BCNF的模式。

假設倉庫管理關係表(倉庫號,存儲物品號,管理員號,數量),滿足一個管理員只在一個倉庫工作;一個倉庫可以存儲多種物品,則存在如下關係:

(倉庫號,存儲物品號)——>(管理員號,數量)

(管理員號,存儲物品號)——>(倉庫號,數量)

所以,(倉庫號,存儲物品號)和(管理員號,存儲物品號)都是倉庫管理關係表的候選碼,表中唯一非關鍵字段爲數量,它是符合第三範式的。但是,由於存在如下決定關係:

(倉庫號)——>(管理員號)

(管理員號)——>(倉庫號)

即存在關鍵字段決定關鍵字段的情況,因此其不符合BCNF。把倉庫管理關係表分解爲兩個關係表倉庫管理表(倉庫號,管理員號)和倉庫表(倉庫號,存儲物品號,數量),這樣這個數據庫表是符合BCNF的,並消除了刪除異常、插入異常和更新異常。

5、4NF(第四範式)

設R是一個關係模型,D是R上的多值依賴集合。如果D中存在凡多值依賴X->Y時,X必是R的超鍵,那麼稱R是第四範式的模式。

例如,職工表(職工編號,職工孩子姓名,職工選修課程),在這個表中,同一個職工可能會有多個職工孩子姓名,同樣,同一個職工也可能會有多個職工選修課程,即這裏存在着多值事實,不符合第四範式。如果要符合第四範式,只需要將上表分爲兩個表,使它們只有一個多值事實,例如職工表一(職工編號,職工孩子姓名),職工表二(職工編號,職工選修課程),兩個表都只有一個多值事實,所以符合第四範式。

拓展:各範式的關係圖如下所示:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章