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