機器學習程式範例:鳶尾花數據集(Iris Dataset) |
大部分的機器學習功能,都有現成的套件可用。
我們只要學會怎麼用就行了,不用擔心背後複雜的數學理論和演算法。
機器學習的典型步驟是:
1. 讀取數據。
2. 選擇模型。
3. 訓練模型。
4. 預測。
我們先來看一個簡單的機器學習程式範例:鳶尾花數據集(Iris Dataset)。
詳細的說明,請參考:An introduction to machine learning with scikit-learn。程式碼如下:
# Machine Learning: Iris
from sklearn import datasets
from sklearn import svm
iris = datasets.load_iris()
print(iris.data.shape)
model = svm.LinearSVC()
model.fit(iris.data, iris.target)
model.predict([[5.0, 4.0, 2.0, 0.5]])
寥寥數行,就已經完成了我們的第一個機器學習程式!
請參考以下影片,打開Jupyter Notebook,輸入程式碼,執行看看:
機器學習程式範例:鳶尾花數據集(Iris Dataset)
寫程式的時候,最常見的錯誤來源是打字錯誤。最好每寫1行或2行程式,就執行一次。
如果出現錯誤訊息,請檢查一下是否哪個字打錯了。
請注意:Python區分大小寫,例如LinearSVC和linearsvc會被Python視為不同的字。
所以打字時,務必注意大小寫。
以下,簡單的說明一下程式碼。
# Machine Learning: Iris
#念成Sharp,是Python的註解符號。
和#同一行的右邊所有的字,都會被Python視為註解,不會執行。
註解的功能,是說明程式碼的意義。
此外,也可用來讓一部分程式碼暫時不執行。
# Machine Learning: Iris這一行註解,說明這個程式是Machine Learning: Iris。
from sklearn import datasets
from sklearn import svm
import指令,用來匯入程式碼中要用到的套件(或稱為函式庫)(Libraries)。
Python最大的優點,就是有各種套件。
必須先在程式中匯入要使用的套件。
習慣上,是在程式碼的開頭,就用import匯入要用到的所有套件。
sklearn就是Scikit-Learn套件。
datasets是Scikit-Learn內建的數據集,方便我們練習。
svm是支援向量機。暫時把它當作黑盒子就行。
iris = datasets.load_iris()
print(iris.data.shape)
datasets.load_iris()讀取Iris數據集。
print(iris.data.shape)印出Iris數據集的行數和列數。
model = svm.LinearSVC()
model.fit(iris.data, iris.target)
model.predict([[5.0, 4.0, 2.0, 0.5]])
model = svm.LinearSVC()選擇模型。暫時把它當作黑盒子就行。
model.fit(iris.data, iris.target)以Iris數據集訓練模型。
model.predict([[5.0, 4.0, 2.0, 0.5]])以訓練好的模型,預測[[5.0, 4.0, 2.0, 0.5]]所對應的鳶尾花種類。
本系列文章,以實作為主。
對於機器學習的理論說明,請參考Andrew Ng教授的線上課程:https://www.coursera.org/learn/machine-learning。
台灣地震預測研究所 所長
林湧森
2017-02-10 04:22 UTC+8
沒有留言:
張貼留言