前面提到的三種演算法都是常見的機器學習方式,我們可以發現在 sklearn 中提供的 iris 資料庫基本上都是執行後不到一秒鐘答案就跑完了。
但是,這只有 150 筆資料,在機器學習的路上我們隨便都會遇到 15000 筆,甚至是後面多出好多 0 的。那這樣跑起來會變成怎樣呢?正常來說我們會需要按下執行後先去大個便之類的才能完成。
這不對吧!如果我們每次需要答案都要等很久,那麼這個技術就沒啥用了不是嗎?
首先我們要先有個觀念:
資料 -> 演算 -> 模型 -> 測驗
這些東西是分開獨立的,我們不需要每次需要答案的時候都去從資料端開始跑,而是我們長出模型後應該要可以被儲存。然後需要測驗的時候再去找模型出來計算即可。會花大量時間和運算的其實都是資料和演算這兩關,會到模型這個地方的時候已經是被整理歸納後的公式了,所以如果直接從模型開始執行測驗就會出現飛快的速度。
因此我們可以在幾次的演算後,挑選一個喜歡的模式儲存下來:
#儲存 model
from sklearn.externals import joblib
joblib.dump(tree, 'iris.pkl') #把 tree 模式存下來
等到需要的時候拿出來算
#使用model
clf3 = joblib.load('iris.pkl')
data = [[5.1, 3.5, 2.4, 0.2]] #載入數據
print(clf3.predict(data))