我們以決策樹分類器為例。
構造決策樹是很耗時的任務,即使處理很小的資料集,如果資料集很大,將會耗費更多的計算時間。然而用建立好的決策樹解決(新樣本)的分類問題,則可很快完成。因此,為了節省計算時間,最好能夠在每次執行對新樣本的分類問題時呼叫已經構造好的決策樹,也即我們需使用訓練集離線訓練(offline training)決策樹。為了解決這個問題,我們可以使用 python 的 pickle 模組序列化物件。
序列化物件可以在磁碟上儲存物件,並在任何需要的時候讀取出來,任何物件都可執行序列化操作,字典物件自然也不例外。
import pickle
defdumptree
(tree, filename):
with open(filename, 'wb') as fp:
pickle.dump(tree, fp)
defloadtree
(filname):
with open(filename, 'rb') as fp:
return pickle.load(fp, encoding='latin1')
通過上述**,我們可將分類器儲存在硬碟上,而不用每次對資料分類時重新學習一遍(一次訓練,多次測試,是不是也有些 amortization,耗時分擔的意味),這也是決策樹的優點之一。
注:並給所有的分類器模型都可持久化,比如 knn(k近鄰演算法),knn 演算法它是基於新樣本到訓練資料的距離進行的分類,存在一種直接的互動和依賴。
機器學習基礎專題 分類
使用的是非概率模型,分類結果是決策函式的決策結果。代表 線性判別分析 感知機 分類結果是屬於不同類別的概率。生成式通過貝葉斯定理,使用map比較p y 0 x p y 0 x p y 0 x 和p y 1 x p y 1 x p y 1 x 的值。代表 gaussian discriminant a...
機器學習(四) Logistic回歸分類
logistic回歸是眾多分類演算法中的一員。通常,logistic回歸用於二分類問題,例如 明天是否會下雨。當然它也可以用於多分類問題,不過為了簡單起見,本文暫先討論二分類問題。首先,讓我們來了解一下,什麼是logistic回歸。1 logistic回歸 相當於sigmoid 函式 假設現在有一些...
機器學習 分類器組合 AdaBoost
adaboost是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器 弱分類器 然後把這些弱分類器集合起來,構成乙個更強的最終分類器 強分類器 adaboost其實只是boost的乙個特例。1.要訓練出多個弱分類器 圖中為3個 每個弱分類器由不同權重的樣本 圖中為5個訓練樣本 訓練得到 其...