Python 機器學習 (Scikit-Learn Ch2)
常用網站
快速開始
這邊是根據官網的Quick Start章節做個筆記,內容並非一定正確
主要是介紹machine learning的一些專屬名詞,並舉一些實際例子
目前主要把machine learning分為兩大類,其中supervised有兩種演算法
而unsupervised有一種演算法
1 | supervised learning |
Supervised 就是你先給一些輸入資料以及你預期的輸出結果(答案)
那程式就會根據你給的東西來產生一個公式
產生公式之後你再給新的輸入資料
程式就會根據公式產生輸出結果,此公式也稱為模型 Model
classification 手寫辨識用此演算法,能夠將不同手寫的字對應到有限的字
簡單的說就像分類一樣,電腦會將輸入的資料分類
regression 你期望的輸出是由一個或多個變數來表示的
Unsupervised 就是只有給你輸入資料沒有告訴你答案,所以必需根據這些資料來找出一些線索
此種演算法稱為clustering
dataset 範例
scikit-learn 預設有一些 dataset,dataset 其實就是一些數據而已
例如全班的名字身高體重也算是一種 dataset
而 scikit-learn 中有包含Iris flower data set
Iris是一種花,中文為鳶尾花?
Iris flower data set就是此種花的資料,例如花瓣寬度、長度等等
另外還有digits datasets以及boston house prices dataset
1 | classification 使用 iris and digits dataset |
範例程式如下
1 | from sklearn import datasets |
digits 是字典類型,print 出來如下
1 | { |
我們需要的是data,這裡可以用print( len(digits.data) )看有幾筆資料
目前總共是1797筆 (list),你也可以把其中一筆 print 出來看
每一筆資料含 8*8 = 64 筆元素
1 | array = np.array( digits.data[0] ) |
我們也可以直接用shape屬性來觀察
1 | digits = datasets.load_digits() |
表示有 1797 筆list (digits.data[0],digits.data[1] … digits.data[1796])
而每筆list有包含 64 個元素
學習和預測
estimator在 python 是一個類別sklearn.svm.SVC
此類別有實作fit(X, y)和predict(T)方法
1 | from sklearn import datasets, svm |
目前參數gamma的值是手動設定的,但是你也可以用grid search和cross validation
來找出更合適的值,這裡將變數命名為clf是當作classifier的簡稱
參考
https://www.datacamp.com/community/tutorials/scikit-learn-python#gs.hozWP1g